NOM¶
mount - Monter un système de fichiers
SYNOPSIS¶
#include <sys/mount.h>
int mount(const char *source, const char *target,
const char *filesystemtype, unsigned long mountflags,
const void *data);
DESCRIPTION¶
mount() attache le système de fichiers indiqué par
source (qui est généralement un nom de
périphérique, mais peut aussi être un répertoire
ou un objet fictif) au répertoire indiqué par
target.
Des privilèges appropriés (sous Linux : la capacité
CAP_SYS_ADMIN) sont nécessaires pour monter des systèmes
de fichiers.
Depuis Linux 2.4 un même système de fichiers peut être
visible en différents points, et plusieurs montages peuvent être
empilés au même point.
L'argument
filesystemtype prend une des valeurs listées dans
/proc/filesystems (par exemple « ext2 »,
« minix », « ext3 »,
« jfs », « xfs »,
« reiserfs »,
« msdos », « proc »,
« nfs », « iso9660 »).
Des types supplémentaires peuvent être disponibles lorsque les
modules appropriés sont chargés.
L'argument
mountflags peut avoir le nombre magique 0xC0ED
(
MS_MGC_VAL) dans ses 16 bits de poids fort (c'était
obligatoire dans les noyaux de version antérieure à 2.4, mais ne
l'est plus), et certains attributs de montage dans ses 16 bits de poids
faible :
- MS_BIND (depuis Linux 2.4)
- Effectuer un montage lié, rendant un fichier ou une arborescence
visibles en un autre point du système de fichiers. Les montages
liés peuvent traverser les frontières entre systèmes
de fichiers et ouvrir une porte dans une prison chroot(2). Les
paramètres filesystemtype et data sont
ignorés. Jusqu'à Linux 2.6.26, mountflags
était également ignoré (le montage lié a les
même options de montage que le point de montage sous-jacent).
- MS_DIRSYNC (depuis Linux 2.5.19)
- Rendre synchrones les modifications sur les répertoires du
système de fichiers. (Cette propriété peut
être obtenue pour les répertoires individuels ou les
sous‐arborescences en utilisant chattr(1).)
- MS_MANDLOCK
- Autoriser les verrouillages impératifs sur le système de
fichiers. (Le verrouillage impératif devra toutefois être
validé fichier par fichier, comme décrit dans
fcntl(2).)
- MS_MOVE
- Déplacer une sous‐arborescence. source indique un
point de montage existant et target indique son nouvel emplacement.
Le déplacement est atomique, à aucun moment la
sous‐arborescence n'est démontée. Les arguments
filesystemtype, mountflags, et data sont
ignorés.
- MS_NOATIME
- Ne pas mettre à jour les dates d'accès pour (tous) les
fichiers du système de fichiers.
- MS_NODEV
- Ne pas autoriser la présence de fichiers spéciaux de
périphérique sur le système de fichiers.
- MS_NODIRATIME
- Ne pas mettre à jour les dates d'accès pour les
répertoires du système de fichiers. Cet attribut fournit un
sous-ensemble de la fonctionnalité fournie par
MS_NOATIME ; c'est-à-dire, MS_NOATIME implique
MS_NODIRATIME.
- MS_NOEXEC
- Ne pas permettre l'exécution de programme depuis le système
de fichiers.
- MS_NOSUID
- Ne pas tenir compte des bits Set-UID et Set-GID lors de l'exécution
de programmes sur le système de fichiers.
- MS_RDONLY
- Monter le système de fichiers en lecture seule.
- MS_RELATIME (depuis Linux 2.6.20)
- Lorsqu'un fichier sur ce système de fichiers est utilisé, ne
mettre à jour sa date d'accès (atime) que si la valeur
actuelle de atime est inférieure ou égale à sa date
de dernière modification (mtime) ou de changement d'état
(ctime). Cette option est utile pour les programmes tels que
mutt(1) qui veulent savoir si un fichier a été lu
depuis sa dernière modification. Depuis Linux 2.6.30, les
noyaux suivent le comportement fourni par cet attribut (à moins que
MS_NOATIME soit indiqué), et l’attribut
MS_STRICTATIME est nécessaire pour avoir la
sémantique originale. De plus, depuis Linux 2.6.30, le temps
du dernier accès à un fichier est toujours mis à jour
s'il est plus ancien qu'un jour.
- MS_REMOUNT
- Réinitialiser un montage existant. Cela permet de modifier les
attributs mountflags et data d'un montage existant sans
avoir besoin de démonter et remonter le système de fichiers.
target doit avoir la même valeur que lors de l'appel
mount() initial ; source et filesystemtype
sont ignorés.
Les attributs mountflags suivants peuvent être
modifiés : MS_RDONLY, MS_SYNCHRONOUS,
MS_MANDLOCK ; avant le noyau 2.6.16, MS_NOATIME et
MS_NODIRATIME pouvaient également être
modifiés. Enfin, avant le noyau 2.4.10, les attributs
MS_NOSUID, MS_NODEV et MS_NOEXEC pouvaient
être modifiés.
- MS_SILENT (depuis Linux 2.6.17)
- Supprime l'affichage de certain messages d'avertissement (printk())
dans le journal noyau. Cet attribut remplace l'attribut MS_VERBOSE
qui avait un mauvais nom et est obsolète (il était
disponible depuis Linux 2.4.12), et qui a la même
signification.
- MS_STRICTATIME (depuis Linux 2.6.30)
- Toujours mettre à jour le temps du dernier d'accès (atime)
lorsque des fichiers sur le système de fichiers sont lus
(c'était le comportement par défaut avant
Linux 2.6.30). Indiquer cet attribut annule l'effet des attributs
MS_NOATIME et MS_RELATIME.
- MS_SYNCHRONOUS
- Rendre synchrones les écritures sur le système de fichiers
(comme si l'option O_SYNC de open(2) était
indiquée à chaque appel sur ce système de
fichiers).
Depuis Linux 2.4, les attributs
MS_NODEV,
MS_NOEXEC, et
MS_NOSUID sont configurables de manière variable sur chaque
point de montage. À partir du noyau 2.6.16,
MS_NOATIME et
MS_NODIRATIME peuvent aussi être configurés pour chaque
point de montage. L'attribut
MS_RELATIME peut aussi être
configuré pour chaque point de montage.
L'argument
data est interprété différemment suivant
le type de système de fichiers. Typiquement, c'est une chaîne
d'options comprises par le système de fichiers, séparées
par des virgules. Consultez
mount(8) pour des détails sur les
options disponibles pour chaque type de système.
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¶
Les erreurs détaillées ici sont indépendantes du type de
système de fichiers. Chaque type de système peut avoir des codes
d'erreurs spécifiques, et un comportement particulier. Consultez les
sources du noyau Linux pour plus de détails.
- EACCES
- Un élément du chemin d'accès n'est pas consultable
(voir aussi path_resolution(7)), ou on tente de monter un
système de fichiers en lecture seule sans préciser
l'attribut MS_RDONLY, ou bien le périphérique bloc
source est situé sur un système de fichiers
monté avec l'attribut MS_NODEV.
- EBUSY
- source est déjà monté, ou ne peut pas
être remonté en lecture seule car il y a des fichiers
ouverts en écriture, ou ne peut pas être monté sur
target car target est occupé (c'est le
répertoire de travail d'un processus, le point de montage d'un
autre périphérique, des fichiers y sont ouverts, etc.).
- EFAULT
- L'un des arguments pointe en‐dehors de l'espace d'adressage
accessible.
- EINVAL
- source a un superbloc invalide, ou on tente un remontage
(MS_REMOUNT) alors que source n'était pas encore
monté sur target. Ou un déplacement ( MS_MOVE)
est demandé alors que source n'est pas un point de montage
ou est « / ».
- ELOOP
- Trop de liens symboliques rencontrés dans un chemin, ou un
déplacement a été tenté dans lequel
target est un descendant de source.
- EMFILE
- (Dans le cas où un périphérique bloc n'est pas
nécessaire :) Table de montage factice pleine.
- ENAMETOOLONG
- Un des arguments est plus long que MAXPATHLEN.
- ENODEV
- filesystemtype n'est pas configuré dans le noyau.
- ENOENT
- Un des chemins est vide ou a un composant inexistant.
- ENOMEM
- Le noyau n'a pas pu allouer suffisamment de mémoire.
- ENOTBLK
- Source n'est pas un périphérique bloc (et un
périphérique était nécessaire).
- ENOTDIR
- target ou un préfixe de source n'est pas un
répertoire.
- ENXIO
- Le nombre majeur du périphérique bloc source est
invalide.
- EPERM
- L'appelant n'a pas les privilèges appropriés.
VERSIONS¶
Les définitions de
MS_DIRSYNC,
MS_MOVE,
MS_REC,
MS_RELATIME et
MS_STRICTATIME ont été
ajoutées aux en‐têtes de la glibc depuis la version 2.12.
Cette fonction est spécifique à Linux et ne doit pas être
employée dans des programmes destinés à être
portables.
NOTES¶
L'attribut original
MS_SYNC a été renommé
MS_SYNCHRONOUS dans Linux 1.1.69 car un
MS_SYNC différent
a été ajouté dans
<mman.h>.
Avant Linux 2.4, une tentative d'exécution d'un programme Set-UID ou
Set-GID sur un système de fichiers monté avec l'attribut
MS_NOSUID échouait avec l'erreur
EPERM. Depuis Linux 2.4
les bits Set-UID et Set-GID sont simplement ignorés silencieusement
dans ce cas.
Espaces de noms par processus¶
À partir du noyau 2.4.19, Linux fournit des espaces de noms de montage
par processus. Un espace de noms de montage est un ensemble de montage de
systèmes de fichiers qui sont visibles d'un processus. Les espaces de
noms de montage peuvent être (ils le sont généralement)
partagés entre différents processus et les modifications
à l'espace de noms (c'est-à-dire les montages et
démontages) par un processus sont visibles pour tous les autres
processus qui partagent le même espace de noms (la situation des
versions antérieures à pre-2.4.19 de Linux peut être
considérée comme l'utilisation d'un unique espace de noms
partagé par tous les processus du système).
Un processus fils créé avec
fork(2) partage l'espace de
noms de montage de son père ; l'espace de noms de montage est
préservée au travers d'un
execve(2).
Un processus peut obtenir un espace de noms de montage privé si :
il a été créé en utilisant l'attribut
CLONE_NEWNS de
clone(2), dans ce cas son nouvel espace de noms
est initialisé comme une
copie de l'espace de noms du processus
qui a appelé
clone(2) ; ou il appelle
unshare(2)
avec l'attribut
CLONE_NEWNS, ce qui provoque l'obtention d'une copie
privée de l'environnement de l'appelant, qui était auparavant
partagé avec d'autres processus, de telle sorte que les montages ou
démontages futurs de l'appelant ne seront pas visibles des autres
processus (à l'exception des processus fils que le processus pourrait
créer), et vice-versa.
Le fichier
/proc/PID/mounts, spécifique à Linux, expose une
liste de points de montage de l'espace de noms de montage du processus avec
l'identifiant indiqué ; consultez
proc(5) pour des
détails.
VOIR AUSSI¶
lsblk(1),
umount(2),
namespaces(7),
path_resolution(7),
mount(8),
umount(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> ».