MOUNT
Section : Manuel du programmeur Linux (
2)
Mise à jour de la version anglaise : 17 décembre 2007
Index
Menu principal
NOM
mount, umount, umount2 - Monter/démonter des systèmes de fichiers
SYNOPSIS
#include <sys/mount.h>
int mount(const char *source, const char * cible,
const char *filesystemtype, unsigned long mountflags,
const void *data);
int umount(const char *cible);
int umount2(const char *target, int flags);
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
cible.
umount()
et
umount2 ()
suppriment l'attachement du système de fichiers (le plus récemment)
monté sur le répertoire
cible.
Des privilèges appropriés (sous Linux : la capacité
CAP_SYS_ADMIN)
sont nécessaires pour monter ou dé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 », « 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
visible 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 arguments
filesystemtype, mountflags, et data
sont ignorés.
- 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éplace 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 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'on accède à un fichier de ce système de fichiers, mettre à jour
seulement la dernière date d'accès (atime) du fichier si la valeur
actuelle de atime est inférieure ou égale à la dernière date de
modification (mtime) ou à la dernière date de changement d'état (ctime).
Cette option est utile pour les programmes tels que
mutt(1),
qui ont besoin de savoir si un fichier a été lu
depuis sa dernière modification.
- 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 de montages
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 également être modifiés.
- 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 ouverture 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.
Depuis Linux 2.6.16,
MS_NOATIME
et
MS_NODIRATIME
sont également configurables de manière variable
sur chaque point de montage.
L'attribut
MS_RELATIME
est également configurable de manière variable
sur 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.
Depuis Linux 2.1.116, l'appel système
umount2()
fonctionne comme
umount(),
mais dispose d'options supplémentaires
flags
configurant le comportement de l'opération :
- MNT_FORCE (depuis Linux 2.1.116)
-
Forcer le démontage, même si le système de fichiers est occupé.
Cela peut provoquer une perte de données.
(Seulement pour les montages NFS).
- MNT_DETACH (depuis Linux 2.4.11)
-
Faire un détachement paresseux : rendre le point de montage invalide pour
les nouveaux accès, et réaliser le démontage complet lorsque le point
ne sera plus occupé.
- MNT_EXPIRE (depuis Linux 2.6.8)
-
Marquer le point de montage comme ayant expiré.
Si un point de montage n'est pas actuellement utilisé,
un premier appel à
umount2()
avec cet attribut échouera avec l'erreur
EAGAIN,
mais marquera le point de montage comme expiré.
Celui-ci le restera aussi longtemps qu'un autre processus
n'y aura pas accédé.
Un second appel à
umount2()
spécifiant
MNT_EXPIRE
démonte un point de montage expiré.
Cet attribut ne peut pas être combiné avec
MNT_FORCE
ou
MNT_DETACH.
VALEUR RENVOYÉE
Ces appels renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas
errno
est renseignée 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.
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 bien on tente de monter un système de fichiers en lecture seule sans
préciser l'attribut
MS_RDONLY,
ou bien le fichier périphérique
source
est sur un système de fichiers monté avec l'attribut
MS_NODEV.
- EAGAIN
-
Un appel à
umount2()
spécifiant
MNT_EXPIRE
a réussi à marquer comme expiré un système de fichiers inoccupé.
- 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
cible
car
cible
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.).
Ou le démontage est impossible car le point est occupé.
- 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
cible.
Ou un déplacement
(MS_MOVE)
est demandé alors que
source
n'est pas un point de montage ou est « / ».
Ou un démontage est demandé sur
cible
qui n'est pas un point de montage.
Ou
umount2()
a été appelé avec
MNT_EXPIRE
et soit
MNT_DETACH,
soit
MNT_FORCE.
- ELOOP
-
Trop de liens symboliques rencontrés dans un chemin, ou
un déplacement a été tenté dans lequel
cible
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 élément inexistant.
- ENOMEM
-
Pas assez de mémoire pour le noyau.
- ENOTBLK
-
Source
n'est pas un fichier spécial en mode bloc.
- ENOTDIR
-
Le second argument, ou un préfixe du premier argument 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É
Ces fonctions sont spécifiques à Linux et ne doivent pas être
employées dans des programmes destinés à être portables.
NOTES
Notes Linux
La fonction
umount()
d'origine était invoquée
umount(device) et renvoyait
ENOTBLK
si l'argument était autre chose qu'un périphérique en mode bloc.
Dans Linux 0.98p4, un appel
umount(répertoire) fut ajouté, afin de
gérer des périphériques anonymes.
Dans Linux 2.3.99-pre7, l'appel
umount(device) fut supprimé,
en ne gardant que
umount(répertoire) (car maintenant
les périphériques peuvent être montés en plusieurs endroits,
et l'indication du périphérique ne suffit plus).
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.
VOIR AUSSI
path_resolution(7),
mount(8),
umount(8)
TRADUCTION
Ce document est une traduction réalisée par Christophe Blaess
<http://www.blaess.fr/christophe/> le 10 octobre 1996
et révisée le 23 juin 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation
française de qualité. La version anglaise la plus à jour de ce document est
toujours consultable via la commande : « LANG=C man 2 mount ».
N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
erreur dans cette page de manuel.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- NOTES
-
- Notes Linux
-
- VOIR AUSSI
-
- TRADUCTION
-
Dernière mise à jour : 23 juin 2008