GRUB Bootloader bootet nicht von LVM Volume
Hinweis: Bitte beachten Sie, dass dieser Artikel / diese Kategorie sich entweder auf ältere Software/Hardware Komponenten bezieht oder aus sonstigen Gründen nicht mehr gewartet wird. Diese Seite wird nicht mehr aktualisiert und ist rein zu Referenzzwecken noch hier im Archiv abrufbar. |
---|
Wird bei der Installation von Debian GNU/Linux für die Root-Partition ein LVM Logical Volume gewählt, kann es in manchen Fällen zu Problemen beim Booten kommen. So lädt zwar der Bootloader GRUB (GRUB 2) noch ohne Probleme, aber der Versuch das Betriebssystem zu booten scheitert. Dabei werden die Fehlermeldungen Volume group "XY" not found sowie Unable to find LVM volume ABC angezeigt.
Problem
Nach der Installation eines Debian Linux 6.0 64-bit mit der geführten Partitionierung und Verwendung von LVM kann der Bootloader GRUB nicht in das Betriebssystem booten. Er bringt stattdessen folgende Fehlermeldungen und wechselt in die build-in shell (ash):
Wie man sieht findet der Bootloader unter /dev/mapper das root-Verzeichnis nicht und beendet den Bootvorgang indem er in die BusyBox springt. Eine Überprüfung des Verzeichnisses /dev/mapper bestätigt, dass kein root-Verzeichnis vorhanden ist:
Fehlerursache
Der LVM Scan läuft nicht schnell genug, die Volume Groups sind noch nicht aktiviert (Problem des Initramfs).
Fehlerbehebung
Ein nachträgliches Aktivieren der Volumes kann mit folgendem Kommando in der build-in shell gemacht werden:
vgchange -ay
Anschließend sind die Volumes auch in /dev/mapper aufgeführt:
Verlässt man nun die built-in shell mit exit:
exit
Lädt das Betriebssystem ohne Probleme in den Login-Prompt:
Alternative Fehlerbehebung
Alternativ zum oben genannten Lösungsansatz ist es auch möglich im Bootloader-Menü den entsprechenden Eintrag zu editieren (durch drücken der Taste "e" beim entsprechenden Eintrag) und dort eine Verzögerung beim Initialisieren der Root-Partition einzustellen. Dieses erreicht man mittels dem Parameter rootdelay=<Zeit in Sekunden>. Hierbei sollte ein Wert von 5 Sekunden praktikabel sein:
Nach Betätigen von "ctrl-x" bootet das System wieder ohne Probleme in den Login-Prompt.
Dauerhafte Lösung: Eintrag in /etc/default/grub
Um nicht bei jedem Boot-Vorgang per Hand eingreifen zu müssen, trägt man am Besten den rootdelay dauerhaft in der Datei /etc/default/grub ein:[1]
root@rs9000076799:~# cat /etc/default/grub
# If you change this file, run 'update-grub' afterwards to update # /boot/grub/grub.cfg. GRUB_DEFAULT=0 GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian` GRUB_CMDLINE_LINUX_DEFAULT="quiet rootdelay=5" GRUB_CMDLINE_LINUX="rootdelay=5" . . .
Nach abschließendem Update des GRUB Bootloaders per update-grub
prüft man noch die Datei /boot/grub/grub.cfg
, ob der rootdelay auch wirklich eingetragen wurde:
. . . ### BEGIN /etc/grub.d/10_linux ### menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os { insmod part_gpt insmod ext2 set root='(hd0,gpt2)' search --no-floppy --fs-uuid --set c9f5e53e-d2b5-4614-bc30-f4614aa4facd echo 'Loading Linux 2.6.32-5-amd64 ...' linux /vmlinuz-2.6.32-5-amd64 root=/dev/mapper/rs9000076799-root ro rootdelay=5 quiet rootdelay=5 echo 'Loading initial ramdisk ...' initrd /initrd.img-2.6.32-5-amd64 } menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64 (recovery mode)' --class debian --class gnu-linux --class gnu --class os { insmod part_gpt insmod ext2 set root='(hd0,gpt2)' search --no-floppy --fs-uuid --set c9f5e53e-d2b5-4614-bc30-f4614aa4facd echo 'Loading Linux 2.6.32-5-amd64 ...' linux /vmlinuz-2.6.32-5-amd64 root=/dev/mapper/rs9000076799-root ro single rootdelay=5 echo 'Loading initial ramdisk ...' initrd /initrd.img-2.6.32-5-amd64 } ### END /etc/grub.d/10_linux ### . . .
Jetzt ist die Einstellung permanent und ein Eingreifen per Hand während des Bootvorgangs ist nicht mehr notwendig.
Einzelnachweise
- ↑ InitramfsDebug (wiki.debian.org) In releases older than Debian 8 (jessie), it may be necessary to add a delay for disks to be discovered before setting up RAID and LVM. Boot with e.g. rootdelay=9