Provided by: manpages-pl-dev_4.26.0-1_all 

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 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)