LINUXMAKER, OpenSource, Tutorials

Den Bootloader Grub mit Zuhilfenahme eines Live-Systems reparieren

Wer kennt das nicht? Nach einem Upgrade oder Arbeiten am Bootmanager selber bootet das System bei dem nächsten Neustart nicht mehr in das eigentliche Betriebsystem. Der Grub belebt einfach hängen respektive zeigt den Rescue-Modus der Grub-Shell.
Gut, wenn man jetzt den Grub noch einmal neuinstallieren könnte. Aus dem Grub-Rescue-Modus geht das aber nicht.

Dazu wird jetzt ein Live-System auf einer CD oder einem USB-Stick benötigt. Hier bieten sich verschiedene Live-Systeme an, wie SparkyLinux oder SuperGrubDisk. Nach dem Download lassen sich die Bootmedien wie folgt erstellen.
Für die Erstellung eines kompletten Abbilds einer CD/DVD dient beispielsweise folgender Befehl:

dd if=/dev/sdY of=/pfad/Image.img bs=1M && sync

Für den USB-Stick sieht der Befehl so aus:

dd if=/dev/dvd of=/pfad/Image.img bs=1M && sync

Reparatur des Boot-Managers im Live-System

Wenn wir mit unserem eben erstellten Live-Image in das Live-System gebootet sind, müssen wir uns die Systempartition in unser Live-System mounten. Sofern das Boot-Verzeichnis auf einer extra Partition liegt, so ist auch diese zu mounten.

# mkdir /syspart
# mount /dev/sdc3  /syspart
# mount -o bind /dev /syspart/dev
# mount -o bind /proc /syspart/proc
# mount -o bind /sys /syspart/sys

Das kann helfen,

# mount -o bind /run /syspart/run

wenn später beim eigentlichen update-grub2-Befehl Warnungen wie diese auftreten sollten:

WARNING: Device /dev/loop0 not initialized in udev database even after waiting 10000000 microseconds.
WARNING: Device /dev/sda not initialized in udev database even after waiting 10000000 microseconds.
WARNING: Device /dev/loop1 not initialized in udev database even after waiting 10000000 microseconds.

Chrooten des Systems, damit die Änderungen auf der zu behandelnden Festplatte erfolgen und nicht im Live-System erfolgen. Letzteres dient nur dazu, um die Festplatte verwenden zu können und die Tools dazu zur Verfügung zustellen.

# chroot /syspart
# mount /dev/sdc1 /boot

Jetzt kann die eigentliche Reparatur des Grub-Managers durchgeführt werden.

# update-grub2
# grub-install /dev/sdc
# exit
# reboot

Nach dem Reboot, dürfte wieder erfolgreich der Bootvorgang in das eigentliche Betriebsystem starten.