Provided by: manpages-pl-dev_4.23.1-1_all bug

NAZWA

       umount, umount2 - odmontowuje system plików

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/mount.h>

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

OPIS

       umount()  i umount2() usuwają dołączenie (najwyżej ułożonego) systemu plików zamontowanego
       w celu target.

       Do odmontowywania systemów plików wymagane są  odpowiednie  przywileje  (Linux:  przywilej
       CAP_SYS_ADMIN (ang. capability)).

       Linux   2.1.116  dodał  wywołanie  systemowe  umount2(),  które,  podobnie  jak  umount(),
       odmontowuje cel, lecz dozwala  podanie  dodatkowych  flags,  które  kontrolują  zachowanie
       operacji:

       MNT_FORCE (od Linuksa 2.1.116)
              Prosi  system plików o przerwanie trwających żądań, przed próbą odmontowania. Można
              w ten sposób ukończyć odmontowanie bez czekania na niedostępny serwer, lecz może to
              prowadzić  do  utraty  danych. Jeśli po przerwaniu żądań, jakieś procesy mają wciąż
              aktywne odniesienia do systemu plików, odmontowanie wciąż zawiedzie.  Według  stanu
              na  Linuksa  4.12,  MNT_FORCE  jest  obsługiwane  jedynie w następujących systemach
              plików: 9p (od Linuksa 2.6.16), ceph (od Linuksa 2.6.34), cifs (od Linuksa 2.6.12),
              fuse (od Linuksa 2.6.16), lustre (od Linuksa 3.11) oraz NFS (od Linuksa 2.1.116).

       MNT_DETACH (od Linuksa 2.4.11)
              Dokonuje  leniwego odmontowania: czyni montowanie niedostępnym dla nowych dostępów,
              niezwłocznie odłącza od siebie wzajemnie system plików i wszystkie  systemy  plików
              poniżej niego oraz odłącza go z tabeli montowań, natomiast rzeczywiste odmontowanie
              przeprowadza, gdy montowanie przestanie być zajęte.

       MNT_EXPIRE (od Linuksa 2.6.8)
              Oznacza montowanie jako wygasłe.  Jeśli  montowanie  nie  jest  aktualnie  używane,
              pierwotne  wywołanie do umount2() z tym znacznikiem zawiedzie z błędem EAGAIN, lecz
              oznaczy montowanie jako wygasłe. Montowanie pozostaje wygasłym tak długo,  jak  nie
              jest  osiągane  przez  żaden proces. Drugie wywołanie umount2() podające MNT_EXPIRE
              odmontowuje wygasłe montowanie. Znacznika tego nie można  łączyć  z  MNT_FORCE  ani
              MNT_DETACH.

       UMOUNT_NOFOLLOW (od Linuksa 2.6.34)
              Nie  rozwiązuje  target,  jeśli jest dowiązaniem symbolicznym. Znacznik ten pozwala
              uniknąć problemów z bezpieczeństwem w programach set-user-ID-root, które  pozwalają
              na odmontowanie systemów plików użytkownikom nieuprzywilejowanym.

WARTOŚĆ ZWRACANA

       Po  pomyślnym  zakończeniu  zwracane  jest  zero.  Po błędzie zwracane jest -1 i ustawiane
       errno, wskazując błąd.

BŁĘDY

       Podane poniżej wartości błędów, stanowią błędy niezależne od typu  systemu  plików.  Każdy
       typ  systemu  plików  może mieć swoje specjalne błędy i swoje specjalne zachowania. Więcej
       szczegółów w kodzie źródłowym jądra Linux.

       EAGAIN Wywołanie umount2() podające MNT_EXPIRE pomyślnie oznaczyło niezajęty system plików
              jako wygasły.

       EBUSY  target nie mógł być odmontowany, ponieważ jest zajęty.

       EFAULT target wskazuje poza przestrzeń adresową użytkownika.

       EINVAL target nie jest punktem montowania.

       EINVAL target jest zablokowany; zob. mount_namespaces(7).

       EINVAL umount2() wywołano z MNT_EXPIRE oraz z MNT_DETACH lub MNT_FORCE.

       EINVAL (od Linuksa 2.6.34)
              umount2() wywołano z nieprawidłową wartością znacznika we flags.

       ENAMETOOLONG
              Ścieżka była dłuższa od MAXPATHLEN.

       ENOENT Ścieżka była pusta lub miała nieistniejącą składową.

       ENOMEM Jądro  nie  mogło  zaalokować wolnej strony, w celu skopiowania do niej nazw plików
              lub danych.

       EPERM  Wywołujący nie ma wymaganych przywilejów.

STANDARDY

       Linux.

HISTORIA

       MNT_DETACH i MNT_EXPIRE są dostępne od glibc 2.11.

       Pierwotna funkcja umount() była wywoływana jako umount(device) i zwróciłaby ENOTBLK, gdyby
       wywołano  ją  z  czymś  innym  niż urządzenie blokowe. W Linuksie 0.98p4, dodano wywołanie
       umount(dir), aby obsłużyć urządzenia anonimowe. W Linuksie 2.3.99-pre7, usunięto wywołanie
       umount(device),  pozostawiając  jedynie  umount(dir) (ponieważ urządzenia mogą być obecnie
       montowane w więcej niż jednym miejscu, zatem podanie urządzenia nie jest wystarczające).

UWAGI

   umount() i montowania dzielone
       Montowania dzielone powodują, że wszelka aktywność na montowaniu, w tym operacje umount(),
       są  przekierowywane  do  każdego montowania dzielonego w grupie montowań równoległych i do
       każdego montowania podległego (slave mount) w tej grupie. Oznacza to, że umount()  każdego
       montowania  równoległego  w  zbiorze montowań dzielonych spowoduje odmontowanie wszystkich
       montowań równoległych oraz jednocześnie odmontowanie wszelkich ich montowań podległych.

       Ta propagacja odmontowania może być szczególnie zaskakująca w systemach, w  których  każde
       montowanie  jest  domyślnie  dzielone.  W  takich  systemach,  rekurencyjne  montowanie  z
       podpięciem, katalogu głównego systemu plików do podkatalogu, a następnie odmontowanie tego
       podkatalogu  ze znacznikiem MNT_DETACH, spowoduje leniwe odmontowania każdego montowania w
       przestrzeni nazw montowań.

       Aby zapewnić, że umount() nie będzie propagowane w ten sposób, przed wywołaniem  umount(),
       montowanie można przemontować za pomocą wywołania mount(2) z argumentem mount_flags, który
       zawiera MS_REC oraz MS_PRIVATE.

ZOBACZ TAKŻE

       mount(2), mount_namespaces(7), path_resolution(7), mount(8), umount(8)

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony   podręcznika   są:   Michał   Kułach
       <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją. Bliższe informacje o warunkach licencji
       można   uzyskać   zapoznając   się   z   GNU   General   Public   License   w   wersji   3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   lub   nowszej.   Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej
       ⟨manpages-pl-list@lists.sourceforge.net⟩.