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);
mount() attache le système de fichiers spécifié 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 » etc).
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 forts (ceci était obligatoire dans les
versions antérieures à la 2.4, mais ne l’est plus), et certains
attributs de montage (définis dans <linux/fs.h> pour libc4 ou libc5 et
dans <sys/mount.h> pour glibc2) comme bits de poids faibles :
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). Depuis
Linux 2.6.26, l’attribut MS_RDONLY est pris en compte lors d’un
montage lié.
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 ce drapeau (à moins que MS_NOATIME soit
spécifié), et le drapeau 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
Reinitialiser un montage existant. Ceci 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. source et
target doivent avoir les mêmes valeurs que durant l’appel
mount() initial ; filesystemtype est ignoré.
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 (ceci
était le comportement par défaut avant Linux 2.6.30). Spécifier
ce drapeau annule l’effet des drapeaux 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. Voir mount(8) pour des
détails sur les options disponibles pour chaque type de système.
VALEUR RENVOYÉE
En cas de réussite, zéro est renvoyé, sinon -1 est renvoyé et errno
contient le code d’erreur.
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. Voir les sources du noyau
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 de 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 de 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 fichier spécial en mode bloc.
ENOTDIR
target ou un préfixe de source n’est pas un répertoire.
ENXIO Le nombre majeur du périphérique source est invalide.
EPERM L’appelant n’a pas les privilèges appropriés.
CONFORMITÉ
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 modification à 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 version 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(), dans ce cas
son nouvel espace de noms est initialisé comme une copie de l’espace de
noms du processus qui a appelé clone() ; 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/self, spécifique à Linux, expose une liste de
points de montage de l’espace de noms de montage du processus avec
l’identifiant indiqué ; voir proc(5) pour des détails.
VOIR AUSSI
umount(2), path_resolution(7), mount(8), umount(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> ».