Grub "set root" Raid Anomalie

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
schattenfell
Beiträge: 27
Registriert: 04.07.2011 16:26:13

Grub "set root" Raid Anomalie

Beitrag von schattenfell » 17.03.2013 18:15:36

Hallo,

vor einigen Tagen hatte ich auf einem meiner Server eine seltsame Anomalie, die ich mir bis heute nicht erklären kann. Bei dem System handelt es sich um einen Debian Squeeze Server mit einfachem Setup (Raid1 samt LVM).

Nach einem Wartungs-Reboot kam das System nicht wieder hoch, was bisher nie der Fall war. Da die Konfiguration des Systems von CFEngine überwacht wird, dachte ich zunächst an ein Hardwareproblem. Nachdem ich aber schnell noch eine Remote Konsole an das System hängen ließ, sah ich das Malheur: Grub verweigerte den Bootvorgang. Da es schnell gehen musste, habe ich mir leider nicht die genaue Fehlermeldung notieren können, aber Grub fand sich außer Stande, das angegebene root-device anzusprechen (md0).

Also habe ich schnell die Config editiert und aus:

Code: Alles auswählen

set root='(md0)'
wurde:

Code: Alles auswählen

set root='(hd0,0)'
Danach war der Bootvorgang möglich.

Aber warum kann Debian auf einmal md0 per grub nicht mehr ansprechen?

Hier zunächst die komplette Config:

Code: Alles auswählen

menuentry 'Debian GNU/Linux, with Linux 2.6.32-5-amd64' --class debian --class gnu-linux --class gnu --class os {
        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod part_msdos
        insmod ext2
        set root='(md0)'
        search --no-floppy --fs-uuid --set dd5ad8be-7202-4100-8d74-55dbd5f57d1f
        echo    'Loading Linux 2.6.32-5-amd64 ...'
        linux   /vmlinuz-2.6.32-5-amd64 root=/dev/mapper/vg0-root ro
        echo    'Loading initial ramdisk ...'
        initrd  /initrd.img-2.6.32-5-amd64
}
Auf md0 befindet sich entsprechend der Inhalt von /boot.

Für mich ist die Config korrekt. Oder sehe ich den Wald vor lauter Bäumen nicht mehr?

Danke im Voraus für alle Hinweise.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Grub "set root" Raid Anomalie

Beitrag von rendegast » 22.03.2013 12:56:17

set root='(md0)'
search --no-floppy --fs-uuid --set dd5ad8be-7202-4100-8d74-55dbd5f57d1f
Das 'set root' hier wäre unerheblich, da das 'search' root setzt.
Stimmt noch die dort angegebene uuid?
'blkid'
und in der grub-shell, nach Ausführung von

Code: Alles auswählen

        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod ext2
mal

Code: Alles auswählen

irgendwas (<TAB>
sollte dann erkannte devices auflisten.

Den grub-code in den MBR neu schreiben lassen?
'grub-install .....' oder
'dpkg-reconfigure grub-pc'


Vielleicht auch mal die /boot/grub/device.map umbenennen und mit
der bei einem 'dpkg-reconfigure' resp. 'update-grub' erstellten vergleichen.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

schattenfell
Beiträge: 27
Registriert: 04.07.2011 16:26:13

Re: Grub "set root" Raid Anomalie

Beitrag von schattenfell » 24.03.2013 08:09:07

Hallo rendegast,

danke für deine Hinweise.
rendegast hat geschrieben:Das 'set root' hier wäre unerheblich, da das 'search' root setzt.
Stimmt noch die dort angegebene uuid? 'blkid'
Ja die UUID stimmt noch überein. In dem betroffenen System wurde zwar in der Vergangenheit eine Platte getauscht, aber die UUID des md0 bleibt davon ja unberührt.
rendegast hat geschrieben: und in der grub-shell, nach Ausführung von

Code: Alles auswählen

        insmod raid
        insmod mdraid
        insmod part_msdos
        insmod ext2
mal

Code: Alles auswählen

irgendwas (<TAB>
sollte dann erkannte devices auflisten.
Aktuell kann ich die grub shell nur aus dem Live-System starten, da ich keinen Reboot machen kann. Hier die Ergebnisse:

Code: Alles auswählen

/ # grub
grub> cat (hd
 Possible disks are:  hd0 hd1
Hier sieht man wieder, dass md0 fehlt. Daraufhin habe ich außerhalb noch einmal geschaut, ob denn die Module geladen sind, die angegeben waren:

Code: Alles auswählen

/ # lsmod | grep -e mdraid -e raid -e part_msdos -ext2
Keines der Module war geladen. Will ich sie dann nachladen auf der Shell, erhalte ich ebenfalls eine Fehlermeldung:

Code: Alles auswählen

/ # insmod /boot/grub/raid.mod
insmod: error inserting '/boot/grub/raid.mod': -1 Invalid module format
Hier scheint der Hund begraben zu sein. Die Module werden von Grub gar nicht erst geholt. Nun ist guter Rat teuer, warum dieser Zustand eingetreten ist und wie man ihn behebt.

Antworten