Provided by: manpages-pl-dev_4.27.0-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

       Tłumaczenie niniejszej strony podręcznika: 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   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.

Linux man-pages 6.9.1                            2 maja 2024 r.                                        umount(2)