chroot Change Root unter Linux

Passwort vergessen? System startet nur in Read-Only? Es muss nicht immer gleich eine Neuinstallation sein. Ein Nachteil von Gentoo ist nunmal, das die Installation relativ lange dauert. Über ein chroot kann sicher noch einiges zu retten sein.

Über ein chroot wechselt man das System.

chroot steht für „change root“ und ist eine Funktion unter Unix-Systemen, um das Rootverzeichnis zu ändern. Sie wirkt sich nur auf den aktuellen Prozess und seine Kindprozesse aus. „chroot“ selbst kann sich sowohl auf den Systemaufruf chroot als auch auf das Dienstprogramm chroot beziehen.

Ein chroot ist sinnvoll um auf ein eventuell nicht mehr korrekt funktionierendes System zuzugreifen. Dafür ist nur ein Live-System erforderlich. Jedes Live-System ist zur Reparatur geeignet – ob Ubuntu-Desktop-CD, Knoppix oder ein von einem USB-Stick gebootetem Linux.

Es ist wichtig, dass die Systemarchitektur des Live-Systems mit der des installierten Systems übereinstimmt. Es ist also nicht ohne weiteres möglich, sich mit Chroot und einer 32-Bit-Live-CD an einem 64-Bit-System anzumelden. Wird die gleiche CD wie zur Installation genutzt, so sollte es keine Probleme geben. Bei Unstimmigkeiten zw. Architektur und Live-System erhält man eine Fehlermeldung der folgenden Art:

chroot: Befehl >>/bin/bash" konnte nicht ausgeführt werden: Fehler im Format der Programmdatei

Natürlich ist die Verwendung einer Gentoo-Live-CD oder Live-USB sinnvoll.

Nun müssen die notwendigen Prozesse und Dateien eingebunden und kopiert werden. Als Erstes wird die Root-Partition eingebunden. Das Verzeichnis /mnt/gentoo ist standardmäßig auf der Gentoo-CD enthalten. Über Ubuntu oder andere Distributionen muss das Verzeichnis über mkdir angelegt werden.

localhost# mount /dev/sda1 /mnt/gentoo

Die Verzeichniss dev und sys werden ebenfalls eingebunden.

localhost# mount --rbind /sys /mnt/gentoo/sys
localhost# mount --rbind /dev /mnt/gentoo/dev

Der Prozess wird eingebunden:

localhost# mount -t proc none /mnt/gentoo/proc

Wenn über die Live-CD das Internet funktioniert ist es sinnvoll die Einstellungen der Netzwerkkarte zu kopieren

localhost# cp /etc/resolv.conf  /mnt/gentoo/etc

Nun kann das System durch den Befehl chroot gewechselt werden.

localhost# chroot /mnt/gentoo    /bin/bash

Nun kann auch ein vergessenes Kennwort neu festgelegt werden. Einfach über den Befehl passwd neu festlegen. Es sollte somit auch Jedem klar sein, dass jeder, der Zugriff auf den Rechner hat und einige Kenntnisse im EDV-Bereich hat auch ohne Kennwort auf das System kommt.