Kann man nicht mehr auf normalem Wege auf sein System zugreifen, z.B. weil es Probleme mit dem Bootloader gibt und das System nicht mehr startet, so hilft u.U. ein Rettungssystem vom USB-Stick oder von CDROM weiter. Dabei muss es sich nicht unbedingt um die Recovery-Funktion der installierten Linux-Distribution handeln, auch ein fremdes Reparatursystem wie KNOPPIX kann von Nutzen sein. Allerdings sollte Reparatursystem und installiertes System die gleiche Architektur besitzen, mit einem 32-bit KNOPPIX ein 64-bit Zielsystem zu reparieren wird also in der Regel scheitern.
Hat das Reparatursystem erfolgreich gebootet, so verschafft man sich in einem Terminalfenster erstmal einen Überblick über die Festplattenstruktur:
~> lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 465,8G 0 disk
├─sda1 8:1 0 8G 0 part [SWAP]
├─sda2 8:2 0 20G 0 part /
└─sda3 8:3 0 437,8G 0 part
└─cr_home 253:0 0 437,8G 0 crypt /home
sr0 11:0 1 352,6M 0 rom
Nun mountet man die Partition die das Wurzelvezeichnis des Zielsystems enthält, in unserem Beispiel also /dev/sda2
:
sudo mount /dev/sda2 /mnt
Wechselt man anschließend mit chroot
das Wurzelverzeichnis zum Zielsystem, so taucht folgendes Problem auf: Die im Wurzelverzeichnis des Zielsystems liegenden Verzeichnisse wie proc
, dev
und sys
sind tot, denn durch chroot
wird ja kein neuer Kernel gestartet, durch dessen Gerätetreiber die Verzeichnisse dev
usw. ein vitales Abbild des laufenden Systems liefern. Man muss also die entsprechenden Verzeichnisse des Recovery-Systems in das Zielsystem mounten:
for i in /dev /dev/pts /proc /sys /run;\
do sudo mount -B $i /mnt$i; done
Erst jetzt wird in das neue Wurzelverzeichnis gewechselt:
sudo chroot /mnt /bin/bash
Jetzt stehen einem die Programme des Zielsystems zur Verfügung (man muss aber immer im Hinterkopf behalten, dass der laufende Kernel nach wie vor, der des Recovery-Systems ist). Man kann also bspw. den Bootloader konfigurieren, ist das Zielsystem OpenSuSE ruft man also yast
auf:
yast bootloader
Hat man die Arbeit auf dem Zielsystem beendet, so kann man die chroot
-Umgebung durch exit
wieder verlassen.