Provided by: manpages-de-dev_2.5-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), switch_root(8)

KOLOPHON

       Diese Seite  ist  Teil  der  Veröffentlichung  4.15  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 https://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>.