fakeroot.at

Automatisches chroot-ScriptDeutsch English

» Home » Projekte » autochroot2009-05-03 22:09:44

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
autochroot at this domain name.

Valid XHTML 1.0