oracular (2) umount.2.gz

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