umount(2)

NUME
umount, umount2 - demontează sistemul de fișiere

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <sys/mount.h>

int umount(const char *ținta);
int umount2(const char *ținta, int fanioane);

DESCRIERE
umount() și umount2() elimină atașamentul sistemului de fișiere (cel mai de sus) montat pe țintă.

Este necesar un privilegiu corespunzător (Linux: capacitatea CAP_SYS_ADMIN) pentru a demonta sistemele de fișiere.

Linux 2.1.116 a adăugat apelul de sistem umount2(), care, la fel ca umount(), demontează o țintă, dar permite fanioane suplimentare care controlează comportamentul operației:

MNT_FORCE (începând cu Linux 2.1.116)
    Solicită sistemului de fișiere să anuleze cererile în așteptare înainte de a încerca demontarea. Acest lucru poate permite ca demontarea să se finalizeze fără a aștepta un server inaccesibil, dar ar putea cauza pierderi de date. În cazul în care, după anularea cererilor, unele procese au încă referințe active la sistemul de fișiere, demontarea va eșua în continuare. Ca în Linux 4.12, fanionul MNT_FORCE este acceptat numai pe următoarele sisteme de fișiere: 9p (de la Linux 2.6.16), ceph (de la Linux 2.6.34), cifs (de la Linux 2.6.12), fuse (de la Linux 2.6.16), lustre (de la Linux 3.11) și NFS (de la Linux 2.1.116).

MNT_DETACH (începând cu Linux 2.4.11)
    Efectuează o demontare leneșă: face ca montarea să nu fie disponibilă pentru noi accesări, deconectează imediat sistemul de fișiere și toate sistemele de fișiere montate sub el, unul de celălalt și din tabelul de montare, și efectuează efectiv demontarea atunci când montarea încetează să mai fie ocupată.

MNT_EXPIRE (începând cu Linux 2.6.8)
    Marchează montarea ca fiind expirată. Dacă o montare nu este utilizată în prezent, atunci un apel inițial la umount2() cu acest fanion eșuează cu eroarea EAGAIN, dar marchează montarea ca fiind expirată. Montarea rămâne expirată atâta timp cât nu este accesată de niciun proces. Un al doilea apel umount2() care specifică MNT_EXPIRE demontează o montare expirată. Acest fanion nu poate fi specificat nici cu MNT_FORCE, nici cu MNT_DETACH.

UMOUNT_NOFOLLOW (începând cu Linux 2.6.34)
    Nu șterge referința la țintă dacă este o legătură simbolică. Acest indicator permite evitarea problemelor de securitate în programele set-user-ID-root care permit utilizatorilor neprivilegiați să demonteze sisteme de fișiere.

VALOAREA RETURNATĂ
În caz de succes, se returnează zero. În caz de eroare, se returnează -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE
Valorile de eroare prezentate mai jos sunt rezultatul unor erori independente de tipul de sistem de fișiere. Fiecare tip de sistem de fișiere poate avea propriile erori speciale și propriul comportament special. Pentru detalii, consultați codul sursă al nucleului Linux.

EAGAIN
    Un apel la umount2() specificând MNT_EXPIRE a marcat cu succes un sistem de fișiere neocupat ca fiind expirat.

EBUSY
    ținta nu a putut fi demontat deoarece este ocupată.

EFAULT
    ținta indică în afara spațiului de adrese al utilizatorului.

EINVAL
    ținta nu este un punct de montare.

EINVAL
    ținta este blocată; a se vedea mount_namespaces(7).

EINVAL
    umount2() a fost apelat cu MNT_EXPIRE, și deasemeni, fie cu MNT_DETACH, fie cu MNT_FORCE.

EINVAL (începând cu Linux 2.6.34)
    umount2() a fost apelat cu o valoare nevalidă a fanionului în fanioane.

ENAMETOOLONG
    Un nume de rută a fost mai lung decât MAXPATHLEN.

ENOENT
    Un nume de rută era gol sau avea o componentă inexistentă.

ENOMEM
    Nucleul nu a putut aloca o pagină liberă în care să copieze nume de fișiere sau date.

EPERM
    Apelantul nu dispune de privilegiile necesare.

STANDARDE
Linux.

ISTORIC
MNT_DETACH și MNT_EXPIRE sunt disponibile începând cu glibc 2.11.

Funcția originală umount() era apelată ca umount(dispozitiv) și returna ENOTBLK atunci când era apelată cu altceva decât un dispozitiv de blocuri. În Linux 0.98p4, a fost adăugat un apel umount(dir), pentru a accepta dispozitive anonime. În Linux 2.3.99-pre7, apelul umount(dispozitiv) a fost eliminat, rămânând doar umount(dir) (deoarece acum dispozitivele pot fi montate în mai multe locuri, astfel încât specificarea dispozitivului nu este suficientă).

NOTE

  umount() și montările partajate
Montarea partajată face ca orice activitate de montare pe o montare, inclusiv operațiile umount(), să fie transmise către fiecare montare partajată din grupul de omologi și către fiecare montare sclavă din acel grup de omologi. Aceasta înseamnă că umount() a oricărui omolog dintr-un set de montări partajate va determina demontarea tuturor omologilor săi și a tuturor sclavilor acestora.

Această propagare a activității de demontare poate fi deosebit de surprinzătoare pe sistemele în care fiecare montare este partajată în mod implicit. Pe astfel de sisteme, montarea recursivă a directorului rădăcină al sistemului de fișiere pe un subdirector și apoi demontarea ulterioară a acelui subdirector cu MNT_DETACH va face ca fiecare montare din spațiul de nume de montare să fie demontată în mod leneș.

Pentru a se asigura că umount() nu se propagă în acest mod, montarea poate fi remontată utilizând un apel mount(2) cu un argument fanioane_montare care include atât MS_REC, cât și MS_PRIVATE înainte de apelarea umount().

CONSULTAȚI ȘI
mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.