Provided by: manpages-de-dev_1.11-1_all bug

BEZEICHNUNG

       pivot_root - die Dateisystemwurzel ändern

ÜBERSICHT

       int pivot_root(const char *neue_Wurzel, const char *alte_Wurzel);

       Hinweis: Es gibt keinen Glibc-Wrapper für diesen Systemaufruf; siehe ANMERKUNGEN.

BESCHREIBUNG

       pivot_root  verschiebt  die  Dateisystemwurzel des aktuellen Prozesses in das Verzeichnis alte_Wurzel und
       macht neue_Wurzel zur neuen Dateisystemwurzel.

       Der typische Anwendungsfall von pivot_root() ist während des Systemstarts, wenn das System ein temporäres
       Wurzeldateisystem einhängt, zum Beispiel ein initrd. Danach wird das reale  Wurzeldateisystem  eingehängt
       und eventuell in die aktuelle Wurzel aller relevanten Prozesse und Threads verwandelt.

       pivot_root()  kann  die  aktuelle  Wurzel  und  das aktuelle Arbeitsverzeichnis von Prozessen und Threads
       ändern, welche das alte Wurzelverzeichnis nutzen, muss dies aber nicht. Der Prozess, welcher pivot_root()
       aufruft, muss sicherstellen, dass Prozesse mit Wurzel- oder aktuellem Arbeitsverzeichnis  in  jedem  Fall
       korrekt  arbeiten. Ein einfacher Weg hierzu ist die Änderung von Wurzel- und aktuellem Arbeitsverzeichnis
       auf die neue_Wurzel, bevor pivot_root() aufgerufen wird.

       Der vorige Absatz ist absichtlich etwas ungenau, da sich  die  Implementation  von  pivot_root()  in  der
       Zukunft  ändern  kann.  Zum Zeitpunkt der Erstellung dieses Dokuments ändert pivot_root() das Wurzel- und
       Arbeitsverzeichnis  jedes  Prozesses  oder  Threads  auf  die  neue_Wurzel,  falls  diese  auf  das  alte
       Wurzelverzeichnis  zeigen.  Dies ist notwendig, damit die Kernel-Threads nicht das alte Wurzelverzeichnis
       weiterhin mit ihrem alten Wurzel- und Arbeitsverzeichnis belegen, selbst wenn sie in keiner Weise auf das
       Dateisystem  zugegriffen  haben.  In  der  Zukunft  könnte  ein  neuer  Mechanismus  bewirken,  dass  die
       Kernel-Threads  auf jeglichen Zugriff auf das Dateisystem verzichten, so dass dieser recht unsichere alte
       Mechanismus aus pivot_root() entfernt werden kann.

       Beachten Sie, dass sich das auch auf den aufrufenden Prozess auswirkt: pivot_root() kann  sein  aktuelles
       Arbeitsverzeichnis  ändern,  muss  aber  nicht.  Es  wird  daher  empfohlen,  chdir("/") unmittelbar nach
       pivot_root() aufzurufen.

       Die folgenden Einschränkungen gelten für die neue_Wurzel und die alte_Wurzel:

       -  Sie müssen Verzeichnisse sein.

       -  Die neue_Wurzel und die alte_Wurzel dürfen  sich  nicht  im  gleichen  Dateisystem  befinden  wie  die
          aktuelle Wurzel.

       -  Die  alte_Wurzel  muss  sich unterhalb der neuen_Wurzel befinden, das heißt, Hinzufügen einer von null
          verschiedenen Anzahl von /.. zur Zeichenkette,  die  auf  die  alte_Wurzel  zeigt,  muss  das  gleiche
          Verzeichnis wie die neue_Wurzel ergeben.

       -  In der alten_Wurzel darf kein weiteres Dateisystem eingehängt sein.

       In pivot_root(8) finden Sie zusätzliche Anwendungsbeispiele.

       Falls  die  aktuelle  Wurzel kein Einhängepunkt ist (zum Beispiel nach chroot(2) oder pivot_root(), siehe
       auch  unten),  wird  nicht  das  alte  Wurzelverzeichnis,  sondern  der  Einhängepunkt  des  Dateisystems
       eingehängt, das in der alten_Wurzel eingehängt ist.

       Die  neue_Wurzel muss keinen Einhängepunkt haben. In diesem Fall zeigt /proc/mounts den Einhängepunkt des
       Dateisystems an, welches die neue_Wurzel als Wurzel enthält (/).

RÜCKGABEWERT

       Bei Erfolg wird Null zurückgegeben. Bei  einem  Fehler  wird  -1  zurückgegeben  und  errno  entsprechend
       gesetzt.

FEHLER

       pivot_root()  kann  (in  errno) jeden der von stat(2) zurückgegebenen Fehler zurückgeben. Zusätzlich kann
       Folgendes zurückgegeben werden:

       EBUSY  Die neue_Wurzel oder die alte_Wurzel sind im aktuellen Wurzeldateisystem oder ein Dateisystem  ist
              bereits in der alten_Wurzel eingehängt.

       EINVAL Die alte_Wurzel ist nicht unterhalb der neuen_Wurzel.

       ENOTDIR
              neue_Wurzel oder alte_Wurzel ist kein Verzeichnis.

       EPERM  Der aufrufende Prozess verfügt nicht über die CAP_SYS_ADMIN-Capability.

VERSIONEN

       pivot_root() wurde in Linux 2.3.41 eingeführt.

KONFORM ZU

       pivot_root() ist Linux-spezifisch und daher nicht portierbar.

ANMERKUNGEN

       Die Glibc stellt keinen Wrapper für diesen Systemaufruf bereit; rufen Sie ihn mit syscall(2) auf.

FEHLER

       pivot_root()  sollte  nicht  das  Wurzel-  und Arbeitsverzeichnis aller anderen Prozesse im System ändern
       müssen.

       Einige der weniger bekannten Anwendungen von pivot_root() können schnell in den Wahnsinn führen.

SIEHE AUCH

       chdir(2), chroot(2), stat(2), initrd(4), pivot_root(8)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  4.04  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter http://www.kernel.org/doc/man-pages/.

ÜBERSETZUNG

       Die  deutsche Übersetzung dieser Handbuchseite wurde von Mario Blättermann <mario.blaettermann@gmail.com>
       erstellt.

       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.

       Wenn  Sie  Fehler  in  der  Übersetzung  dieser  Handbuchseite  finden, schicken Sie bitte eine E-Mail an
       <debian-l10n-german@lists.debian.org>.

Linux                                             13. Juli 2012                                    PIVOT_ROOT(2)