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 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 »). 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 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
- 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). 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. 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 n'ont été ajoutées
aux en‐têtes de la glibc que 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¶
umount(2),
path_resolution(7),
mount(8),
umount(8)
COLOPHON¶
Cette page fait partie de la publication 3.44 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> ».