GRUB2 Wiederherstellung

      Keine Kommentare zu GRUB2 Wiederherstellung

Festplatten sind Verschleißteile – das merkt man spätestens wenn der eigene Server mal wieder klackernde, roboterartige Geräusche von sich gibt. Dank Software RAID Implementationen wie mdadm ist das heutzutage allerdings meistens kein Problem mehr. Die Defekte Festplatte wird getauscht, der Server wieder hochgefahren und…bootet plötzlich nicht mehr.

 

Für eine schnelle tl;dr Anleitung bitte nach unten scrollen!

 

Sehr oft kommt es vor dass Installer einiger Linux Distributionen den Bootloader nur auf der ersten erkannten Festplatte im System installieren (/dev/sda). Wird gerade diese ausgetauscht, gibt es danach keine Möglichkeit ohne ein wenig Starthilfe wieder an das eigentliche System zu kommen.

Die Starthilfe ist in unserem Fall das GRML Livesystem.  Im Endeffekt sollte allerdings jede Linux Live CD ausreichend sein, da wir nur Tools zur Rettung verwenden die ohnehin mit quasi jedem System mitgeliefert werden.

Sobald unsere Live-CD gebootet ist, loggen wir uns mittels d + Enter ein. Warum nicht direkt auf die Enter taste hämmern fragt ihr euch? Das d beim Login sorgt dafür, dass automatisch das richtige Tastenlayout für deutsche QWERTZ Tastaturen geladen werden. Wenn ihr während der Wiederherstellung multiple Wutausbrüche erleben wollt, könnt ihr aber auch mit dem US Layout arbeiten 😉 .

Zuerst sehen wir uns die aktuelle RAID Konfiguration an:


cat /proc/mdstat

md127 : active raid1 sdc1[1]
976627712 blocks super 1.2 [2/1] [_U]
bitmap: 0/8 pages [0KB], 65536KB chunk

Natürlich fehlt uns eine defekte Festplatte (diese halten wir schließlich gerade in den Händen), aber noch etwas fällt auf…/dev/md127? Wieso 127? Nun, das ist eine Angewohnheit von Udev. Beim Boot von GRML werden automatisch alle gefundenen RAID Arrays gestartet und von Udev benannt. Für diese automatische Benennung sind alle Ziffern höher 126 reserviert, daher wurde unser vorheriges /dev/md0 kurzerhand umgetauft.

In der Regel ist dies für eine simple Grub2 Installation kein Problem, kann allerdings trotzdem zu Fehlern führen. Deshalb schaffen wir etwas Ordnung, stoppen alle Arrays und lassen Sie anschließend von mdadm automatisch zusammenfügen. Hierbei hat Udev nicht mehr die Finger im Spiel und die Benennung sollte korrekt werden:


mdadm --stop /dev/md127

mdadm --assemble --scan

cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1]
976627712 blocks super 1.2 [2/1] [_U]
bitmap: 0/8 pages [0KB], 65536KB chunk

Nun gehts an die eigentliche Wiederherstellung, dazu müssen wir uns mittels chroot in unser kaputtes System begeben:


mount /dev/md0 /mnt

mount -o bind /dev /mnt/dev

mount -o bind /proc /mnt/proc

mount -o bind /sys /mnt/sys

chroot /mnt /bin/bash

Nach ausführen dieser Befehle sehen wir nach ob wir in unserem System gelandet sind, hier sollte nun euer Hostname angezeigt werden:


cat /etc/hostname

Nun installieren wir Grub2 auf allen verbauten Festplatten:


grub-install /dev/sda

grub-install /dev/sdb

Sollten hierbei Fehler auftreten, ist es eventuell nötig vorher noch grub-mkdevicemap auszuführen!

Anschließend verlassen wir mit STRG+D unsere chroot Umgebung und umounten unser System, danach wird der Server neu gestartet:


umount /mnt/dev

umount /mnt/sys

umount /mnt/proc

umount /mnt

reboot

Nun sollte euer System wieder tadellos hochfahren – auch mit der neuen Festplatte als Boot-Device!

 

tl;dr:


mdadm --stop /dev/md127

mdadm --assemble --scan

cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdc1[1]
976627712 blocks super 1.2 [2/1] [_U]
bitmap: 0/8 pages [0KB], 65536KB chunk

mount /dev/md0 /mnt

mount -o bind /dev /mnt/dev

mount -o bind /proc /mnt/proc

mount -o bind /sys /mnt/sys

chroot /mnt /bin/bash

grub-install /dev/sda

grub-install /dev/sdb

umount /mnt/dev

umount /mnt/sys

umount /mnt/proc

umount /mnt

reboot

 

Schreibe einen Kommentar

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