ubuntuusers.de

ubuntuusers.deWikichrootLive-CD

Live-CD

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

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 von einem USB-Stick gebootetem Linux.

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.

Hinweis:

Alle folgenden Befehle beziehen sich auf den Einsatz von Ubuntu bzw. eines Derivats als Live-System. Für andere Systeme können bestimmte Befehle oder Pfade ggf. abweichen.

Voraussetzungen

  • 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. 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
  • 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

  • Neuere Ubuntu-LiveCDs erkennen das installierte Ubuntu-System selbständig und mounten es auf /media/EINE_LANGE_ZAHLENKOMBINATION, wobei EINE_LANGE_ZAHLENKOMBINATION die UUID des Dateisystems ist. Das ganze hat zur Folge, dass man die ersten drei Befehle im Kapitel Einrichtung auslassen und in allen folgenden Befehlen in diesem Artikel /mnt mit /media/EINE_LANGE_ZAHLENKOMBINATION ersetzen kann. Die unten beschriebene normale Vorgehensweise funktioniert aber natürlich weiterhin.

Hinweis:

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.

Einrichtung

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 parted -l 

Experten-Info:

Falls man bei der Installation nicht nur das Homeverzeichnis verschlüsselt, sondern stattdessen die Systemverschlüsselung (LUKS) aktiviert hat, muss man das System nun entschlüsseln:

sudo cryptsetup luksOpen /dev/sdxY mnt 

Dabei sind die Bezeichnungen xY an die eigenen Gegebenheiten anzupassen. Wenn man nun den parted-Befehl wiederholt, erkennt man eine oder mehrere Ausgaben wie Festplatte /dev/mapper/mnt, wobei zusätzlich vgubuntu (sowie vgubuntu-root und vgubuntu-swap) erscheinen, wenn der Installer die Verschlüsselung mit LVM ergänzt.

Im Folgenden weicht die Anleitung dann nur noch dadurch ab, dass nun anstelle von /dev/sdxY stattdessen das entsprechende /dev/mapper/vgubuntu-root (LUKS mit LVM) bzw. direkt das soeben durch die Entsperrung erzeugte /dev/mapper/mnt (Beispiel ohne LVM) genutzt werden muss.

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.

Nutzt man auf seinem Rechner das (U)EFI-Bootverfahren, so muss für vollen Zugriff (sogar zusätzlich zu einer eventuell bereits vorhandenen /boot-Partition von Ubuntu, etwa bei LUKS-Verschlüsselung) die /boot/efi-Bootpartition aller installierten Betriebssysteme vorab eingehängt werden mit:

sudo mount /dev/sdwY /mnt/boot/efi 

Auch hier sind die Bezeichnungen wY an die eigenen Gegebenheiten anzupassen. Dies ist eine Partition, die im ersten Schritt mit parted am Dateisystem vfat oder einem Hinweis zu EFI erkennbar ist.

Zusätzliche Schritte

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 -t devtmpfs /dev /mnt/dev
sudo mount -t devpts /dev/pts /mnt/dev/pts 

Ähnlich verfährt man mit dem Schnittstellendateisystem /proc und dem System-Verzeichnis /sys. Diese werden mit

sudo mount -t sysfs /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc 

eingebunden.

Weiterhin muss /run eingebunden werden:

sudo mount -t tmpfs /run /mnt/run 

Hinweis:

Der folgende Einzeiler hängt diese notwendigen Systemverzeichnisse in einem Aufruf ein:

for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done 

Gemountete Datenträger können optional eingebunden werden:

sudo cp /proc/mounts /mnt/etc/mtab 

Um die Internetverbindung sicherzustellen, werden u.U. die DNS-Server-Angaben benötigt. Diese kopiert man mit:

sudo mount -o bind /etc/resolv.conf /mnt/etc/resolv.conf 

System-Wechsel

Es erfolgt der Wechsel in das installierte System:

sudo chroot /mnt /bin/bash 

Nun kann die Reparatur des installierten System vorgenommen werden.

Beenden

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 4. September 2014 02:04 von Benno-007 erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Installation, Shell, System