Loading

NOM

       pivot_root - Modifier la racine du système de fichiers

SYNOPSIS

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

       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.

       Voir 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

       En  cas  de  réussite,  zéro est renvoyé, sinon -1 est renvoyé et errno
       contient le code d’erreur.

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

       Cette page de manuel a été traduite  et  mise  à  jour  par  Christophe
       Blaess  <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis par
       Alain Portal <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et  mise  à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement gérées par Julien Cristau <jcristau@debian.org> et l’équipe
       francophone de traduction de Debian.

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