mount

Autres langues

Langue: fr

Version: 18 mai 2004 (mandriva - 01/05/08)

Autres sections - même nom

Section: 2 (Appels système)

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 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 visibles en un autre point du système de fichiers. Les montages liés peuvent traverses les froontiè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(8)).
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 fichier.
MS_NODIRATIME
Ne pas mettre à jour les dates d'accès pour les répertoires du système de fichiers.
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, comme mutt(1), qui ont besoin de savoir quand a été lu un fichier depuis qu'il a été modifié.
MS_REMOUNT
Reinitialiser un montage ezxistant. 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, les suivants pouvaient également être modifiés : MS_NOATIME et MS_NODIRATIME ; et, en plus, avant le noyau 2.4, les suivants pouvaient également être modifiés : MS_NOSUID, MS_NODEV, MS_NOEXEC.

MS_SYNCHRONOUS
Rendre synchrones les écritures sur le système de fichiers (comme si l'option O_SYNC de open(2) était indiqué à 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émentaire 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 expiré. Si un point de montage n'est pas actuellement utilisé, un appel initial à 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 spécifié avec soit MNT_FORCE, soit MNT_DETACH.

VALEUR RENVOYÉE

mount et umount renvoient 0 s'ils réussissent, ou -1 s'ils échouent, auquel cas 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 details...
EACCES
Un élément de 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 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émontage est demandé sur cible qui n'est pas un point de montage. Ou un déplacement (MS_MOVE) est demandé alors que source n'est pas un point de montage ou est « / ». 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
Table de montage pleine.
ENAMETOOLONG
Un des arguments est plus long que MAXPATHLEN.
ENODEV
filesystemtype n'est pas configuré dans le noyau.
ENOENT
Un répertoire des arguments n'existe pas ou est un lien symbolique pointant nulle part.
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 conçus pour être portables.

NOTES

Notes Linux

La fonction umount() originale é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 existait 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 juste 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 28 novembre 2007.

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.