Thomas Kramer

IT-COW | September 2022

Zerschossenen Bootloader vom Proxmox Server reparieren

By Administrator at September 14, 2022 22:56
Filed Under:

Bei meinem Server wurde vorgestern durch ein automatisches Update von Proxmox der Bootloader zerschossen. Der Start des Servers blieb immer beim Bootloader Grub mit der Fehlermeldung

proxmox error: disk lvmid not found

stehen und sprang nur in den “Grub Rescue”-Modus mit einem Eingabeprompt. Um den Grub-Eingabeprompt bedienen zu können, muss man sich auch erst einmal mit den Befehlen beschäftigen.

 

Je nachdem, ob man seinen Server im alten EFI-Modus oder im neueren UEFI-Modus mit Secure Boot benutzt, wird ein anderer Bootloader von Proxmox installiert. Für den EFI-Modus wird Grub benutzt, ansonsten systemd-boot. Da ich den Server mit Linux benutzen wollte und das Secure Boot-Feature mit Linux bekanntermaßen Probleme machen kann, hatte ich Secure Boot im BIOS deaktiviert. Übrigens berichtete heise jüngst, dass durch ein Windows-Update Linux-Bootloader deaktiviert wurden. 

 

Jedenfalls haben noch mehr Leute diese Woche Probleme mit Proxmox gehabt, wie man im Proxmox-Forum sehen konnte: 1 2. Soweit ich lese ist jüngst Debian 11.5 mit einem Update für Grub erschienen, und Proxmox baut auf Debian auf. Wobei ich dazu sagen muss, dass ich für die automatischen Updates von Proxmox (privat) das kostenlose “No-Subscription Repository” benutze.

 

Normalerweise muss man für die automatischen Updates von Proxmox Geld bezahlen, dieses kostenlose Update-Repository wird aber nur für Testzwecke und nicht für Produktivsysteme empfohlen. Wie ich jetzt gesehen habe, wohl nicht ganz zu Unrecht. Dass er dann aber nach einem Update gar nicht mehr bootet, damit hatte ich nicht gerechnet. Hier ist übrigens der Link zu dem Grub-Bug von der GNU-Seite.

 

Auf den einfachsten Tipp das System wieder booten zu können, brachte mich dieser Eintrag auf reddit, bei dem auch ein Screenshot der Fehlermeldung zu sehen ist. Jemand hat da nämlich als Tipp geantwortet, ein Bootmedium wie einen USB-Stick mit dem Programm “Super Grub 2 Disk” zu bestücken und davon zu booten. Ich sehe da übrigens auch ein Programm Rescatux zum Download, das hätte ich auch noch testen können.

 

Wichtig ist dann im Menü von Super Grub 2 zuerst den LVM-Support von Grub zu aktivieren, und dann unter “Boot manually”, “Operating System” einen der gefundenen Linux-Kernel auszuwählen. Daraufhin bootet er dann einmalig wieder ins System, aber der Bootloader ist dann noch nicht wieder repariert.

 

Ich habe dann aber nochmal neu in den Grub Rescue-Eingabeprompt gebootet, weil ich sehen wollte wie man das System von dort aus booten kann. Eigentlich ist die Bedienung dort nicht so schwierig, aber man muss die Befehle schon kennen. Auf phoenixNAP gibt es eine Übersicht der verfügbaren grub rescue-Befehle.

 

Zuerst muss man, wenn auf dem System Proxmox läuft, den LVM-Support aktivieren. Das geschieht mit dem Befehl

insmod lvm

Eine Unterstützung für das ext2-Dateisystem von Linux zu aktivieren ist auch sinnvoll:

insmod ext2

 

Mit ls kann man sich dann die erkannten Laufwerke und Partitionen anzeigen lassen, die Anzeige ist aber etwas gewöhnungsbedürftig:

 

image

 

Bei proxmox ist unter /dev/hda2 der Bootloader installiert, und unter /dev/hda3 dann das root-Filesystem.

Mit ls (hd0,gpt2)/grub kann man sich dann den Inhalt des Laufwerks mit dem Bootloader unter dem Menü /grub anzeigen lassen. Mit set kann man sich auflisten lassen, welche Einstellungen von grub aktiv sind.

 

Man muss dann einstellen, wo der Bootloader und wo die Root-Partition installiert ist:

set prefix=(hd0,gpt2)

set root=(lvm/pve-root)

 

Danach dann die folgenden Befehle ausführen:

linux (lvm/pve-root)/boot/pve/vmlinuz ro root=/dev/mapper/pve-root

initrd (lvm/pve-root)/boot/pve/initrd.img

boot

 

Wenn er dann ins System gebootet hat, kann man dann den Bootloader mit den folgenden Befehlen reparieren:

update-grub

grub-install

 

Und danach konnte ich zum Glück wieder ganz normal ohne USB-Stick booten. Da ich seit ein paar Wochen ein Vollbackup über einen dedizierten Proxmox Backup-Server fahre, wäre ein Neuaufsetzen des Servers aber auch nicht weiter tragisch gewesen.

 

Die Befehle der Proxmox-Seite “Recover from Grub Failure, die man über den Debug-Modus eines Proxmox-Bootmediums nutzen kann, sind übrigens auch interessant. Bei der Installation des Bootloaders hatte ich dabei aber Fehlermeldungen bekommen.

 

Ich hoffe, dass so ein harter Fehler nicht so schnell erneut auftritt.

   

Tag-Wolke

Monats-Liste