Das neueste CentOS-Update bricht GRUB2-efi-Bootloader

Nach dem Start yum updateunter CentOS kann es bei einem anschließenden Neustart zu einer Überraschung in Form eines beschädigten Servers kommen, der auf dem BIOS-Begrüßungsbildschirm hängt.



Wir haben gestern angefangen, in Foren und Bug-Trackern über das Problem zu schreiben. Es scheint, dass das Problem alle Systeme mit einem UEFI-Bootloader betrifft und für mindestens CentOS 7.8 und 8.2 relevant ist. Gestern Abend hatte ich nicht das Glück, den Server zu aktualisieren und neu zu starten, um mir eine Nacht voller Spaß zu sichern.



Das Problem tritt zum Zeitpunkt des Neustarts des Servers in Form eines eingefrorenen Bildschirms mit einem BIOS-Begrüßungsbildschirm auf, von dem zunächst überhaupt nicht klar ist, was passiert - keine Fehler, keine Grub-Konsole, nur ein eingefrorener BIOS-Begrüßungsbildschirm.



Entscheidung



Wenn der Server nach dem Update nicht neu gestartet wurde, reicht es aus, das Update der grub2-Pakete und ihrer Abhängigkeiten zurückzusetzen, um beim nächsten Neustart keinen Baustein zu erhalten:



yum downgrade grub2\* shim\* mokutil


Wenn der Server neu gestartet wird und der Baustein noch empfangen wird, benötigen Sie zum Wiederherstellen des Bootloaders eine Live-CD oder ein Flash-Laufwerk. Die Reihenfolge der Aktionen zum Zurücksetzen von Paketen auf einem nicht bootfähigen System lautet wie folgt:



  • Starten Sie von Live-CD auf (ich nahm Version 7 hier );
  • Konfigurieren Sie ein Netzwerk.
  • Hängen Sie die Root-Partition in / mnt / sysimage ein.
  • Mounten Sie die Partition / boot in / mnt / sysimage / boot und die Partition / boot / efi in / mnt / sysimage / boot / efi.
  • Führen Sie eine Folge von Befehlen aus:



    mount -o bind /dev/urandom /mnt/sysimage/dev/urandom
    echo 'nameserver 1.1.1.1' > /mnt/sysimage/etc/resolv.conf
    chroot /mnt/sysimage
    yum downgrade grub2\* shim\* mokutil


Danach wird der Loader auf die alte Version aktualisiert und der Server sollte booten.



Pakete von Updates ausschließen



Um zu verhindern, dass der Bootloader beim nächsten Update erneut beschädigt wird, müssen Sie die problematischen Pakete zu den Ausnahmen (Zeile exclude=grub2* shim* mokutil) in der yum-Konfigurationsdatei hinzufügen /etc/yum.conf.



Problematische Versionen von Paketen für CentOS 7, mit ihnen bricht der UEFI-Bootloader zusammen:

grub2-2.02-0.86.el7.centos.x86_64

shim-x64-15-7.el7_9.x86_64




All Articles