Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       pivot_root - Modifier la racine du système de fichiers

SYNOPSIS

       int pivot_root(const char *new_root, const char *put_old);

       Remarque : il n'existe pas de fonction glibc autour de cet appel système ; consultez NOTES.

DESCRIPTION

       pivot_root()  déplace  la  racine  du  système  de fichiers pour le processus appelant vers le répertoire
       put_old et fait de new_root la nouvelle racine du système de fichiers pour le processus appelant.

       L'utilisation typique de pivot_root() est durant le boot, lorsque le système monte un système de fichiers
       temporaire (par exemple un initrd) puis monte le véritable système  de  fichiers,  et  le  transforme  en
       racine pour tous les processus et threads concernés.

       pivot_root()  peut  changer ou non les répertoires racine et de travail en cours de tous les processus et
       threads qui utilisaient l'ancien répertoire racine. L'appelant de pivot_root()  doit  s'assurer  que  les
       processus  ayant  pour racine ou répertoire de travail l'ancien répertoire se comportent correctement. Le
       meilleur moyen est de modifier leur répertoire de  travail  et  répertoire  racine  pour  new_root  avant
       d'invoquer pivot_root().

       Le  paragraphe  ci-dessus  est intentionnellement flou, car l'implémentation de pivot_root() peut changer
       dans le futur. Actuellement, pivot_root() modifie la racine et le  répertoire  de  travail  de  tous  les
       processus  ou threads en new_root s'ils pointent sur l'ancien répertoire. Ceci est nécessaire pour éviter
       que des threads du noyau ne conservent l'ancien répertoire occupé, même s'ils accèdent au nouveau système
       de fichiers. Dans le futur, il y aura peut-être un mécanisme pour les  threads  du  noyau  pour  renoncer
       explicitement à tout accès au système de fichiers, ce qui évitera ce mécanisme un peu invasif.

       Notez  que  ceci s'applique aussi au processus appelant : pivot_root() peut changer ou non son répertoire
       de travail. Il vaut mieux donc appeler chdir("/") immédiatement après pivot_root().

       Les restrictions suivantes s'appliquent à new_root et put_old :

       -  Ils doivent être des répertoires,

       -  new_root et put_old ne doivent pas être sur le même système de fichiers que la racine actuelle.

       -  put_old doit être un descendant de new_root : ajouter un nombre non-nul de /..  à  la  chaîne  put_old
          doit ramener au même répertoire que new_root.

       -  Aucun système de fichiers ne doit être monté sur put_old.

       Consultez pivot_root(8) pour des exemples d'utilisation supplémentaires.

       Si  la  racine  en  cours n'est pas un point de montage (après un chroot(2) ou un pivot_root(), voir plus
       bas), ce n'est pas l'ancien répertoire, mais le point de montage du système de  fichiers  qui  est  monté
       dans put_old.

       new_root  n'a  pas  besoin  d'être  un  point  de montage. Dans ce cas, /proc/mounts montrera le point de
       montage concernant new_root comme racine (/).

VALEUR RENVOYÉE

       S'il réussit, cet appel système renvoie 0. S'il échoue, il renvoie -1 et remplit errno en conséquence.

ERREURS

       pivot_root() peut renvoyer (dans errno) toute erreur renvoyée par stat(2). De plus, il peut renvoyer :

       EBUSY  new_root ou put_old sont sur le système de fichiers principal actuel, ou un  système  de  fichiers
              est déjà monté sur put_old.

       EINVAL put_old n'est pas un descendant de new_root.

       ENOTDIR
              new_root ou put_old n'est pas un répertoire.

       EPERM  Le processus appelant n'a pas la capacité CAP_SYS_ADMIN.

VERSIONS

       pivot_root() a été introduit dans Linux 2.3.41.

CONFORMITÉ

       pivot_root() est spécifique à Linux et donc non portable.

NOTES

       La glibc ne fournit pas de fonction autour de cet appel système ; utilisez syscall(2) pour l'appeler.

BOGUES

       pivot_root()  ne  devrait  pas  modifier  le  répertoire  racine  et  le répertoire de travail des autres
       processus du système.

       Les utilisations les plus obscures de pivot_root() peuvent rapidement rendre fou.

VOIR AUSSI

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

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe       Blaess       <http://www.blaess.fr/christophe/>      (1996-2003),      Alain      Portal
       <http://manpagesfr.free.fr/> (2003-2006).  Julien  Cristau  et  l'équipe  francophone  de  traduction  de
       Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

Linux                                            13 juillet 2012                                   PIVOT_ROOT(2)