LINUXMAKER, OpenSource, Tutorials

Grub in einem Live- oder Rescue-System reparieren

Wenn man durch ein System-Upgrade oder ein Kernel-Upgrade in die Situation gerät, dass man in das System booten kann, weil Grub Fehlermeldungen produziert, dann lässt sich das Ganze elegant über ein Live-System oder Rescue-System handeln. Dabei spielt es keine Rolle, ob es sich hier um eine Rescue-CD oder ein beim Provider gestartetes System über PXE handelt. Hauptsache, man ist im Rescue-System.

Vorbereiten des Chroot-Verzeichnisses

Als Root su - muss man zuerst die Systempartition, meistens '/' auf /dev/sda3 oder einem Raid1 /dev/md0 oder einem LVM wie /dev/vg00-root, an geeigneter Stelle einbinden. Das machen wir wie folgt.

ROOT=/dev/sda3
mkdir /tmp/mnt
mount $ROOT /tmp/mnt

Jetzt werden alle aktiven /dev-, /proc- und /sys-Verzeichnisse eingebunden, das Rootverzeichnis auf das neue Verzechnis gelegt und zu guter Letzt alle Mounts eingebunden.

for x in dev sys proc run; do
    mount --rbind /$x /tmp/mnt/$x
done
chroot /tmp/mnt
mount -a

GRUB reparieren, Kernelimages installieren, Chroot verlassen

Ab diesem Zeitpunkt kann man mit dem Checken der Initdr's checken respektive neuanlegen der Initdr beginnen.

update-initramfs -c -k all (4.19.0-5-amd64)
grub-install /dev/sda
grub-install /dev/sdb
update-grub
exit

Jetzt braucht man das Ganze soweit wie möglich nur noch unmounten und einen Reboot erzeugen.