2.3    Bootloader Recovery

Es passiert selten, aber wenn Sie Ihr System aufgrund einer Fehlkonfiguration des Bootloaders nicht mehr starten können, sollten Sie den Bootloader reparieren. Dazu können Sie den Rechner von einer beliebigen Live-CD[ 2 ] oder DVD oder von einem USB-Stick neu starten.

[+] Der einfachste Weg, eine Reparatur durchzuführen, ist, die Live-CD des Systems zu verwenden, mit der Sie den Rechner installiert haben. Beachten Sie jedoch, dass Sie in jedem Fall bei Benutzung einer anderen Rettungs-CD dieselbe Architektur verwenden, die auch Ihr installiertes System aufweist.

Nach dem Start des Rettungssystems wird die Festplatte Ihres defekten Systems eingebunden. Das bedeutet, dass Sie alle Partitionen mounten. Im Regelfall werden die Partitionen unter /mnt eingebunden. Sie können natürlich auch eigene Verzeichnisse verwenden, wenn Sie dabei keines der vom Live-System benutzten Verzeichnisse einsetzen.

Das Kommando fdisk -l zeigt Ihnen alle gefundenen Festplatten an. Falls Software-RAIDs oder LVM benutzt werden, müssen diese vor der Benutzung aktiviert werden. Wie das geht, erklären wir in Kapitel 3, »Festplatten und andere Devices«.

Device Boot      Start         End      Blocks   Id  System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 20969471 10233857 5 Extended
/dev/sda5 501760 20969471 10233856 8e Linux LVM

Listing 2.6    Ausgabe »fdisk -l« auf einem Testsystem

In Listing 2.6 finden Sie den seltenen Fall eines Systems ohne eigene Swap-Partition. Vermutlich findet sich in der ersten Partition das boot-Verzeichnis, was wir durch Mounten verifizieren können (siehe Listing 2.7):

Rescue:~# mount /dev/sda1 /mnt
Rescue:~# ls /mnt
System.map-3.16.0-4-amd64 grub vmlinuz-3.16.0-4-amd64
config-3.16.0-4-amd64 initrd.img-3.16.0-4-amd64
Rescue:~# umount /mnt

Listing 2.7    Mounten des vermeintlichen »boot«-Filesystems

Die fünfte Partition wird vom Logical Volume Manager (LVM) verwaltet.

Mit dem Kommando lvs können wir uns die gefundenen Logical Volumes anzeigen lassen. Der Parameter -o +lv_path sorgt dafür, dass uns auch gleich der Pfad für das Mounten gezeigt wird (siehe Listing 2.8):

Rescue:~# lvs -o +lv_path
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert \
Path
root debian -wi-ao-- 9.31g \
/dev/debian/root
swap_1 debian -wi-ao-- 460.00m \
/dev/debian/swap_1

Listing 2.8    Gefundene Partition im LVM

An dieser Stelle haben wir alle Informationen zusammen, um die Dateisysteme benutzen zu können (siehe Listing 2.9):

Rescue:~ # mount /dev/debian/root /mnt
Rescue:~ # mount /dev/sda1 /mnt/boot/

Listing 2.9    Mounten der Dateisysteme

Um das Linux-System komplett zu machen, müssen wir die dynamischen PseudoDateisysteme (/dev, /proc und /sys) aus der Live-CD in die Verzeichnisse unterhalb von /mnt einbinden. Das funktioniert über Bind-Mounts. Wenn das nicht passieren würde, erhielten wir nach einem Wechsel der root-Umgebung mittels chroot (»change root environment«) keine Informationen über verbundene Geräte und Kernelparameter (siehe Listing 2.10):

Rescue:~ # mount --bind /dev  /mnt/dev
Rescue:~ # mount --bind /proc /mnt/proc
Rescue:~ # mount --bind /sys /mnt/sys

Listing 2.10    Bind-Mount der Pseudodateisysteme

Damit sind jetzt alle Vorarbeiten abgeschlossen, um via chroot auf das System zu wechseln und den Bootloader zu reparieren (siehe Listing 2.11):

Rescue:~ # chroot /mnt
Rescue:/ # grub-install
Rescue:/ # exit

Listing 2.11    Neuinstallation des Bootloaders

Sobald Sie fertig sind, müssen alle Dateisysteme ausgehängt werden. Anschließend müssen Sie das System neu starten.