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

       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                          13 czerwca 2024 r.                                       mount(2)