Falle in Fedora

Früher gab es für die Aktualisierung von GRUB2 in Fedora zwei unterschiedliche Befehle. Für BIOS-Systeme war es:
sudo grub2-mkconfig -o /boot/grub2/grub.cfg und für EFi-Systeme:
sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.

Inzwischen hat jedoch Fedora die durchaus begrüßenswerte und vernünftige Entscheidung getroffen, für beide Systeme nur noch ein Kommando zu verwenden, nämlich das für BIOS-Systeme. Im EFI-Verzeichnis wird neuerdings nur noch auf eine  einheitliche grub.cfg gesourced, und diese tatsächliche grub.cfg liegt für beide Systeme in /boot/grub2/grub.cfg.

Daraus ergibt sich jedoch eine tückische Falle. Denn auf vielen Webseiten finden sich noch immer, so wie eingangs beschrieben, zwei verschiedene Befehle je nach System. Aber wenn man in einem neueren Fedora nur einmal den EFI-Befehl eingibt, ist der Update-Mechanismus danach kaputt. Wenn dann z.B. in dnf eine neue Kernel-Version installiert wird, wird der danach ausgeführte implizite Update für GRUB2 zwar die /boot/grub2/grub.cfg bearbeiten, aber nicht die /boot/efi/EFI/fedora/grub.cfg. Diese zweite Datei hat jedoch beim Booten in GRUB Vorrang, und deshalb wird der neue Kernel dann nicht gestartet. Und wie es mit späteren größeren Updates aussieht, z.B. Update auf eine höhere Fedora-Version, ist sowieso ungewiss.

Abhilfe ist wie folgt:

sudo rm /boot/efi/EFI/fedora/grub.cfg
sudo dnf reinstall grub2-efi-x64 shim-x64 grub2-tools
sudo dnf reinstall grub2-common
sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Die EFI grub.cfg sieht danach so aus:

search --no-floppy --fs-uuid --set=dev 9baexxxx-xxxx-xxxx-xxxx-xxxxxxxxcd35
set prefix=($dev)/grub2
export $prefix
configfile $prefix/grub.cfg

und verweist  bzw. sourced auf die grub.cfg in /boot/grub2. Und danach funktioniert auch wieder der dnf-Mechanismus, z.B. in dnfdragora.

Ergänzung 13.08.2023: Es ist möglich, dass durch den fehlgegangenen efi-update-grub außerdem die Variable GRUB_ENABLE_BLSCFG in /etc/default/grub verstellt wurde. Diese Variable sollte unter Fedora auf „true“ stehen, könnte aber durch den veralteten efi-update-grub auf „false“ gegangen sein (GRUB_ENABLE_BLSCFG=false). Dies könnte wiederum mit anderen Update-Mechanismen von Fedora kollidieren und zu weiteren Problemen führen. Als Abhilfe den Wert auf „true“ setzen (GRUB_ENABLE_BLSCFG=true) und anschließend
sudo grub2-mkconfig -o /boot/grub2/grub.cfg“. Mehr Info zu diesem Problem hier: https://forums.fedoraforum.org/showthread.php?331019-Fedora-38-not-booting-with-kernel-version-gt-6-4-6

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert