schroot-setup - Schroot-Einrichtungsskripte für Chroots
schroot benutzt Skripte, um die Chroot-Umgebung
einzurichten und dann zu bereinigen. Das Verzeichnis
/etc/schroot/setup.d enthält Skripte, die beim
Erstellen und Zerstören einer Chroot ausgeführt werden.
Während das Skript ausgeführt wird, werden mehrere
Umgebungsvariablen gesetzt, die eine Anpassung ihres Verhaltens
ermöglichen, abhängig zum Beispiel vom Typ der benutzten
Chroot.
Die Skripte werden in namentlicher Reihenfolge gestartet, wie
diejenigen, die von init(8) ausgeführt werden, indem der selbe
Ausführungsstil wie bei run-parts(8) benutzt wird.
Die Einrichtungsskripte werden alle auf mit zwei Optionen
aufgerufen:
- 1
- der durchgeführten Aktion
- Wenn eine Sitzung zun ersten Mal gestartet wird, wird die Chroot durch
Ausführen der Skripte in /etc/schroot/setup.d mit der Option
»setup-start« eingerichtet. Wenn die Sitzung beendet wird,
werden die Skripte in umgekehrter Reihenfolge mit der Option
»setup-stop« ausgeführt.
- 2
- dem Chroot-Status
- Dieser ist entweder »ok«, falls es keine Probleme gibt oder
»fail«, falls etwas schiefgeht. Bestimmte Aktionen
könnten bei einem Scheitern übersprungen werden.
Beachten Sie, dass die Skripte idempotent sein sollten. Sie
müssen während der »setup-stop«-Phase
idempotent sein, da sie mehr als einmal ausgeführt werden
können, beispielsweise bei Fehlschlägen.
- AUTH_USER
- der Benutzername des Anwenders, unter dem der Befehl in der Chroot
ausgeführt wird
- CHROOT_NAME
- der Chroot-Name. Beachten Sie, dass dies der Name der Original-Chroot vor
dem Erstellen der Sitzung ist. Möglicherwiese möchten Sie
SESSION_ID.
- LIBEXEC_DIR
- das Verzeichnis, in dem Hilfsprogramme liegen
- MOUNT_DIR
- das Verzeichnis, unter dem Nichtdateisystem-Chroots eingehängt
werden (z.B. Blockspeichergeräte oder
LVM-Schnappschüsse)
- PID
- die Prozesskennung des Schroot-Prozesses
- PLATFORM
- die Betriebssystemplattform, auf der Schroot läuft. Dies kann
benutzt werden, um ein plattformspezifisches Verhalten in den
Einrichtungsskripten einzuleiten, wo nötig. Beachten Sie, dass die
HOST-Variablen wahrscheinlich erforderlich sind. Im Kontext von Schroot
ist die Plattform die unterstützte Konfiguration und das Verhalten
für eine angegebene Architektur. Sie kann zwischen
unterschiedlichen Architekturen identisch sein.
- SESSION_ID
- die Sitzungskennung
- VERBOSE
- auf »quiet« gesetzt, falls nur Fehlermeldungen ausgegeben
werden sollen, »normal«, wenn auch andere Meldungen
ausgegeben werden sollen und »verbose«, falls alle Meldungen
ausgegeben werden können. Vorher wurde AUTH_VERBOSITY
aufgerufen.
- CHROOT_SESSION_CREATE
- auf »true« gesetzt, falls eine Sitzung erstellt wird,
andernfalls auf »false«
- CHROOT_SESSION_CLONE
- auf »true« gesetzt, falls eine Sitzung geklont wird,
andernfalls auf »false«
- CHROOT_SESSION_PURGE
- auf »true« gesetzt, falls eine Sitzung vollständig
gelöscht wird, andernfalls auf »false«
- CHROOT_SESSION_SOURCE
- auf »true« gesetzt, falls eine Sitzung von einer
Source-Chroot wird erstellt, andernfalls auf »false«
- CHROOT_TYPE
- der Typ der Chroot. Dies ist nützlich, um eine Einrichtungsaufgabe
auf bestimmte Chroot-Typen zu beschränken (z.B. nur
Blockspeichergeräte oder LVM-Schnappschüsse).
- CHROOT_NAME
- der Name der Chroot. Dies ist nützlich, um eine Einrichtungsaufgabe
auf eine bestimmte Chroot oder einen Satz von Chroots
einzuschränken.
- CHROOT_ALIAS
- der Name des Aliases, der zum Auswählen der Chroot benutzt wird.
Dies ist nützlich, um eine Einrichtungsaufgabe basierend auf einem
der alternativen Aliasnamen oder des Standard-Chroot-Namens zu
spezialisieren. Er könnte zum Beispiel benutzt werden, um
zusätzliche Quellen in /etc/apt/sources.list anzugeben wie
einen Stable-Security-Alias für eine Stable-Chroot oder einen
Experimental-Alias für eine Unstable-Chroot.
- CHROOT_DESCRIPTION
- die Beschreibung der Chroot
- CHROOT_MOUNT_LOCATION
- der Speicherort zum Einhängen der Chroot. Er wird für das
Erstellen und Einhängen von Einhängepunkten benutzt.
- CHROOT_LOCATION
- der Speicherort der Chroot unterhalb des Einhängepunkts. Dies soll
mehrere Chroots auf einem einzelnen Dateisystem ermöglichen. Es ist
für alle einhängbaren Chroot-Typen gesetzt.
- CHROOT_PATH
- der absolute Pfad zur Chroot. Dies sind normalerweise
CHROOT_MOUNT_LOCATION und CHROOT_LOCATION aneinandergehängt. Dies
ist der Pfad, der zum Zugriff auf die Chroots benutzt werden sollte.
Diese Chroot-Typen verwenden nur allgemeine Variablen.
- CHROOT_FILE
- die Datei, die die Chroot-Dateien anthält
- CHROOT_FILE_REPACK
- auf »true« gesetzt, um die Chroot beim Ende einer Sitzung
neu in eine Archivdatei zu packen, andernfalls auf
»false«
Diese Variablen werden nur für direkt einhängbare
Chroot-Typen gesetzt.
- CHROOT_MOUNT_DEVICE
- das einzuhängende Gerät, das die Chroot enthält
- CHROOT_MOUNT_OPTIONS
- Optionen, die an mount(8) weitergereicht werden
- CHROOT_LOCATION
- der Speicherort der Chroot unterhalb des Einhängepunkts. Dies
ermöglicht die Existenz mehrerer Chroots auf einem einzelnen
Dateisystem.
- CHROOT_DEVICE
- das Gerät, das das Root-Dateisystem der Chroot enthält. Dies
ist üblicherweise aber nicht notwendigerweise das Gerät, das
eingehängt wird. Dies wird zum Beispiel für einen
LVM-Schnappschuss der Originaldatenträger sein.
Benutzerdefinierte Schlüssel in schroot.conf werden
in Großbuchstaben umgewandelt und in der Umgebung gesetzt, wie in
schroot.conf(5) beschrieben.
Das Verzeichnis /etc/schroot/default enthält
die von Einrichtungsskripten benutzten Standardeinstellungen.
- config
- Hauptkonfigurationsdatei, die von Einrichtungsskripten gelesen wird. Das
Format dieser Datei wird in schroot-script-config(5) beschrieben.
Dies ist der Standardwert für den Schlüssel
script-config. Beachten Sie, dass dies
früher /etc/schroot/script-defaults hieß. Auf die
folgenden Werte wird standardmäßig verwiesen:
- copyfiles
- eine Liste von Dateien, die vom Wirtsystem in die Chroot kopiert wird.
Beachten Sie, dass diese früher
/etc/schroot/copyfiles-defaults hieß.
- fstab
- eine Datei im Format, das in fstab(5) beschrieben wird. Sie wird
benutzt, um Dateisysteme innerhalb der Chroot einzuhängen. Der
Einhängeort ist relativ zum Wurzelverzeichnis der Chroot. Beachten
Sie, dass diese früher /etc/schroot/mount-defaults
hieß.
- nssdatabases
- Systemdatenbanken (wie in /etc/nsswitch.conf auf GNU/Linux-Systemen
beschrieben), die vom Wirtsystem in die Chroot kopiert werden. Beachten
Sie, dass diese früher /etc/schroot/nssdatabases-defaults
hieß.
Das Verzeichnis /etc/schroot/setup.d enthält
die Chroot-Einrichtungsskripte.
- 00check
- gibt Fehlersuchdiagnosen aus und führt einfache
Plausibilitätsprüfungen durch.
- 05file
- entpackt, räumt auf und packt dateibasierte Chroots erneut.
- 05fsunion
- erstellt und entfernt vereinte Dateisysteme.
- 05lvm
- erstellt und entfernt LVM-Schnappschüsse.
- 10mount
- hängt Dateisysteme ein und aus.
- 15binfmt
- richtet den QEMU-Benutzer-Emulator mittels Binfmt-Unterstützung
ein. Dies ermöglicht die transparente Benutzung einer Chroot
für eine andere CPU-Architektur, was eine Alternative zum
Cross-Kompilieren der ganzen Maschinen-Emulation bietet.
- 15killprocs
- killt Prozesse, die immer noch innerhalb einer Chroot laufen, wenn eine
Sitzung beendet wird, was ein Aushängen von Dateisystemen und
Aufräumen anderer Ressourcen verhindern würde.
- 20copyfiles
- kopiert Dateien vom Wirtsystem in die Chroot, konfiguriert Netzwerkbetrieb
zum Beispiel durch Kopieren von hosts und resolv.conf.
- 20nssdatabases
- konfiguriert Systemdatenbanken durch Kopieren von »passwd«,
»shadow«, »group« etc. in die Chroot.
- 50chrootname
- setzt den Chroot-Namen (/etc/debian_chroot) in der Chroot. Dies
kann von der Shell-Eingabeaufforderung benutzt werden, um die aktuelle
Chroot anzuzeigen.
Copyright © 2005-2012 Roger Leigh
<rleigh@codelibre.net>
schroot ist freie Software. Sie können es unter den
Bedingungen der GNU General Public License, wie von der Free Software
Foundation veröffentlicht, weitergeben und/oder modifizieren,
entweder gemäß Version 3 der Lizenz oder (nach Ihrer Option)
jeder späteren Version.