Provided by:
manpages-fr-dev_3.27fr1.4-1_all 
NOM
pivot_root - Modifier la racine du systeme de fichiers
SYNOPSIS
int pivot_root(const char *new_root, const char *put_old);
DESCRIPTION
pivot_root() deplace la racine du systeme de fichiers pour le processus
appelant vers le repertoire put_old et fait de new_root la nouvelle
racine du systeme de fichiers pour le processus appelant.
L'utilisation typique de pivot_root() est durant le boot, lorsque le
systeme monte un systeme de fichiers temporaire (par exemple un initrd)
puis monte le veritable systeme de fichiers, et le transforme en racine
pour tous les processus et threads concernes.
pivot_root() peut changer ou non les repertoires racine et de travail
en cours de tous les processus et threads qui utilisaient l'ancien
repertoire racine. L'appelant de pivot_root() doit s'assurer que les
processus ayant pour racine ou repertoire de travail l'ancien
repertoire se comportent correctement. Le meilleur moyen est de
modifier leur repertoire de travail et repertoire racine pour new_root
avant d'invoquer pivot_root().
Le paragraphe ci-dessus est intentionnellement flou, car
l'implementation de pivot_root() peut changer dans le futur.
Actuellement, pivot_root() modifie la racine et le repertoire de
travail de tous les processus ou threads en new_root s'ils pointent sur
l'ancien repertoire. Ceci est necessaire pour eviter que des threads du
noyau ne conservent l'ancien repertoire occupe, meme s'ils accedent au
nouveau systeme de fichiers. Dans le futur, il y aura peut-etre un
mecanisme pour les threads du noyau pour renoncer explicitement a tout
acces au systeme de fichiers, ce qui evitera ce mecanisme un peu
invasif.
Notez que ceci s'applique aussi au processus appelant : pivot_root()
peut changer ou non son repertoire de travail. Il vaut mieux donc
appeler chdir("/") immediatement apres pivot_root().
Les restrictions suivantes s'appliquent a new_root et put_old :
- Ils doivent etre des repertoires,
- new_root et put_old ne doivent pas etre sur le meme systeme de
fichiers que la racine actuelle.
- put_old doit etre un descendant de new_root : ajouter un nombre
non-nul de /.. a la chaine put_old doit ramener au meme repertoire
que new_root.
- Aucun systeme de fichiers ne doit etre monte sur put_old.
Consultez pivot_root(8) pour des exemples d'utilisation
supplementaires.
Si la racine en cours n'est pas un point de montage (apres un chroot(2)
ou un pivot_root(), voir plus bas), ce n'est pas l'ancien repertoire,
mais le point de montage du systeme de fichiers qui est monte dans
put_old.
new_root n'a pas besoin d'etre un point de montage. Dans ce cas,
/proc/mounts montrera le point de montage concernant new_root comme
racine (/).
VALEUR RENVOY'EE
S'il reussit, cet appel systeme renvoie 0. S'il echoue, il renvoie -1
et remplit errno en consequence.
ERREURS
pivot_root() peut renvoyer (dans errno) toute erreur renvoyee par
stat(2). De plus, il peut renvoyer :
EBUSY new_root ou put_old sont sur le systeme de fichiers principal
actuel, ou un systeme de fichiers est deja monte sur put_old.
EINVAL put_old n'est pas un descendant de new_root.
ENOTDIR
new_root ou put_old n'est pas un repertoire.
EPERM Le processus appelant n'a pas la capacite CAP_SYS_ADMIN.
VERSIONS
pivot_root() a ete introduit dans Linux 2.3.41.
CONFORMIT'E
pivot_root() est specifique a Linux et donc non portable.
NOTES
La glibc ne fournit pas de fonction autour de cet appel systeme ;
utilisez syscall(2) pour l'appeler.
BOGUES
pivot_root() ne devrait pas modifier le repertoire racine et le
repertoire de travail des autres processus du systeme.
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.27 du projet man-pages
Linux. Une description du projet et des instructions pour signaler des
anomalies peuvent etre trouvees a l'adresse
<URL:http://www.kernel.org/doc/man-pages/>.
TRADUCTION
Depuis 2010, cette traduction est maintenue a l'aide de l'outil po4a
<URL:http://po4a.alioth.debian.org/> par l'equipe de traduction
francophone au sein du projet perkamon
<URL:http://perkamon.alioth.debian.org/>.
Christophe Blaess <URL:http://www.blaess.fr/christophe/> (1996-2003),
Alain Portal <URL:http://manpagesfr.free.fr/> (2003-2006). Julien
Cristau et l'equipe francophone de traduction de Debian (2006-2009).
Veuillez signaler toute erreur de traduction en ecrivant a
<debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
paquet manpages-fr.
Vous pouvez toujours avoir acces a la version anglaise de ce document
en utilisant la commande << man -L C <section> <page_de_man> >>.