Re: update to F30 seems to have failed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Apr 30, 2019 at 8:12 PM Sam Varshavchik <mrsam@xxxxxxxxxxxxxxx> wrote:
>
> Chris Murphy writes:
>
> > On Tue, Apr 30, 2019 at 9:53 AM Sjoerd Mullender <sjoerd@xxxxxxx> wrote:
> > >
> > > Now that the release announcement has been done, I can say that
> > > upgrading for me (on a VM) also failed.  After the final reboot, I just
> > > got a grub prompt.
> >
> > It could be this:
> > https://fedoraproject.org/wiki/Common_F30_bugs#GRUB_boot_menu_is_not_populated_after_an_upgrade
>
> If I deciphered this correctly: the default configuration of grub2 is that
> it now reads its configuration from someplace else, and not
> /boot/grub2/grub.cfg. The F30 grub2 package no longer installs
> /boot/grub2/grub.cfg, so it gets renamed to grub.cfg.rpmsave on the upgrade,
> but if grub2-install was never executed, the actual bootloader was never
> updated, so the older grub2 that's actually still booting the system is
> still looking for /boot/grub2/grub.cfg, hence the regression.

On Fedora 29 and older, grub2 did not install /boot/grub2/grub.cfg -
that file was created during installation by grub2-mkconfig invoked by
Anaconda, and then the grub.cfg was maintained by grubby which would
edit the menu entries.

On Fedora 30, the grub.cfg is still created and used, but it's a
static file that points to /boot/loader/entries for individual menu
entry files (BLS snippets if you will). That's described in this
Fedora 30 feature:
https://fedoraproject.org/wiki/Releases/30/ChangeSet#Make_BootLoaderSpec-style_configuration_files_the_default

The bug happens when a sufficiently old BIOS GRUB is present, I'll
call it "grub installed" in contrast to "RPM installed". That's
because the actual binaries that execute after POST are never updated
by RPM updates; so you can have a current GRUB "RPM installed" but not
"grub installed" unless you manually invoke 'grub2-install'. A too old
GRUB somehow fails to load the blscfg.mod, a new GRUB module to
support reading BLS snippets.

The grub.cfg.rpmsave is a copy of the original grub.cfg before the
upgrade, and will still work (of course it'll boot a Fedora 29 kernel
rather than a Fedora 30 kernel but that's OK). The new grub.cfg after
a Fedora 30 upgrade conforms to the Bootloaderspec feature, meaning
it's a fairly static file that doesn't get updated as kernels are
installed/removed, instead the kernel RPM runs a script that
creates/removes the BLS snippets found in /boot/loader/entries.


> But something is still updating /boot/grub2/grub.cfg, since my grub.cfg
> timestamps are from the last F29 kernel update.

On Fedora 29, grub.cfg is modified by grubby (the real one, not the
wrapper script on Fedora 30).

> I just ran grub2-install on my up-to-date F29 system, and rebooted.
> Everything on F29 still seems to be in order, the grub menu is the same. If
> another kernel update gets installed before I attempt an upgrade to F30,
> will I still see /boot/grub2/grub.cfg getting updated with the newer kernel,
> or it'll just update whatever the actual grub2 reads, at boot time?

The former. A Fedora 29 kernel update will act just as it always has,
grubby will modify the grub.cfg to include a new menu entry for the
installed kernel.

During Fedora 30 upgrade, there's a conversion script that will
extract existing menu entries from grub.cfg, create the individual BLS
snippets in /boot/loader/entries, rename the old grub.cfg to
grub.cfg.rpmnew, and create a new grub.cfg that conforms to the BLS
feature being enabled.


-- 
Chris Murphy
_______________________________________________
users mailing list -- users@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to users-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/users@xxxxxxxxxxxxxxxxxxxxxxx



[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [EPEL Devel]     [Fedora Magazine]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Desktop]     [Fedora Fonts]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Fedora Sparc]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux