|
|
MOUNT
Section: Manuel du programmeur Linux (2) Updated: 18 juillet 2003 Index
Return to Main Contents
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.
Seul le Super-User peut 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 tooutefois ê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_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é.
- MS_SYNCHRONOUS
-
Rendre synchrones les écitures 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.
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
-
Forcer le démontage, même si le système de fichiers est occupé.
(Depuis 2.1.116. Seulement pour les montages NFS).
- MNT_DETACH
-
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é (Depuis 2.4.11).
VALEUR RENVOYÉE
mountetumount
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...
- EPERM
-
L'utilisateur n'est pas le Super-User
- ENODEV
-
Filesystemtype
n'est pas configuré dans le noyau
- ENOTBLK
-
Source
n'est pas un fichier spécial en mode bloc.
- 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é.
- EINVAL
-
Source
a un superbloc invalide, ou on tente un remontage 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 est demandé alors que
source
n'est pas un point de montage ou est '/'.
- ENOTDIR
-
Le second argument, ou un préfixe du premier argument n'est
pas un répertoire.
- EFAULT
-
L'un des arguments pointe en-dehors de l'espace d'adressage accessible.
- ENOMEM
-
Pas assez de mémoire pour le noyau.
- ENAMETOOLONG
-
Un des arguments est plus long que MAXPATHLEN.
- ENOENT
-
Un répertoire des arguments n'existe pas ou est un lien symbolique pointant nulle part.
- 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.
- EACCES
-
Un élément de chemin d'accès n'est pas consultable,
ou on tente de monter un système de fichier 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.
- ENXIO
-
Le nombre majeur du périphérique
source
est invalide.
- EMFILE
-
Table de montage pleine.
CONFORMITÉ
Ces fonctions sont spécifiques à Linux et ne doivent pas être
employées dans des programmes conçus pour être portables.
HISTORIQUE
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 fichier 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
mount(8),
umount(8)
TRADUCTION
Christophe Blaess, 1996-2003.
Index
- NOM
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- CONFORMITÉ
-
- HISTORIQUE
-
- VOIR AUSSI
-
- TRADUCTION
-
|