Automatisches chroot-Script
autochroot ist ein Perl-Script, das die Benutzung von chroot unter Linux vereinfacht.
Features
- Bindet die virtuellen Dateisysteme /proc, /dev, und /sys automatisch ein
- Kopiert/etc/resolv.conf, um eine DNS-Namensauflösung in der Jail zu erlauben
- Generiert eine mofigizierte Mount-Tabelle (/etc/mtab), um die Ausführung von Scripts wie grub-install zu ermöglichen.
- wird autochroot ohne Parameter aufgerufen, sucht es automatisch nach Partitionen, die eine Linux-Installation enthalten und zeigt sie in einer Liste an
- Als Zielparameter kann sowohl ein Device node (e.g. /dev/sda1) als auchirgend ein Verzeichnis im Dateisystem angegeben, in dem Linux installiert ist.
- Nachdem die chroot-Sitzung beendet wurde, werden alle vorher eingebundenen Dateisysteme wieder ausgehängt und alle Ressourcen freigegeben.
- Ideal für Live-CD-Umgebungen (z.B. um GRUB neu zu installieren).
Installation (als root)
- Script downloaden:
wget http://projects.fakeroot.at/autochroot/autochroot -O /usr/sbin/autochroot
- ausführbar machen:
chmod +x /usr/sbin/autochroot
- ausführen
autochroot
Danach folgen Sie den Anweisungen am Bildschirm.
Um wieder aus der chroot-Jail herauszukommen, geben Sie exit ein.
oder in einer Zeile:
wget http://projects.fakeroot.at/autochroot/autochroot -O /usr/sbin/autochroot && chmod +x /usr/sbin/autochroot && autochroot
Wie es funktioniert
Wenn autochroot ohne Parameter aufgerufen wird, verhält es sich folgendermaßen:
- Temporären Ordner für eventuelle Mounts mitels mktemp erstellen
- Suche nach Linux-Partitionen (ext-formatiert) mittels 'fdisk -l'
- suche /bin/bash auf der jeweiligen Partition (hänge sie vorher ein, falls erforderlich)
- finde Informationen über das System heraus (versionsinformation, hostname, ...)
- eventuell temporär eingebundene Partitionen aushängen
- Distributionsliste anzeigen und auf Benutzerreaktion warten
- ausgewählte Partition wenn nötig einhängen
- /dev, /proc und /sys innerhalb der Jail einhängen
- /etc/resolv.conf und eine angepasste /etc/mtab in die Jail kopieren
- chroot in die ausgewählte Partition
- vorher gemountete Partitionen aushängen, alle Ressourcen freigeben und temporäres Verzeichnis löschen
Lizenz
Dieses Script wird unter der GNU GPL v2 Lizenz veröffentlicht.
Einschränkungen
- Es ist nicht möglich, von einer 32-bit Umgebung in ein 64bit-System zu wechseln.
- Derzeit werden nur ext-Partitionen automatisch erkannt. Auf Anfrage wird die Unterstützung aber ausgebaut.
Trotzdem ist es in diesem Fall immer noch möglich, händisch den device node oder Mountpunkt einzugeben.
Bugs
- autochroot erkennt automatisch, wenn Sie auf die derzeitige Root-Partition chrooten wollen. Wird autochroot jedoch verschachtelt (in einer Jail noch einmal) ausgeführt, ist es Möglich, wieder in das ursprüngliche System zu wechseln. Dies kann Ihre /etc/mtab zerstören und das System instabil machen.
Also: Verwenden Sie autochroot nicht innerhalb einer chroot Jail!
Kontact
Wenn Sie einen Bug finden, Feature-Anfragen, Lobpreisungen oder sonstiges haben, kontaktieresn Sie mich unter.
Last modified: 2009/05/03 23:23:15
2203 views.
2203 views.