-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Static GRUB config migration does not handle GRUB configs stored in ESP #857
Comments
It looks like blscfg should be enabled by past updates of this file, so we would only have to cleanup the old ostree entries. |
Maybe my understanding is not correct, do we need to run |
We can not use grub2-mkconfig on a system with composefs enabled until https://bugzilla.redhat.com/show_bug.cgi?id=2308594 if fixed. This is why the migration does things manually and does not call it. When performing the migration for older systems, we should make sure that |
The initial recommendation that was written for users to remove the duplicated entries was to disable BLS support (https://fedoraproject.org/wiki/Common_F31_bugs#On_Fedora_Silverblue.2FIoT.2C_the_GRUB_menu_shows_duplicate_entries), so this issue might hit a few users. One option would be to force re-enable the BLS config in a Fedora 40/41 update and hope that users properly update their system to the latest version before rebasing, as we can not re-generate the GRUB config once on F42 with composefs. |
To make bootupd robust, we should do to improve:
Could you help to review if I missed something? @travier |
If I understand correctly, the insmod & boot/root options from https://discussion.fedoraproject.org/t/sb42-updates-fail-on-system-with-512mb-boot-128mb-boot-efi/145041/23 would also be missing, so we would have to inject them. We don't need to touch At this point, this is getting into GRUB config rewrite territory, so I'm not sure if we should do this. But the other alternative is to tell folks to enable the BLS config option back in their config before they update, which does not really scale. |
Agree that it will be risky to rewrite config and might make it unable to boot. I have no idea if we have a better / safer way. Any suggestions? |
An option is to ship a script on F40 & F41 Atomic Desktops & IoT to force this option on at boot. All users that update to the latest F41 before rebasing to F42 would get it, and that should cover the most common case. |
Fedora IoT systems are using "streams" (stable, testing, rawhide) so the workaround above would not completely cover the case where someone running F41 IoT before that script gets in directly updates to a F42 build. |
If there is no such |
Adapted from my reply in the PR:
According to
In the case of https://pagure.io/workstation-ostree-config/pull-request/630, if |
Got it, thanks! |
Until Fedora 41, the bootloader entries were duplicated in the GRUB boot menu as both the BLS configs and the ostree-grub2 static entries where included and loaded in the GRUB config. With the bootloader being updated and system being migrated to a static GRUB config as part of the composefs support, we now want to rely on BLS configs only. The Fedora 31 release notes [1] suggested disabling BLS support in GRUB to remove the duplicate entries. We thus need to make sure that this support is turned back in the GRUB config before systems are updated to F42. [1]: https://fedoraproject.org/wiki/Common_F31_bugs#On_Fedora_Silverblue.2FIoT.2C_the_GRUB_menu_shows_duplicate_entries See: https://gitlab.com/fedora/ostree/sig/-/issues/35 See: coreos/bootupd#857
On older Silverblue systems (installed from Silverblue 33 at least), the GRUB config is stored in the ESP instead of
/boot
.The migration logic that we have right now is not enough, as it would have to look at this file as well, clean it up, and enable
blscfg
and maybe also make sure to add the info pointing GRUB to the boot partition to find the boot entries.See: https://discussion.fedoraproject.org/t/sb42-updates-fail-on-system-with-512mb-boot-128mb-boot-efi/145041/14
And also: #856
The text was updated successfully, but these errors were encountered: