Provided by: manpages-fr-dev_2.45.1-1_all bug
 

NOM

        pivot_root - Modifier la racine du système de fichiers
 

SYNOPSIS

        #include <linux/unistd.h>
        #include <errno.h>
 
        _syscall2(int,pivot_root,const char *,new_root,const char *,put_old)
           /* Il peut être préférable d’utiliser syscall(2) ; voir intro(2) */
 
        int pivot_root(const char *new_root, const char *put_old);
 

DESCRIPTION

        pivot_root() déplace la racine du système de fichiers pour le processus
        courant vers le répertoire put_old et  fait  de  new_root  la  nouvelle
        racine du système de fichiers pour le processus en cours.
 
        L’utilisation  typique  de  pivot_root() est durant le boot, lorsque le
        système monte un système de fichiers temporaire  (par  ex.  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éper‐
        toire se comportent correctement. Le meilleur  moyen  est  de  modifier
        leur  répertoire  de  travail  et  répertoire  racine  avant d’invoquer
        pivot_root().
 
        Le paragraphe ci-dessus est intentionnellement flou, car  l’implémenta‐
        tion   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éper‐
        toire. Ceci est nécessaire pour éviter que des threads du noyau ne con‐
        servent  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  en  cours :  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.
 

NOTES

        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 (/).
        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.
 

BOGUES

        pivot_root()  ne devrait pas modifier le répertoire racine et le réper‐
        toire de travail des autres processus du système.
 
        Les utilisations les plus obscures de pivot_root()  peuvent  rapidement
        rendre fou.
 

CONFORMIT

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

HISTORIQUE

        pivot_root() a été introduit dans Linux 2.3.41.
        chdir(2), chroot(2), stat(2), initrd(4), pivot_root(8)
 

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