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_UNION_TYPE
- vereinter Dateisystemtyp
- CHROOT_UNION_MOUNT_OPTIONS
- vereinte Dateisystemeinhängeoptionen
- CHROOT_UNION_OVERLAY_DIRECTORY
- vereintes dateisystemüberlagerndes (beschreibbares)
Verzeichnis
- CHROOT_UNION_UNDERLAY_DIRECTORY
- vereintes unter dem Dateisystem liegendes (nur lesbares)
Verzeichnis
- 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.
- CHROOT_LVM_SNAPSHOT_NAME
- Schnappschussname, der an lvcreate(8) weitergereicht
wird
- CHROOT_LVM_SNAPSHOT_DEVICE
- der Names des LVM-Schnappschuss-Geräts
- CHROOT_LVM_SNAPSHOT_OPTIONS
- Optionen, die an lvcreate(8) übergeben
werden
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.
Roger Leigh
Copyright © 2005-2012 Roger Leigh <
[email protected]>
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.
schroot(1),
fstab(5),
schroot.conf(5),
schroot-script-config(5),
run-parts(8)