Chroot von einer Live-CD
Aus Gentoo Linux Wiki
Inhaltsverzeichnis |
[Bearbeiten] Einleitung
Manchmal kann es vorkommen, dass ein Linux-System aus irgendeinem Grund nicht mehr booten kann, zum Beispiel, wenn ein anderes Betriebssystem den MBR überschrieben hat oder ein Fehler bei den Bootskripten oder der Kernelkonfiguration vorliegt.
Dieser Artikel beschreibt, wie jede beliebige Linux-Live-CD (oder andere Linux-Umgebung) verwendet werden kann, um das Problem per chroot zu lösen.
[Bearbeiten] Einschränkungen
Obwohl eine chroot-Umgebung schon einen sehr guten Funktionsumfang hat, ist die Umgebung nicht vollständig. Da die chroot-Umgebung den Kernel der Live-CD verwendet, müssen alle nötigen Module vor dem Betreten der chroot-Umgebung geladen werden. Auch können Module, die nur im chroot-System vorhanden sind (z.B. ndiswrapper) nicht geladen werden.
Im Zweifelsfall sollte eine Live-CD verwendet werden, die alle nötigen Module enthält, oder eine spezialisierte Live-CD erstellt werden.
[Bearbeiten] Nötiges Vorwissen
Diese Anleitung setzt Kenntnisse der Hardware des Systems und der nötigen Treiber voraus und geht davon aus, dass Kommandozeilenkenntnisse vorhanden sind, die einer Person entsprechen, die bereits eine Installation nach dem Gentoo Handbuch durchgeführt hat.
[Bearbeiten] Live-System vorbereiten
Bevor die chroot-Umgebung betreten wird, muss das Live-System mit den folgenden Schritten vorbereitet werden:
- Alle benötigten Module laden
- Netzwerk einrichten
- Swap aktivieren, zum Beispiel (wenn /dev/hda2 eine Swap-Partition ist): swapon /dev/hda2
[Bearbeiten] Das installierte System mounten
Zunächst werden die root-Partition und, falls nötig, die /boot-Partition eingehangen. Sollten noch weitere separate Partitionen (z.B. für /var/log verwendet werden, müssen auch diese eingehangen werden. Außerdem müssen /dev und /proc eingehangen werden.
In diesem Beispiel ist /dev/hda1 die /boot-Partition und /dev/hda3 die root-Partition:
[Bearbeiten] chroot-Umgebung betreten
Vor dem Betreten der Umgebung muss die Datei /etc/resolv.conf kopiert werden, sodass innerhalb der chroot-Umgebung DNS-Anfragen möglich sind:
Um die Umgebung zu betreten, werden die gleichen Schritte wie bei der Gentoo-Installation verwendet:
- chroot-Umgebung betreten
- Umgebung prüfen
- Erinnerung an die Eingabeaufforderung anhängen
[Bearbeiten] Spezialfälle
[Bearbeiten] GRUB neu installieren
GRUB liest die Datei /etc/mtab, um aktuell eingehangene Dateisysteme zu erkennen. Diese Datei muss also aktuell sein. Ein Update ist mit dem folgenden Befehl möglich:[Bearbeiten] chroot-Umgebung verlassen
Beim verlassen der chroot-Umgebung muss zunächst sichergestellt sein, dass alle laufenden Programme beendet sind. Danach kann die Umgebung verlassen werden und die Dateisysteme ausgehängt werden:
Wird angezeigt, dass ein eingehängtes Dateisystem im Zugriff ist, kann das zwei Gründe haben:
- Im chroot läuft noch ein Programm
- Unterhalb des Mountpunkts ist noch ein weiteres Dateisystem eingehängt
[Bearbeiten] Fehlerbehebung
[Bearbeiten] Exec format error
Wenn der chroot-befehl mit der Meldung "chroot: cannot run command `/bin/bash': Exec format error" abbricht, heißt das, dass die LiveCD nicht mit dem zu betretenden System kompatibel ist.
Dies tritt vor allem auf, wenn versucht wird, ein System mit einer anderen Architektur als die der Live-CD zu betreten (z.B. amd64) von einer 32-bit Live-CD (z.B. x86).
In diesem Fall muss eine passende Live-CD verwendet werden.
