SCHROOT-SETUP(5)

BEZEICHNUNG
schroot-setup - Schroot-Einrichtungsskripte für Chroots

BESCHREIBUNG
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.

UMGEBUNGSVARIABLEN

  Allgemeine Variablen

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.

  einfache und Verzeichnis-Chroot-Variablen
Diese Chroot-Typen verwenden nur allgemeine Variablen.

  Dateivariablen

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«

  einhängbare Chroot-Variablen

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.

  vereinte Dateisystemvariablen

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

  Variablen für Blockspeichergeräte

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.

  LVM-Schnappschussvariablen

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 Variablen

Benutzerdefinierte Schlüssel in schroot.conf werden in Großbuchstaben umgewandelt und in der Umgebung gesetzt, wie in schroot.conf(5) beschrieben.

DATEIEN

  Einrichtungsskriptkonfiguration
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ß.

  Einrichtungsskripte
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.

AUTOR
Roger Leigh

COPYRIGHT
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.

SIEHE AUCH
schroot(1), fstab(5), schroot.conf(5), schroot-script-config(5), run-parts(8)