plucky (2) mount.2.gz

Provided by: manpages-pl-dev_4.25.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),   FS_IOC_SETFLAGS(2const),   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⟩.