Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.
chroot kann benutzt werden, um von einer Live-CD/DVD in die Umgebung eines installierten Systems einzugreifen, beispielsweise für eine Reparatur. Jedes Live-System ist zur Reparatur geeignet - ob Ubuntu-Desktop-CD, Knoppix oder ein Mini-Linux von Diskette.
Dieser Artikel beschreibt, wie man den chroot-Systemwechsel mit zusätzlichen Schritten vollzieht, so dass ein vollständiger Zugriff auf das System für Reparaturen möglich ist. Für einen einfachen Zugriff, zum Beispiel um die Ausgabe eines einzelnen Befehls zu überprüfen, können ggf. einzelne Schritte, wie das Einbinden von /sys und /proc ausgelassen werden.
Es ist wichtig, dass die Systemarchitektur des Live-Systems mit der des installierten Ubuntu-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.
Dieser Artikel geht von einer Ubuntu-Standard-Installation als erstem System auf dem Rechner aus. Daher wird die Festplatte mit dem installierten Ubuntu als /dev/sda angesprochen, wofür bei anderer Installation ggf. andere Bezeichnungen anzugeben sind. Die nötigen Techniken zur Bedienung von chroot werden als bekannt vorausgesetzt [1].
Neuere Ubuntu-LiveCDs erkennen das installierte Ubuntu-System selbständig und mounten es auf /media/EINE_EWIG_LANGE_ZAHLENKOMBINATION, wobei EINE_EWIG_LANGE_ZAHLENKOMBINATION eine ewig lange Zahlenkombination ist. Das ganze hat zur Folge, dass man den ersten Befehl im Kapitel Einrichtung auslassen und in allen folgenden Befehlen in diesem Artikel /mnt mit /media/EINE_EWIG_LANGE_ZAHLENKOMBINATION ersetzen kann.
Ab Oneiric Ocelot ist die Verwendung von Btrfs möglich, das sollte man im Terminal vorab abklären mit:
sudo blkid
Außerdem kann man damit gleich prüfen, auf welcher Partition das eigene Linux sich befindet.
Nach dem Start des Live-Systems muss die Partition mit dem installierten Ubuntu-System eingebunden werden. Wo das eigene Linux zu finden ist erfährt man mit dem Befehl
sudo fdisk -l
Es muss für ein ext-formatiertes System der Befehl
sudo mount /dev/sdxY /mnt
bzw. bei einem Btrfs-formatierten System:
sudo mount -o subvol=@ /dev/sdxY /mnt
ausgeführt werden, dabei sind die Bezeichnungen xY an die eigenen Gegebenheiten anzupassen.
Nutzt das System eine separate boot-Partition, so muss diese mit
sudo mount /dev/sdzY /mnt/boot
eingebunden werden. Auch hier sind die Bezeichnungen zY an die eigenen Gegebenheiten anzupassen Bei einer normalen Installation ist diese Partition nicht vorhanden, und somit dieser letzte Befehl nicht erforderlich.
Vor dem Wechsel in das installierte System muss gegebenenfalls diesem der Zugriff auf wichtige Systeminformationen zugesichert werden. Man bindet dazu das Verzeichnis mit den Gerätedateien /dev innerhalb des installierten Systems ein:
sudo mount -o bind /dev /mnt/dev
Ähnlich verfährt man mit dem Schnittstellendateisystem /proc und dem System-Verzeichnis /sys. Diese werden mit
sudo mount -o bind /sys /mnt/sys sudo mount -t proc /proc /mnt/proc sudo cp /proc/mounts /mnt/etc/mtab
eingebunden.
Um die Internetverbindung sicherzustellen, werden u.U. die DNS-Server-Angaben benötigt. Diese kopiert man mit:
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
Es erfolgt der Wechsel in das installierte System:
sudo chroot /mnt /bin/bash
Nun kann die Reparatur des installierten System vorgenommen werden.
Abschließend verlässt man die chroot-Umgebung mit exit und kann, sofern man nichts anderes mehr mit dem Live-System machen möchte, das System mit sudo reboot neu starten.
Diese Revision wurde am 20. November 2011 um 20:47 Uhr
von Lasall erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet:
Installation, Shell, System
2004 – 2011 ubuntuusers.de • Einige Rechte vorbehalten