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

NAZWA

       mount - montuje system plików

BIBLIOTEKA

       Standardowa biblioteka C (libc, -lc)

SKŁADNIA

       #include <sys/mount.h>

       int mount(const char *source, const char *target,
                 const char *filesystemtype, unsigned long mountflags,
                 const void *_Nullable data);

OPIS

       mount()  dołącza system plików podany jako source (często jest to ścieżka odnosząca się do
       urządzenia, ale może być również ścieżką katalogu lub pliku,  albo  atrapą)  do  położenia
       (katalogu lub pliku) określonego ścieżką target.

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

       Obsługiwane przez jądro wartości argumentu filesystemtype są wypisane w  /proc/filesystems
       (np.  „btrfs”,  „ext4”, „jfs”, „xfs”, „vfat”, „fuse”, „tmpfs”, „cgroup”, „proc”, „mqueue”,
       „nfs”, „cifs”, „iso9660”). Kolejne typy mogą stać się dostępne po załadowaniu odpowiednich
       modułów.

       Argument data jest interpretowany odmiennie przez poszczególne systemy plików. Zwykle jest
       to łańcuch oddzielonych przecinkiem  opcji  akceptowanych  przez  dany  system  plików.  W
       podręczniku  mount(8) opisano opcje dostępne dla każdego typu systemu plików. Argument ten
       można podać również jako NULL, gdy brak jest opcji.

       Wywołanie do mount() dokonuje wielu ogólnych typów działań, w zależności od bitów podanych
       w mountflags. Wybór operacji do wykonania jest dokonywany po sprawdzeniu bitów ustawionych
       w mountflags, a sprawdzenia te mają miejsce w poniższej kolejności:

       •  Montuje ponownie (przemontowuje) istniejące montowanie: mountflags zawiera MS_REMOUNT.

       •  Tworzy montowanie z podpięciem: mountflags zawiera MS_BIND.

       •  Zmienia  propagację  typu  istniejącego  montowania:  mountflags  obejmuje   jedną   z:
          MS_SHARED, MS_PRIVATE, MS_SLAVE lub MS_UNBINDABLE.

       •  Przemieszcza istniejące montowanie do nowego położenia: mountflags zawiera MS_MOVE.

       •  Tworzy nowe montowanie: mountflags nie zawiera żadnego z powyższych znaczników.

       Wszystkie  powyższe  operacje  są  opisane w dalszej części podręcznika. Kolejne znaczniki
       można podać w mountflags, w celu modyfikacji zachowania mount(), zgodnie z opisem poniżej.

   Dodatkowe znaczniki montowań
       Poniższa lista opisuje  dodatkowe  znaczniki,  które  można  podać  w  mountflags.  Proszę
       zauważyć, że część operacji ignoruje niektóre, lub wszystkie, z tych znaczników, zgodnie z
       opisem w dalszej części podręcznika.

       MS_DIRSYNC (od Linuksa 2.5.19)
              Czyni zmiany katalogów w tym systemie plików synchronicznymi (tę  właściwość  można
              pozyskać dla indywidualnych katalogów lub poddrzew za pomocą chattr(1)).

       MS_LAZYTIME (od Linuksa 4.0)
              Redukuje aktualizację znaczników czasowych (atime, mtime, ctime) i-węzłów na dysku,
              zarządzając tymi  zmianami  jedynie  w  pamięci.  Znaczniki  czasowe  na  dysku  są
              aktualizowane tylko, gdy:

              •  i-węzeł   musi  być  zaktualizowany  z  powodu  innej  zmiany,  niezwiązanej  ze
                 znacznikami czasowymi;

              •  aplikacja użyje fsync(2), syncfs(2) lub sync(2);

              •  przywrócony (po usunięciu) i-węzeł jest wyrzucany z pamięci; albo

              •  minęło ponad 24 godziny od czasu zapisania i-węzła na dysk.

              Ta  opcja  montowania  znacznie  redukuje  konieczność  aktualizowania   znaczników
              czasowych  i-węzłów, zwłaszcza mtime i atime. Jednak w przypadku załamania systemu,
              pola atime i mtime na dysku, mogą zawierać nieaktualne informacje odnośnie  zdarzeń
              do 24 godzin wstecz.

              Przykładami  obciążeń,  gdzie  opcja ta może dać znaczne korzyści, są częste losowe
              zapisy do prealokowanych plików, jak również przypadki, gdy włączona  jest  również
              opcja  montowania MS_STRICTATIME (zaleta łączenia MS_STRICTATIME i MS_LAZYTIME jest
              taka, że stat(2) zwróci poprawnie zaktualizowany  atime,  lecz  aktualizacje  atime
              zostaną zapisane na dysku tylko w wyżej wymienionych przypadkach).

       MS_MANDLOCK
              Pozwala  na  blokowanie obowiązujące (przymusowe) w tym systemie plików (blokowanie
              obowiązujące musi być wciąż włączone w danym pliku, jak  opisano  w  fcntl(2)).  Od
              Linuksa  4.5,  ta  opcja  montowania  wymaga  przywileju  CAP_SYS_ADMIN  oraz jądra
              skonfigurowanego z opcją CONFIG_MANDATORY_FILE_LOCKING. Blokowanie obowiązujące, od
              Linuksa  5.15,  jest w pełni przestarzałe, zatem znacznik ten również należy uważać
              za przestarzały.

       MS_NOATIME
              Nie aktualizuje czasu dostępu dla (wszystkich typów) plików w tym systemie plików.

       MS_NODEV
              Nie zezwala na dostęp do (plików specjalnych) urządzeń w tym systemie plików.

       MS_NODIRATIME
              Nie aktualizuje  czasu  dostępu  do  katalogów  w  tym  systemie  plików.  Znacznik
              udostępnia  podzbiór  funkcjonalności  zapewnianej  przez MS_NOATIME tj. MS_NOATIME
              wymusza MS_NODIRATIME.

       MS_NOEXEC
              Nie zezwala na wykonywanie programów z tego systemu plików.

       MS_NOSUID
              Nie honoruje bitów set-user-ID i set-group-ID, ani przywilejów plikowych (ang. file
              capabilities)   przy  wykonywaniu  programów  z  tego  systemu  plików.  Dodatkowo,
              przejścia domeny SELinux wymagają uprawnienia nosuid_transition, co z kolei  wymaga
              również przywileju zasad nnp_nosuid_transition.

       MS_RDONLY
              Montuje system plików tylko do odczytu.

       MS_REC (od Linuksa 2.4.11)
              Używane w połączeniu z MS_BIND do utworzenia rekurencyjnego montowania z podpięciem
              oraz w połączeniu ze znacznikami typu propagacji,  aby  rekurencyjnie  zmienić  typ
              propagacji we wszystkich montowaniach poddrzewa. Więcej szczegółów podano niżej.

       MS_RELATIME (od Linuksa 2.6.20)
              Gdy  uzyskiwany  jest  dostęp  do  pliku  w  tym  systemie plików, aktualizuje czas
              ostatniego dostępu do pliku (atime) tylko, gdy aktualna wartość atime jest mniejsza
              lub  równa  czasowi  ostatniej  modyfikacji  (mtime)  lub  czasowi ostatniej zmiany
              statusu (ctime). Opcja jest przydatna dla programów takich jak mutt(1), które muszą
              wiedzieć,  kiedy  plik  został  odczytany po jego ostatniej modyfikacji. Od Linuksa
              2.6.30, jądro domyślnie stosuje zachowanie zapewniane przez ten znacznik (chyba, ze
              podano  MS_NOATIME),  a do uzyskania tradycyjnego zachowania konieczne jest podanie
              znacznika MS_STRICTATIME. Dodatkowo, od Linuksa 2.6.30, czas ostatniego dostępu  do
              pliku jest zawsze aktualizowany, gdy jest starszy niż 1 dzień.

       MS_SILENT (od Linuksa 2.6.17)
              Powstrzymuje  wypisywanie  pewnych (printk()) ostrzeżeń w dzienniku jądra. Znacznik
              ten zastępuje błędnie nazwany  i  przestarzały  znacznik  MS_VERBOSE  (dostępny  od
              Linuksa 2.4.12), który ma takie samo znaczenie.

       MS_STRICTATIME (od Linuksa 2.6.30)
              Zawsze  aktualizuje  czas  ostatniego  dostępu  (atime) przy uzyskiwaniu dostępu do
              plików w tym systemie plików (było to domyślne zachowanie przed  Linuksem  2.6.30).
              Podanie   tego  znacznika  przesłania  efekt  ustawienia  znaczników  MS_NOATIME  i
              MS_RELATIME.

       MS_SYNCHRONOUS
              Czyni zapisy  w  tym  systemie  plików  synchronicznymi  (tak,  jakby  w  przypadku
              wszystkich  otwarć  plików  w  tym  systemie  plików  podawano  znacznik  O_SYNC do
              open(2)).

       MS_NOSYMFOLLOW (od Linuksa 5.10)
              Nie podąża za dowiązaniami symbolicznymi  przy  rozwiązywaniu  ścieżek.  Dowiązania
              symboliczne  mogą  być  wciąż  tworzone,  a readlink(1), readlink(2), realpath(1) i
              realpath(3) wciąż działają poprawnie.

       Od Linuksa 2.4, niektóre z powyższych znaczników są ustawiane  na  dane  montowanie;  inne
       tyczą  się  superbloku  montowanego  systemu  plików  —  co  oznacza, że wszystkie kolejne
       montowania tego samego systemu plików  będą  dzielić  te  znaczniki  (wcześniej  wszystkie
       znaczniki lądowały w superbloku).

       Znaczniki ustawiane na dane montowanie to:

       •  Od Linuksa 2.4: MS_NODEV, MS_NOEXEC i MS_NOSUID są ustawiane na dane montowanie.

       •  Dodatkowo, od Linuksa 2.6.16: MS_NOATIME i MS_NODIRATIME.

       •  Dodatkowo, od Linuksa 2.6.20: MS_RELATIME.

       Następujące  znaczniki  są przypisane do superbloku: MS_DIRSYNC, MS_LAZYTIME, MS_MANDLOCK,
       MS_SILENT i MS_SYNCHRONOUS. Początkowe ustawienie tych  znaczników  zależy  od  pierwszego
       montowania  systemu  plików  i  będzie  dzielone  przez  wszystkie kolejne montowania tego
       systemu plików. Ustawienia tych znaczników  można  zmienić  następnie  operacją  ponownego
       montowania   (przemontowania;   zob.   niżej).  Zmiany  te  będą  widoczne  we  wszystkich
       montowaniach związanych z systemem plików.

       Od Linuksa 2.6.16, MS_RDONLY może być ustawiony lub usunięty zarówno  w  danym  montowaniu
       jak  i  w  superbloku  systemu plików. Zamontowany system plików będzie dostępny do zapisu
       tylko, gdy ani system plików, ani punkt montowania nie ma znacznika tylko do odczytu.

   Ponowne montowanie (przemontowanie) istniejącego montowania
       Istniejące montowanie może zostać zamontowane ponownie (przemontowane), podając MS_REMOUNT
       w  mountflags.  Można  w ten sposób zmienić mountflags i data istniejącego montowania, bez
       potrzeby odmontowywania i montowania systemu plików. Cel  target  powinien  mieć  tę  samą
       wartość, jaką podano w pierwotnym wywołaniu mount().

       Argumenty source i filesystemtype są ignorowane.

       Argumenty  mountflags  i  data  powinny  być  zgodne  z  wartościami  użytymi w pierwotnym
       wywołaniu mount() — poza tymi wartościami, które chce się zmienić.

       Następujące mountflags mogą być zmieniane: MS_LAZYTIME, MS_MANDLOCK, MS_NOATIME, MS_NODEV,
       MS_NODIRATIME,  MS_NOEXEC,  MS_NOSUID, MS_RELATIME, MS_RDONLY, MS_STRICTATIME (co powoduje
       usunięcie znaczników MS_NOATIME i MS_RELATIME) oraz MS_SYNCHRONOUS. Próby zmiany  ustawień
       MS_DIRSYNC  i MS_SILENT podczas przemontowania są po cichu ignorowane. Proszę zauważyć, że
       zmiany znaczników w superbloku są widoczne we wszystkich montowaniach związanych  z  danym
       systemem plików (ponieważ znaczniki superbloku są dzielone przez wszystkie montowania).

       Od  Linuksa 3.17, jeśli w mountflags nie podano żadnej z opcji: MS_NOATIME, MS_NODIRATIME,
       MS_RELATIME, ani MS_STRICTATIME, to operacja przemontowania zachowuje istniejące  wartości
       tych znaczników (zamiast powracać do MS_RELATIME).

       Od  Linuksa 2.6.26, znacznik MS_REMOUNT może być użyty łącznie z MS_BIND, aby zmodyfikować
       jedynie znaczniki przypisane  do  danego  montowania.  Jest  to  szczególnie  przydatne  w
       ustawianiu lub usuwaniu znacznika „tylko do odczytu” bez zmieniania samego systemu plików.
       Podanie następujących mountflags:

           MS_REMOUNT | MS_BIND | MS_RDONLY

       uczyni dostęp do tego punktu montowania tylko do odczytu, bez zmieniania innych montowań.

   Tworzenie montowania z podpięciem (bind mount)
       Jeśli mountflags obejmuje MS_BIND (dostępny od Linuksa 2.4), to dokonywane jest montowanie
       z  podpięciem. Montowanie z podpięciem czyni poddrzewo katalogów widocznym w innym punkcie
       pojedynczej  hierarchii  katalogów.  Montowania  z  podpięciem  mogą  przekraczać  granice
       systemów plików i rozciągać się na więzienia chroot(2).

       Argumenty filesystemtype i data są ignorowane.

       Pozostałe  bity  (poza  MS_REC,  opisanym  poniżej)  w  argumencie  mountflags  również są
       ignorowane  (montowanie  z  podpięciem  ma  te  same  opcje  montowania   jak   podstawowe
       montowanie).  W  rozdziale dotyczącym ponownego montowania (przemontowania) opisano sposób
       uczynienia istniejącego montowania z podpięciem, montowaniem tylko do odczytu.

       Domyślnie, gdy katalog jest montowany z podpięciem,  montowany  jest  tylko  ten  katalog;
       jeśli  w  drzewie  katalogów  istnieją  kolejne  podmontowania,  nie  są  one  montowane z
       podpięciem. Jeśli poda się  również  znacznik  MS_REC,  to  dokonywana  jest  rekurencyjna
       operacja montowania z podpięciem — wszystkie podmontowania w poddrzewie w source (inne niż
       montowania bez podpięcia) są również  montowane  z  podpięciem,  w  odpowiednim  położeniu
       poddrzewa target.

   Zmiana typu propagacji istniejącego montowania
       Jeśli  mountflags  obejmuje  jeden  z:  MS_SHARED,  MS_PRIVATE, MS_SLAVE lub MS_UNBINDABLE
       (wszystkie  dostępne  od  Linuksa  2.6.15),  to  zmieniana  jest  propagacja  istniejącego
       montowania. Jeśli poda się więcej niż jeden z tych znaczników, wystąpi błąd.

       Jedyne  inne znaczniki, jakie można podać przy zmianie typu propagacji to: MS_REC (opisany
       poniżej) oraz MS_SILENT (który jest ignorowany).

       Argumenty source, filesystemtype i data są ignorowane.

       Znaczenie znaczników typu propagacji jest następujące:

       MS_SHARED
              Czyni montowanie dzielonym. Zdarzenia zamontowania i  odmontowania  znajdujące  się
              bezpośrednio  pod  tym  montowaniem  będą  propagowane do innych montowań, które są
              członkami  grupy  równoległych  montowań.  Propagacja  oznacza  tu,  że   to   samo
              zamontowanie   lub   odmontowanie   nastąpi   automatycznie  we  wszystkich  innych
              montowaniach  w  grupie  równoległych  montowań.  Zatem  zdarzenia  zamontowania  i
              odmontowania,  które wystąpią w równoległych montowaniach, będą propagowane również
              na niniejsze montowanie.

       MS_PRIVATE
              Czyni montowanie prywatnym. Zdarzenia zamontowania i odmontowania nie  propagują  z
              tego montowania, ani na to montowanie.

       MS_SLAVE
              Jeśli  jest  to  montowanie dzielone, będące członkiem grupy montowań równoległych,
              zawierającej innych członków, konwertuje je na montowanie podległe. Jeśli  jest  to
              montowanie  dzielone, będące członkiem grupy montowań równoległych, niezawierającej
              innych członków, konwertuje je na montowanie prywatne.  W  innych  przypadkach  typ
              propagacji montowania jest pozostawiany bez zmian.

              Gdy montowanie jest podległe, zdarzenia zamontowania i odmontowania propagują na to
              montowanie z (nadrzędnej)  grupy  montowań  równoległych,  której  montowanie  było
              pierwotnie członkiem. Zdarzenia zamontowania i odmontowania pod tym montowaniem nie
              propagują na inne.

              Montowanie może być podległe wobec innej grupy montowań równoległych, a w tym samym
              czasie  dzielić  zdarzenia montowania i odmontowania z grupą montowań równoległych,
              której jest członkiem.

       MS_UNBINDABLE
              Czyni to montowanie niepodpinalnym. Działa to w ten sposób jak montowanie prywatne,
              tyle  że  dodatkowo  nie  da  się  go  zamontować z podpięciem. Gdy dokonywane jest
              rekurencyjne montowanie z podpięciem (mount() ze znacznikami MS_BIND  i  MS_REC)  w
              poddrzewie   katalogów,   wszelkie   niepodpinalne   montowania   w  poddrzewie  są
              automatycznie wycinane (tj. nie są replikowane) przy replikacji  tego  poddrzewa  w
              celu utworzenia poddrzewa docelowego.

       Domyślnie,  zmiana typu propagacji wpływa jedynie na montowanie target. Jeśli w mountflags
       poda się również znacznik MS_REC, to zmieni się typ propagacji również wszystkich montowań
       poniżej celu target.

       Więcej  informacji o typach propagacji montowań (w tym domyślnym typie propagacji montowań
       przypisywanym nowym montowaniom) znajduje się w podręczniku mount_namespaces(7).

   Przesuwanie montowania
       Jeśli mountflags zawiera  znacznik  MS_MOVE  (dostępny  od  Linuksa  2.4.18),  to  nastąpi
       przesunięcie  poddrzewa:  source  określa  dotychczasowe  montowanie, a target podaje nowe
       położenie, do którego to montowanie ma być przemieszczone. Przesunięcie jest niepodzielne,
       w żadnej chwili poddrzewo nie jest odmontowane.

       Pozostałe   bity   w   argumencie   mountflags   są  ignorowane,  podobnie  jak  argumenty
       filesystemtype i data.

   Tworzenie nowego montowania
       Jeśli w mountflags nie jest podany żaden  ze  znaczników:  MS_REMOUNT,  MS_BIND,  MS_MOVE,
       MS_SHARED,  MS_PRIVATE,  MS_SLAVE  lub MS_UNBINDABLE, to mount() dokonuje swojej domyślnej
       akcji: tworzenia nowego montowania. source określa  źródło  nowego  montowania,  a  target
       podaje katalog, w którym zostanie utworzony punkt montowania.

       Używane  są  argumenty filesystemtype i data, a w mountflags można podać kolejne bity, aby
       zmodyfikować zachowanie wywołania.

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.

       EACCES Składowa ścieżki była nieprzeszukiwalna (zob. też path_resolution(7)).

       EACCES Próbowano  zamontować  system  plików  tylko  do  odczytu,  bez  podania  znacznika
              MS_RDONLY.

              System plików może być tylko do odczytu z wielu powodów, w tym: istnienia na  dysku
              optycznym  tylko  do  odczytu;  istnienia na urządzeniu z fizycznym przełącznikiem,
              ustawionym w pozycji tylko do odczytu; skompilowania implementacji  systemu  plików
              tylko  z  obsługą  odczytu; wystąpienia przy pierwotnym zamontowaniu systemu plików
              błędów, które spowodowały oznaczenie go jako tylko do odczytu, z brakiem możliwości
              zamontowania jako do odczytu i zapisu (do momentu naprawienia tych błędów).

              Niektóre  systemy  plików,  przy  próbie  zamontowania  systemu tylko do odczytu, w
              zamian zwracają błąd EROFS.

       EACCES Urządzenie blokowe source jest położone w  systemie  plików  zamontowanym  z  opcją
              MS_NODEV.

       EBUSY  Próbowano  ułożyć  nowe  montowanie bezpośrednio na istniejącym punkcie montowania,
              który utworzono w tej przestrzeni nazw montowań z tymi samymi argumentami source  i
              target.

       EBUSY  source  nie może być przemontowany tylko do odczytu, ponieważ wciąż utrzymuje pliki
              otwarte do zapisu.

       EFAULT Jeden z argumentów wskaźnikowych wskazuje poza przestrzeń adresową użytkownika.

       EINVAL source ma nieprawidłowy superblok.

       EINVAL Próbowano dokonać  operacji  przemontowania  (MS_REMOUNT),  lecz  source  nie  było
              zamontowane w target.

       EINVAL Próbowano  dokonać operacji przesunięcia (MS_MOVE), lecz drzewo montowań pod source
              zawiera montowania nieprzypinalne, a target jest  montowaniem  z  typem  propagacji
              MS_SHARED.

       EINVAL Próbowano  dokonać  operacji  przesunięcia  (MS_MOVE),  lecz montowanie macierzyste
              montowania source, ma typ propagacji MS_SHARED.

       EINVAL Próbowano dokonać operacji przesunięcia (MS_MOVE), lecz source nie było montowaniem
              lub wynosiło „/”.

       EINVAL Żądano  operacji  podpięcia  (MS_BIND),  gdzie  source  odnosi  się  do  magicznego
              dowiązania przestrzeni nazw montowań (tj.  dowiązania  magicznego  /proc/pid/ns/mnt
              lub  montowania  z  podpięciem  do  takiego  dowiązania),  przy czym typ propagacji
              montowania macierzystego wobec target wynosił MS_SHARED, a  żądany  typ  propagacji
              montowania  z przypięciem mógłby spowodować zapętlenie zależności, co w przyszłości
              uniemożliwiłoby zwolnienie przestrzeni nazw montowań.

       EINVAL mountflags obejmuje  więcej  niż  jeden  z:  MS_SHARED,  MS_PRIVATE,  MS_SLAVE  lub
              MS_UNBINDABLE.

       EINVAL mountflags  obejmuje MS_SHARED, MS_PRIVATE, MS_SLAVE lub MS_UNBINDABLE oraz zawiera
              znacznik inny niż MS_REC lub MS_SILENT.

       EINVAL Próbowano zamontować z podpięciem montowanie niepodpinalne.

       EINVAL W nieuprzywilejowanej przestrzeni nazw  montowań  (tj.  przestrzeni  nazw  montowań
              będącej    własnością    przestrzeni    nazw    użytkownika,    utworzonej    przez
              nieuprzywilejowanego użytkownika), próbowano zamontować z podpięciem (MS_BIND), bez
              podania  (MS_REC),  co spowodowałoby ujawnienie drzewa systemu plików, pod jednym z
              podmontowań podpinanego katalogu.

       ELOOP  Podczas rozwiązywania ścieżki napotkano zbyt wiele dowiązań.

       ELOOP  Próbowano dokonać operacji przesunięcia, a target jest potomkiem source.

       EMFILE (Gdy nie jest wymagane urządzeń blokowe:) Tablica urządzeń atrap jest pełna.

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

       ENODEV filesystemtype nie jest skonfigurowany w jądrze.

       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.

       ENOTBLK
              source nie jest urządzeniem blokowym (a było ono wymagane).

       ENOTDIR
              target lub przedrostek source nie jest katalogiem.

       ENXIO  Główny numer urządzenia blokowego source jest poza zakresem.

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

       EPERM  Próbowano  zmodyfikować  (MS_REMOUNT)  znacznik MS_RDONLY, MS_NOSUID lub MS_NOEXEC,
              albo  jeden  ze  znaczników  „atime”   (MS_NOATIME,   MS_NODIRATIME,   MS_RELATIME)
              istniejącego     montowania,     lecz    montowanie    jest    zablokowane;    zob.
              mount_namespaces(7).

       EROFS  Próbowano  zamontować  system  plików  tylko  do  odczytu  bez  podania   znacznika
              MS_RDONLY. Zob. EACCES wyżej.

STANDARDY

       Linux.

HISTORIA

       Definicje  MS_DIRSYNC,  MS_MOVE,  MS_PRIVATE,  MS_REC,  MS_RELATIME,  MS_SHARED, MS_SLAVE,
       MS_STRICTATIME i MS_UNBINDABLE dodano do nagłówków glibc w glibc 2.12.

       Od Linuksa 2.4 pojedynczy system plików może być zamontowany w wielu punktach montowań,  a
       wiele montowań może być ułożonych w tym samym punkcie montowań.

       Argument  mountflags  może  mieć  liczbę  magiczną 0xC0ED (MS_MGC_VAL) w górnych 16 bitach
       (wszelkie inne znaczniki opisane w OPISIE zajmują  dolne  16  bitów  mountflags).  Podanie
       MS_MGC_VAL  było wymagane przed Linuksem 2.4, lecz od Linuksa 2.4 nie jest już konieczne i
       jest ignorowane, jeśli jest obecne.

       Pierwotny znacznik MS_SYNC został przemianowany na MS_SYNCHRONOUS w 1.1.69, gdy w <mman.h>
       dodano odmienny MS_SYNC.

       Przed Linuksem 2.4 próba wykonania programu set-user-ID lub set-group-ID w systemie plików
       zamontowanym z MS_NOSUID zawiodłaby z błędem EPERM. Od Linuksa  2.4,  bity  set-user-ID  i
       set-group-ID są w takim przypadku po cichu ignorowane.

UWAGI

   Przestrzenie nazw montowań
       Od  Linuksa  2.4.19,  Linux  zapewnia przestrzenie nazw montowań. Przestrzeń nazw montowań
       jest zbiorem zamontowanych systemów  plików  widocznych  dla  procesu.  Przestrzenie  nazw
       montowań  mogą  być  (i  zwykle  są)  dzielone  pomiędzy  wieloma  procesami,  a  zmiany w
       przestrzeni nazw (tj. zamontowania i  odmontowania)  dokonywane  przez  jeden  proces,  są
       widoczne  dla  innych procesów dzielących tę samą przestrzeń nazw (sytuacja sprzed Linuksa
       2.4.19 może być rozważana, jak gdyby istniała pojedyncza przestrzeń  nazw  dzielona  przez
       wszystkie procesy w systemie).

       Proces   potomny   utworzony   przez   fork(2)   dziedziczy  przestrzeń  montowań  procesu
       macierzystego; przestrzeń nazw montowań jest zachowywana przez execve(2).

       Proces może uzyskać prywatną przestrzeń  nazw  montowań  jeśli:  utworzono  go  za  pomocą
       znacznika  CLONE_NEWNS  clone(2), gdy jego nowa przestrzeń nazw jest inicjowana jako kopia
       przestrzeni nazw  procesu,  który  wywołał  clone(2);  albo  jeśli  wywoła  unshare(2)  ze
       znacznikiem CLONE_NEWNS, który powoduje, że przestrzeń nazw montowań wywołującego uzyskuje
       prywatną kopię przestrzeni nazw, którą wcześniej dzieliła z innymi procesami, dzięki czemu
       przyszłe zamontowania i odmontowania dokonane przez wywołującego są niewidoczne dla innych
       procesów (z wyjątkiem procesów potomnych, które wywołujący następnie utworzy) i na odwrót.

       Więcej   informacji   o   przestrzeni   nazw   montowań   znajduje   się   w   podręczniku
       mount_namespaces(7).

   Relacje rodzicielskie pomiędzy montowaniami
       Każde  montowanie ma montowanie macierzyste. Cała relacja rodzicielska wszystkich montowań
       definiuje pojedynczą  hierarchię  katalogów  widoczną  przez  proces  w  przestrzeni  nazw
       montowań.

       Montowanie  macierzyste nowego montowania jest definiowane przy jego utworzeniu. W typowym
       przypadku, montowaniem macierzystym nowego montowania jest to, zawierające system plików z
       katalogiem  lub  plikiem, do którego dołączane jest nowe montowanie. W przypadku, gdy nowe
       montowanie  jest  ułożone  na  istniejącym  montowaniu,  montowaniem  macierzystym  nowego
       montowania jest poprzednie montowanie ułożone w tym położeniu.

       Relacje   rodzicielskie   pomiędzy   montowaniami   można   sprawdzić   za   pomocą  pliku
       /proc/pid/mountinfo (zob. niżej).

   /proc/pid/mounts i /proc/pid/mountinfo
       Typowo linuksowy plik /proc/pid/mounts ujawnia listę montowań w przestrzeni nazw  montowań
       procesu   o  danym  pid.  Plik  /proc/pid/mountinfo  ujawnia  nawet  więcej  informacji  o
       montowaniach, w tym o typie propagacji oraz informacje o identyfikatorze montowania, które
       umożliwiają  odkrycie  relacji rodzicielskich między montowaniami. Więcej informacji o tym
       pliku znajduje się w podręcznikach proc(5) oraz mount_namespaces(7).

ZOBACZ TAKŻE

       mountpoint(1), chroot(2),  ioctl_iflags(2),  mount_setattr(2),  pivot_root(2),  umount(2),
       mount_namespaces(7), path_resolution(7), findmnt(8), lsblk(8), 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⟩.