UMOUNT(2)

NOM
umount, umount2 - Démonter un système de fichier

SYNOPSIS
#include <sys/mount.h>

int umount(const char *target);

int umount2(const char *target, int flags);

DESCRIPTION
umount() et umount2() suppriment l'attachement du système de fichiers (le plus récemment) monté sur le répertoire target. Les privilèges appropriés 'sous Linux : la capacité CAP_SYS_ADMIN) est requise pour démonter des systèmes de fichiers. 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é. Ceci peut causer la 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 utilisé, un premier appel à umount2() avec ce paramètre échoue avec l'erreur EAGAIN, mais marque le point de montage comme expiré. Il reste dans cet état tant qu'aucun processus n'y accède. Un second appel à umount2() avec MNT_EXPIRE détache le point de montage expiré. Ce paramètre ne peut être combiné avec MNT_FORCE ou MNT_DETACH.

UMOUNT_NOFOLLOW (depuis Linux 2.6.34)
    Ne pas démonter target s'il s'agit d'un lien symbolique. Ce paramètre permet d'éviter des problèmes de sécurité dans des programmes set-UID-root qui permettent aux utilisateurs ordinaires de démonter des systèmes de fichiers.

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 pour plus de détails.

EAGAIN
    Un appel à umount2() avec l'attribut MNT_EXPIRE a marqué correctement un système de fichiers non utilisé comme expiré.

EBUSY
    target ne peut pas être démonté car il est occupé.

EFAULT
    target pointe en dehors de l'espace d'adressage de l'utilisateur.

EINVAL
    target n'est pas un point de montage. Ou umount2() a été appelé avec l'option MNT_EXPIRE, en même temps que MNT_DETACH ou MNT_FORCE.

ENAMETOOLONG
    Un des arguments est plus long que MAXPATHLEN.

ENOENT
    Un des chemins est vide ou a un composant inexistant.

ENOMEM
    Le noyau n'a pas pu allouer suffisamment de mémoire.

EPERM
    L'appelant n'a pas les privilèges appropriés.

VERSIONS
MNT_DETACH et MNT_EXPIRE sont disponibles depuis la glibc 2.11.

CONFORMITÉ
Ces fonctions sont spécifiques à Linux et ne doivent pas être employées dans des programmes destinés à être portables.

NOTES
La fonction umount d'origine était invoquée avec umount(device) et renvoyait ENOTBLK si l'argument était autre chose qu'un périphérique 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).

VOIR AUSSI
mount(2), path_resolution(7), mount(8), umount(8)

COLOPHON
Cette page fait partie de la publication 3.40 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies peuvent être trouvées à l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <URL:http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du projet perkamon <URL:http://perkamon.alioth.debian.org/>.

Nicolas François et l'équipe francophone de traduction de Debian (2006-2009).

Veuillez signaler toute erreur de traduction en écrivant à <perkamon-fr@traduc.org>.

Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».