1 🔄 chroot (Das digitale Einbruchswerkzeug für Systemretter)
chroot steht für „Change Root“ (Wurzelverzeichnis wechseln). Es ist eine der ältesten und mächtigsten Operationen im Unix/Linux-Umfeld (eingeführt bereits 1979). Der Befehl erlaubt es einem Administrator, die Wurzel (/) des aktuellen Systems virtuell in ein anderes Verzeichnis zu verschieben.
Die Kernphilosophie von chroot lautet:
„Tue so, als wäre dieser Ordner die ganze Welt.“
Wenn du dich mittels chroot in einem Verzeichnis befindest, kann kein dort ausgeführter Befehl aus diesem Ordner „nach oben“ ausbrechen. Das Programm sieht diesen Ordner als das absolute System-Wurzelverzeichnis an.
Die Haupteinsatzgebiete im Linux-Alltag:
- Systemrettung (Rescue-Modus):
Wenn Systemnach einem Update nicht mehr bootet, startest du ein Live-System (z. B. vom USB-Stick), mountest deine Festplatte und „chrootest“ dich hinein. Nun kannst du im kaputten System arbeiten, als hättest du es ganz normal gebootet. - Bootloader-Reparatur:
GRUB neu installieren oder aktualisieren (update-grub), wenn das System nicht mehr hochfährt. - Passwort-Reset:
Das Root-Passwort eines Systems zurücksetzen, wenn es vergessen wurde. - Software-Pakete installieren/reparieren:
Defekte Paketmanager-Zustände aufräumen.
2 🛠️ DER CLASSIC-RESCUE-WORKFLOW
2.1 Schritt 1: Festplatten identifizieren
Zuerst muss der Nutzer herausfinden, wo seine Systempartitionen liegen:
Annahme für dieses Beispiel: /dev/sda2 ist die Linux-Systempartition (root) und /dev/sda1 ist die EFI-Boot-Partition.
2.2 Schritt 2: Das System mounten
Nun binden wir das defekte System nach /mnt ein:
2.3 Schritt 3: Die virtuellen API-Dateisysteme binden (Der kritische Schritt!)
Damit Programme wie GRUB oder apt im chroot funktionieren, brauchen sie Zugriff auf die Hardware und Systemprozesse des Live-Systems.
Diese müssen wir spiegeln:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
sudo mount --bind /run /mnt/run
Falls es ein UEFI-System ist, muss auch die EFI-Partition mit hinein:
2.4 Schritt 4: Der chroot-Sprung
Jetzt wechseln wir die Identität. Ab diesem Befehl befinden wir uns „im“ installierten System auf der Festplatte:
Ab hier arbeitet man als root im Zielsystem. Man kann nun apt update, pacman -Syu oder passwd ausführen.
2.5 Schritt 5: Sauberes Verlassen (Wichtig!)
Nach der Reparatur muss die Umgebung sauber abgebaut werden:
3 🔄 DER UNTERSCHIED: CHROOT VS. CONTAINER (LXC, DOCKER)
| Kriterium | chroot 🔄 | Container (Docker / LXC) 📦 |
|---|---|---|
| Isolierung | Nur Dateisystem-Ebene | Dateisystem, Prozesse, Netzwerk, User-IDs |
| Sicherheit | Gering (Ausbrüche für Root-User möglich) | Hoch (Abgesichert durch Kernel-Namespaces) |
| Kernel | Teilt sich den Kernel des Host-Systems | Teilt sich den Kernel des Host-Systems |
| Komplexität | Extrem simpel, keine Zusatz-Daemons | Benötigt Container-Laufzeitumgebung |
4 ⚠️ DIE TYPISCHEN CHROOT-STOLPERSTEINE
4.1 Fehler: „chroot: failed to run command '/bin/bash': No such file or directory“
- Das Problem:
Der Nutzer tippt den chroot-Befehl ein, aber das System bricht mit dieser Meldung ab, obwohl die Partition gemountet ist. - Die Ursache:
- Die falsche Partition wurde nach /mnt gemountet (z. B. die reine Daten- oder Bootpartition anstelle der Rootpartition).
- Die Architektur passt nicht zusammen:
Der Nutzer versucht aus einem 32-Bit Live-System in ein 64-Bit System zu wechseln (oder umgekehrt).
4.2 DNS-Auflösung fehlt im chroot („Temporary failure in name resolution“)
- Das Problem:
Der Nutzer ist erfolgreich im chroot, möchte per apt oder pacman Pakete reparieren, aber der Netzwerkzugriff schlägt fehl, weil keine Internetadressen aufgelöst werden. - Die Ursache:
Das chroot-System hat keine Informationen über die DNS-Server des Netzwerks, da es komplett isoliert ist. Tipp: Vor dem Ausführen des chroot-Befehls (oder aus einem zweiten Terminal-Fenster) die Netzwerkkonfiguration des Live-Systems in das chroot-Verzeichnis kopieren.
Danach funktioniert die Namensauflösung im chroot sofort wieder im Hintergrund.
5 📝 FAZIT
chroot ist das skalpellartige Rettungswerkzeug für jeden Linux-Administrator. Wer versteht, wie man ein System via chroot von außen operiert, verliert den Schrecken vor einem System, das nicht mehr bootet.