Linux

CentOS 4.8

mount(2)


MOUNT

NOM

mount, umount − Monter / démonter des systèmes de fichiers.

SYNOPSIS

#include <sys/mount.h>
#include <linux/fs.h>

int mount(const char *source, const char * cible , const char * filesystemtype, unsigned long mountflags , const void * data);

int umount(const char *cible);

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 supprime 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.

L’argument filesystemtype prend une des valeurs listées dans /proc/filesystems (par exemple "ext2", "minix", "msdos", "proc", "nfs", "iso9660" etc...).

L’argument mountflags doit avoir le nombre magique 0xC0ED dans ses 16 bits de poids forts, 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 :

#define MS_RDONLY        1 /* lecture seule                              */
#define MS_NOSUID        2 /* ignorer les bits Set−UID et Set−GID      */
#define MS_NODEV         4 /* interdire l’accès aux fichiers spéciaux    */
#define MS_NOEXEC        8 /* interdire l’exécution de programmes        */
#define MS_SYNCHRONOUS  16 /* synchroniser les écritures                 */
#define MS_REMOUNT      32 /* modifier attributs d’un système déjà  monté */
#define MS_MANDLOCK     64 /* autoriser les verrouillages stricts        */
#define MS_NOATIME    1024 /* ne pas mettre à  jour les heures d’accès    */
#define MS_NODIRATIME 2048 /* ne pas modifier les heures d’accès des rep */
#define MS_BIND       4096 /* attacher le sous-répertoire ailleurs       */
#define MS_MOVE       8129 /* déplacer le sous-répertoire atomiquement   */

L’argument data est interprété différemment suivant le type de système de fichiers.

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...)

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.

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, 1997.


mount(2)