.\" -*- coding: UTF-8 -*-
.\" Copyright (C) 1993 Rickard E. Faith <faith@cs.unc.edu>
.\" and Copyright (C) 1994 Andries E. Brouwer <aeb@cwi.nl>
.\" and Copyright (C) 2002, 2005, 2016 Michael Kerrisk <mtk.manpages@gmail.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" Modified 1996-11-04 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 2001-10-13 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"	Added note on historical behavior of MS_NOSUID
.\" Modified 2002-05-16 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"	Extensive changes and additions
.\" Modified 2002-05-27 by aeb
.\" Modified 2002-06-11 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"	Enhanced descriptions of MS_MOVE, MS_BIND, and MS_REMOUNT
.\" Modified 2004-06-17 by Michael Kerrisk <mtk.manpages@gmail.com>
.\" 2005-05-18, mtk, Added MNT_EXPIRE, plus a few other tidy-ups.
.\" 2008-10-06, mtk: move umount*() material into separate umount.2 page.
.\" 2008-10-06, mtk: Add discussion of namespaces.
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH mount 2 "13 czerwca 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
mount \- montuje system plików
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <sys/mount.h>\fP
.P
\fBint mount(const char *\fP\fIsource\fP\fB, const char *\fP\fItarget\fP\fB,\fP
\fB          const char *\fP\fIfilesystemtype\fP\fB, unsigned long \fP\fImountflags\fP\fB,\fP
\fB          const void *_Nullable \fP\fIdata\fP\fB);\fP
.fi
.SH OPIS
\fBmount\fP() dołącza system plików podany jako \fIsource\fP (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ą \fItarget\fP.
.P
Do montowania systemów plików wymagane są odpowiednie przywileje (Linux:
przywilej \fBCAP_SYS_ADMIN\fP (ang. capability)).
.P
Obsługiwane przez jądro wartości argumentu \fIfilesystemtype\fP są wypisane w
\fI/proc/filesystems\fP (np. \[Bq]btrfs\[rq], \[Bq]ext4\[rq], \[Bq]jfs\[rq],
\[Bq]xfs\[rq], \[Bq]vfat\[rq], \[Bq]fuse\[rq], \[Bq]tmpfs\[rq],
\[Bq]cgroup\[rq], \[Bq]proc\[rq], \[Bq]mqueue\[rq], \[Bq]nfs\[rq],
\[Bq]cifs\[rq], \[Bq]iso9660\[rq]). Kolejne typy mogą stać się dostępne po
załadowaniu odpowiednich modułów.
.P
Argument \fIdata\fP 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 \fBmount\fP(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.
.P
Wywołanie do \fBmount\fP() dokonuje wielu ogólnych typów działań, w zależności
od bitów podanych w \fImountflags\fP. Wybór operacji do wykonania jest
dokonywany po sprawdzeniu bitów ustawionych w \fImountflags\fP, a sprawdzenia
te mają miejsce w poniższej kolejności:
.IP \[bu] 3
Montuje ponownie (przemontowuje) istniejące montowanie: \fImountflags\fP
zawiera \fBMS_REMOUNT\fP.
.IP \[bu]
Tworzy montowanie z podpięciem: \fImountflags\fP zawiera \fBMS_BIND\fP.
.IP \[bu]
Zmienia propagację typu istniejącego montowania: \fImountflags\fP obejmuje
jedną z: \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP lub \fBMS_UNBINDABLE\fP.
.IP \[bu]
Przemieszcza istniejące montowanie do nowego położenia: \fImountflags\fP
zawiera \fBMS_MOVE\fP.
.IP \[bu]
Tworzy nowe montowanie: \fImountflags\fP nie zawiera żadnego z powyższych
znaczników.
.P
.\"
Wszystkie powyższe operacje są opisane w dalszej części podręcznika. Kolejne
znaczniki można podać w \fImountflags\fP, w celu modyfikacji zachowania
\fBmount\fP(), zgodnie z opisem poniżej.
.SS "Dodatkowe znaczniki montowań"
.\"
.\" FIXME 2.6.25 Added MS_I_VERSION, which needs to be documented.
.\" commit 7a224228ed79d587ece2304869000aad1b8e97dd
.\" (This is a per-superblock flag)
.\"
Poniższa lista opisuje dodatkowe znaczniki, które można podać w
\fImountflags\fP. Proszę zauważyć, że część operacji ignoruje niektóre, lub
wszystkie, z tych znaczników, zgodnie z opisem w dalszej części podręcznika.
.TP 
\fBMS_DIRSYNC\fP (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ą
\fBchattr\fP(1)).
.TP 
\fBMS_LAZYTIME\fP (od Linuksa 4.0)
.\" commit 0ae45f63d4ef8d8eeec49c7d8b44a1775fff13e8
.\" commit fe032c422c5ba562ba9c2d316f55e258e03259c6
.\" commit a26f49926da938f47561f386be56a83dd37a496d
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:
.RS
.IP \[bu] 3
i\-węzeł musi być zaktualizowany z powodu innej zmiany, niezwiązanej ze
znacznikami czasowymi;
.IP \[bu]
aplikacja użyje \fBfsync\fP(2), \fBsyncfs\fP(2) lub \fBsync\fP(2);
.IP \[bu]
przywrócony (po usunięciu) i\-węzeł jest wyrzucany z pamięci; albo
.IP \[bu]
minęło ponad 24 godziny od czasu zapisania i\-węzła na dysk.
.RE
.IP
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.
.IP
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 \fBMS_STRICTATIME\fP (zaleta łączenia
\fBMS_STRICTATIME\fP i \fBMS_LAZYTIME\fP jest taka, że \fBstat\fP(2) zwróci poprawnie
zaktualizowany atime, lecz aktualizacje atime zostaną zapisane na dysku
tylko w wyżej wymienionych przypadkach).
.TP 
\fBMS_MANDLOCK\fP
.\" commit 95ace75414f312f9a7b93d873f386987b92a5301
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 \fBfcntl\fP(2)). Od Linuksa 4.5, ta opcja montowania wymaga przywileju
\fBCAP_SYS_ADMIN\fP oraz jądra skonfigurowanego z opcją
\fBCONFIG_MANDATORY_FILE_LOCKING\fP. 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.
.TP 
\fBMS_NOATIME\fP
Nie aktualizuje czasu dostępu dla (wszystkich typów) plików w tym systemie
plików.
.TP 
\fBMS_NODEV\fP
Nie zezwala na dostęp do (plików specjalnych) urządzeń w tym systemie
plików.
.TP 
\fBMS_NODIRATIME\fP
Nie aktualizuje czasu dostępu do katalogów w tym systemie plików. Znacznik
udostępnia podzbiór funkcjonalności zapewnianej przez \fBMS_NOATIME\fP
tj. \fBMS_NOATIME\fP wymusza \fBMS_NODIRATIME\fP.
.TP 
\fBMS_NOEXEC\fP
.\" (Possibly useful for a filesystem that contains non-Linux executables.
.\" Often used as a security feature, e.g., to make sure that restricted
.\" users cannot execute files uploaded using ftp or so.)
Nie zezwala na wykonywanie programów z tego systemu plików.
.TP 
\fBMS_NOSUID\fP
.\" (This is a security feature to prevent users executing set-user-ID and
.\" set-group-ID programs from removable disk devices.)
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
\fInosuid_transition\fP, co z kolei wymaga również przywileju zasad
\fInnp_nosuid_transition\fP.
.TP 
\fBMS_RDONLY\fP
Montuje system plików tylko do odczytu.
.TP 
\fBMS_REC\fP (od Linuksa 2.4.11)
Używane w połączeniu z \fBMS_BIND\fP 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.
.TP 
\fBMS_RELATIME\fP (od Linuksa 2.6.20)
.\" Matthew Garrett notes in the patch that added this behavior
.\" that this lets utilities such as tmpreaper (which deletes
.\" files based on last access time) work correctly.
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 \fBmutt\fP(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 \fBMS_NOATIME\fP), a do
uzyskania tradycyjnego zachowania konieczne jest podanie znacznika
\fBMS_STRICTATIME\fP. Dodatkowo, od Linuksa 2.6.30, czas ostatniego dostępu do
pliku jest zawsze aktualizowany, gdy jest starszy niż 1 dzień.
.TP 
\fBMS_SILENT\fP (od Linuksa 2.6.17)
Powstrzymuje wypisywanie pewnych (\fIprintk\fP()) ostrzeżeń w dzienniku
jądra. Znacznik ten zastępuje błędnie nazwany i przestarzały znacznik
\fBMS_VERBOSE\fP (dostępny od Linuksa 2.4.12), który ma takie samo znaczenie.
.TP 
\fBMS_STRICTATIME\fP (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
\fBMS_NOATIME\fP i \fBMS_RELATIME\fP.
.TP 
\fBMS_SYNCHRONOUS\fP
Czyni zapisy w tym systemie plików synchronicznymi (tak, jakby w przypadku
wszystkich otwarć plików w tym systemie plików podawano znacznik \fBO_SYNC\fP
do \fBopen\fP(2)).
.TP 
\fBMS_NOSYMFOLLOW\fP (od Linuksa 5.10)
.\" dab741e0e02bd3c4f5e2e97be74b39df2523fc6e
Nie podąża za dowiązaniami symbolicznymi przy rozwiązywaniu
ścieżek. Dowiązania symboliczne mogą być wciąż tworzone, a \fBreadlink\fP(1),
\fBreadlink\fP(2), \fBrealpath\fP(1) i \fBrealpath\fP(3) wciąż działają poprawnie.
.P
Od Linuksa 2.4, niektóre z powyższych znaczników są ustawiane na dane
montowanie; inne tyczą się superbloku montowanego systemu plików \[em] 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).
.P
Znaczniki ustawiane na dane montowanie to:
.IP \[bu] 3
Od Linuksa 2.4: \fBMS_NODEV\fP, \fBMS_NOEXEC\fP i \fBMS_NOSUID\fP są ustawiane na
dane montowanie.
.IP \[bu]
Dodatkowo, od Linuksa 2.6.16: \fBMS_NOATIME\fP i \fBMS_NODIRATIME\fP.
.IP \[bu]
Dodatkowo, od Linuksa 2.6.20: \fBMS_RELATIME\fP.
.P
.\" And MS_I_VERSION?
Następujące znaczniki są przypisane do superbloku: \fBMS_DIRSYNC\fP,
\fBMS_LAZYTIME\fP, \fBMS_MANDLOCK\fP, \fBMS_SILENT\fP i \fBMS_SYNCHRONOUS\fP. 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.
.P
.\"
Od Linuksa 2.6.16, \fBMS_RDONLY\fP 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.
.SS "Ponowne montowanie (przemontowanie) istniejącego montowania"
Istniejące montowanie może zostać zamontowane ponownie (przemontowane),
podając \fBMS_REMOUNT\fP w \fImountflags\fP. Można w ten sposób zmienić
\fImountflags\fP i \fIdata\fP istniejącego montowania, bez potrzeby odmontowywania
i montowania systemu plików. Cel \fItarget\fP powinien mieć tę samą wartość,
jaką podano w pierwotnym wywołaniu \fBmount\fP().
.P
Argumenty \fIsource\fP i \fIfilesystemtype\fP są ignorowane.
.P
Argumenty \fImountflags\fP i \fIdata\fP powinny być zgodne z wartościami użytymi w
pierwotnym wywołaniu \fBmount\fP() \[em] poza tymi wartościami, które chce się
zmienić.
.P
.\" FIXME
.\" MS_LAZYTIME seems to be available only on a few filesystems,
.\" and on ext4, it seems (from experiment that this flag
.\" can only be enabled (but not disabled) on a remount.
.\" The following code in ext4_remount() (kernel 4.17) seems to
.\" confirm this:
.\"
.\"        if (*flags & SB_LAZYTIME)
.\"                sb->s_flags |= SB_LAZYTIME;
.\" See the definition of MS_RMT_MASK in include/uapi/linux/fs.h,
.\" which excludes MS_DIRSYNC and MS_SILENT, although SB_DIRSYNC
.\" and SB_SILENT are split out as per-superblock flags in do_mount()
.\" (Linux 4.17 source code)
Następujące \fImountflags\fP mogą być zmieniane: \fBMS_LAZYTIME\fP,
\fBMS_MANDLOCK\fP, \fBMS_NOATIME\fP, \fBMS_NODEV\fP, \fBMS_NODIRATIME\fP, \fBMS_NOEXEC\fP,
\fBMS_NOSUID\fP, \fBMS_RELATIME\fP, \fBMS_RDONLY\fP, \fBMS_STRICTATIME\fP (co powoduje
usunięcie znaczników \fBMS_NOATIME\fP i \fBMS_RELATIME\fP) oraz
\fBMS_SYNCHRONOUS\fP. Próby zmiany ustawień \fBMS_DIRSYNC\fP i \fBMS_SILENT\fP
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).
.P
.\" commit ffbc6f0ead47fa5a1dc9642b0331cb75c20a640e
Od Linuksa 3.17, jeśli w \fImountflags\fP nie podano żadnej z opcji:
\fBMS_NOATIME\fP, \fBMS_NODIRATIME\fP, \fBMS_RELATIME\fP, ani \fBMS_STRICTATIME\fP, to
operacja przemontowania zachowuje istniejące wartości tych znaczników
(zamiast powracać do \fBMS_RELATIME\fP).
.P
.\" See https://lwn.net/Articles/281157/
Od Linuksa 2.6.26, znacznik \fBMS_REMOUNT\fP może być użyty łącznie z
\fBMS_BIND\fP, aby zmodyfikować jedynie znaczniki przypisane do danego
montowania. Jest to szczególnie przydatne w ustawianiu lub usuwaniu
znacznika \[Bq]tylko do odczytu\[rq] bez zmieniania samego systemu
plików. Podanie następujących \fImountflags\fP:
.P
.in +4n
.EX
MS_REMOUNT | MS_BIND | MS_RDONLY
.EE
.in
.P
.\"
uczyni dostęp do tego punktu montowania tylko do odczytu, bez zmieniania
innych montowań.
.SS "Tworzenie montowania z podpięciem (bind mount)"
.\" since Linux 2.4.0-test9
Jeśli \fImountflags\fP obejmuje \fBMS_BIND\fP (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 \fBchroot\fP(2).
.P
Argumenty \fIfilesystemtype\fP i \fIdata\fP są ignorowane.
.P
Pozostałe bity (poza \fBMS_REC\fP, opisanym poniżej) w argumencie \fImountflags\fP
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.
.P
.\"
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 \fBMS_REC\fP, to
dokonywana jest rekurencyjna operacja montowania z podpięciem \[em]
wszystkie podmontowania w poddrzewie w \fIsource\fP (inne niż montowania bez
podpięcia) są również montowane z podpięciem, w odpowiednim położeniu
poddrzewa \fItarget\fP.
.SS "Zmiana typu propagacji istniejącego montowania"
Jeśli \fImountflags\fP obejmuje jeden z: \fBMS_SHARED\fP, \fBMS_PRIVATE\fP,
\fBMS_SLAVE\fP lub \fBMS_UNBINDABLE\fP (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.
.P
Jedyne inne znaczniki, jakie można podać przy zmianie typu propagacji to:
\fBMS_REC\fP (opisany poniżej) oraz \fBMS_SILENT\fP (który jest ignorowany).
.P
Argumenty \fIsource\fP, \fIfilesystemtype\fP i \fIdata\fP są ignorowane.
.P
Znaczenie znaczników typu propagacji jest następujące:
.TP 
\fBMS_SHARED\fP
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.
.TP 
\fBMS_PRIVATE\fP
Czyni montowanie prywatnym. Zdarzenia zamontowania i odmontowania nie
propagują z tego montowania, ani na to montowanie.
.TP 
\fBMS_SLAVE\fP
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.
.IP
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.
.IP
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.
.TP 
\fBMS_UNBINDABLE\fP
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 (\fBmount\fP() ze
znacznikami \fBMS_BIND\fP i \fBMS_REC\fP) 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.
.P
Domyślnie, zmiana typu propagacji wpływa jedynie na montowanie
\fItarget\fP. Jeśli w \fImountflags\fP poda się również znacznik \fBMS_REC\fP, to
zmieni się typ propagacji również wszystkich montowań poniżej celu
\fItarget\fP.
.P
.\"
Więcej informacji o typach propagacji montowań (w tym domyślnym typie
propagacji montowań przypisywanym nowym montowaniom) znajduje się w
podręczniku \fBmount_namespaces\fP(7).
.SS "Przesuwanie montowania"
Jeśli \fImountflags\fP zawiera znacznik \fBMS_MOVE\fP (dostępny od Linuksa
2.4.18), to nastąpi przesunięcie poddrzewa: \fIsource\fP określa dotychczasowe
montowanie, a \fItarget\fP podaje nowe położenie, do którego to montowanie ma
być przemieszczone. Przesunięcie jest niepodzielne, w żadnej chwili
poddrzewo nie jest odmontowane.
.P
.\"
Pozostałe bity w argumencie \fImountflags\fP są ignorowane, podobnie jak
argumenty \fIfilesystemtype\fP i \fIdata\fP.
.SS "Tworzenie nowego montowania"
Jeśli w \fImountflags\fP nie jest podany żaden ze znaczników: \fBMS_REMOUNT\fP,
\fBMS_BIND\fP, \fBMS_MOVE\fP, \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP lub
\fBMS_UNBINDABLE\fP, to \fBmount\fP() dokonuje swojej domyślnej akcji: tworzenia
nowego montowania. \fIsource\fP określa źródło nowego montowania, a \fItarget\fP
podaje katalog, w którym zostanie utworzony punkt montowania.
.P
.\"
Używane są argumenty \fIfilesystemtype\fP i \fIdata\fP, a w \fImountflags\fP można
podać kolejne bity, aby zmodyfikować zachowanie wywołania.
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest \-1 i
ustawiane \fIerrno\fP, wskazując błąd.
.SH 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.
.TP 
\fBEACCES\fP
Składowa ścieżki była nieprzeszukiwalna (zob. też \fBpath_resolution\fP(7)).
.TP 
\fBEACCES\fP
Próbowano zamontować system plików tylko do odczytu, bez podania znacznika
\fBMS_RDONLY\fP.
.IP
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).
.IP
Niektóre systemy plików, przy próbie zamontowania systemu tylko do odczytu,
w zamian zwracają błąd \fBEROFS\fP.
.TP 
\fBEACCES\fP
.\" mtk: Probably: write permission is required for MS_BIND, with
.\" the error EPERM if not present; CAP_DAC_OVERRIDE is required.
Urządzenie blokowe \fIsource\fP jest położone w systemie plików zamontowanym z
opcją \fBMS_NODEV\fP.
.TP 
\fBEBUSY\fP
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 \fIsource\fP i \fItarget\fP.
.TP 
\fBEBUSY\fP
\fIsource\fP nie może być przemontowany tylko do odczytu, ponieważ wciąż
utrzymuje pliki otwarte do zapisu.
.TP 
\fBEFAULT\fP
Jeden z argumentów wskaźnikowych wskazuje poza przestrzeń adresową
użytkownika.
.TP 
\fBEINVAL\fP
\fIsource\fP ma nieprawidłowy superblok.
.TP 
\fBEINVAL\fP
Próbowano dokonać operacji przemontowania (\fBMS_REMOUNT\fP), lecz \fIsource\fP
nie było zamontowane w \fItarget\fP.
.TP 
\fBEINVAL\fP
Próbowano dokonać operacji przesunięcia (\fBMS_MOVE\fP), lecz drzewo montowań
pod \fIsource\fP zawiera montowania nieprzypinalne, a \fItarget\fP jest
montowaniem z typem propagacji \fBMS_SHARED\fP.
.TP 
\fBEINVAL\fP
Próbowano dokonać operacji przesunięcia (\fBMS_MOVE\fP), lecz montowanie
macierzyste montowania \fIsource\fP, ma typ propagacji \fBMS_SHARED\fP.
.TP 
\fBEINVAL\fP
Próbowano dokonać operacji przesunięcia (\fBMS_MOVE\fP), lecz \fIsource\fP nie
było montowaniem lub wynosiło \[Bq]/\[rq].
.TP 
\fBEINVAL\fP
.\" See commit 8823c079ba7136dc1948d6f6dcb5f8022bde438e
Żądano operacji podpięcia (\fBMS_BIND\fP), gdzie \fIsource\fP odnosi się do
magicznego dowiązania przestrzeni nazw montowań (tj. dowiązania magicznego
\fI/proc/\fPpid\fI/ns/mnt\fP lub montowania z podpięciem do takiego dowiązania),
przy czym typ propagacji montowania macierzystego wobec \fItarget\fP wynosił
\fBMS_SHARED\fP, 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ń.
.TP 
\fBEINVAL\fP
\fImountflags\fP obejmuje więcej niż jeden z: \fBMS_SHARED\fP, \fBMS_PRIVATE\fP,
\fBMS_SLAVE\fP lub \fBMS_UNBINDABLE\fP.
.TP 
\fBEINVAL\fP
\fImountflags\fP obejmuje \fBMS_SHARED\fP, \fBMS_PRIVATE\fP, \fBMS_SLAVE\fP lub
\fBMS_UNBINDABLE\fP oraz zawiera znacznik inny niż \fBMS_REC\fP lub \fBMS_SILENT\fP.
.TP 
\fBEINVAL\fP
Próbowano zamontować z podpięciem montowanie niepodpinalne.
.TP 
\fBEINVAL\fP
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
(\fBMS_BIND\fP), bez podania (\fBMS_REC\fP), co spowodowałoby ujawnienie drzewa
systemu plików, pod jednym z podmontowań podpinanego katalogu.
.TP 
\fBELOOP\fP
Podczas rozwiązywania ścieżki napotkano zbyt wiele dowiązań.
.TP 
\fBELOOP\fP
Próbowano dokonać operacji przesunięcia, a \fItarget\fP jest potomkiem
\fIsource\fP.
.TP 
\fBEMFILE\fP
(Gdy nie jest wymagane urządzeń blokowe:) Tablica urządzeń atrap jest pełna.
.TP 
\fBENAMETOOLONG\fP
Ścieżka była dłuższa od \fBMAXPATHLEN\fP.
.TP 
\fBENODEV\fP
\fIfilesystemtype\fP nie jest skonfigurowany w jądrze.
.TP 
\fBENOENT\fP
Ścieżka była pusta lub miała nieistniejącą składową.
.TP 
\fBENOMEM\fP
Jądro nie mogło zaalokować wolnej strony, w celu skopiowania do niej nazw
plików lub danych.
.TP 
\fBENOTBLK\fP
\fIsource\fP nie jest urządzeniem blokowym (a było ono wymagane).
.TP 
\fBENOTDIR\fP
\fItarget\fP lub przedrostek \fIsource\fP nie jest katalogiem.
.TP 
\fBENXIO\fP
Główny numer urządzenia blokowego \fIsource\fP jest poza zakresem.
.TP 
\fBEPERM\fP
Wywołujący nie ma wymaganych przywilejów.
.TP 
\fBEPERM\fP
Próbowano zmodyfikować (\fBMS_REMOUNT\fP) znacznik \fBMS_RDONLY\fP, \fBMS_NOSUID\fP
lub \fBMS_NOEXEC\fP, albo jeden ze znaczników \[Bq]atime\[rq] (\fBMS_NOATIME\fP,
\fBMS_NODIRATIME\fP, \fBMS_RELATIME\fP) istniejącego montowania, lecz montowanie
jest zablokowane; zob. \fBmount_namespaces\fP(7).
.TP 
\fBEROFS\fP
.\"
Próbowano zamontować system plików tylko do odczytu bez podania znacznika
\fBMS_RDONLY\fP. Zob. \fBEACCES\fP wyżej.
.SH STANDARDY
Linux.
.SH HISTORIA
Definicje \fBMS_DIRSYNC\fP, \fBMS_MOVE\fP, \fBMS_PRIVATE\fP, \fBMS_REC\fP,
\fBMS_RELATIME\fP, \fBMS_SHARED\fP, \fBMS_SLAVE\fP, \fBMS_STRICTATIME\fP i
\fBMS_UNBINDABLE\fP dodano do nagłówków glibc w glibc 2.12.
.P
.\" Multiple mounts on same mount point: since Linux 2.3.99pre7.
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ń.
.P
Argument \fImountflags\fP może mieć liczbę magiczną 0xC0ED (\fBMS_MGC_VAL\fP) w
górnych 16 bitach (wszelkie inne znaczniki opisane w OPISIE zajmują dolne 16
bitów \fImountflags\fP). Podanie \fBMS_MGC_VAL\fP było wymagane przed Linuksem
2.4, lecz od Linuksa 2.4 nie jest już konieczne i jest ignorowane, jeśli
jest obecne.
.P
Pierwotny znacznik \fBMS_SYNC\fP został przemianowany na \fBMS_SYNCHRONOUS\fP w
1.1.69, gdy w \fI<mman.h>\fP dodano odmienny \fBMS_SYNC\fP.
.P
.\" The change is in patch-2.4.0-prerelease.
.\"
Przed Linuksem 2.4 próba wykonania programu set\-user\-ID lub set\-group\-ID w
systemie plików zamontowanym z \fBMS_NOSUID\fP zawiodłaby z błędem \fBEPERM\fP. Od
Linuksa 2.4, bity set\-user\-ID i set\-group\-ID są w takim przypadku po cichu
ignorowane.
.SH UWAGI
.SS "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).
.P
Proces potomny utworzony przez \fBfork\fP(2) dziedziczy przestrzeń montowań
procesu macierzystego; przestrzeń nazw montowań jest zachowywana przez
\fBexecve\fP(2).
.P
Proces może uzyskać prywatną przestrzeń nazw montowań jeśli: utworzono go za
pomocą znacznika \fBCLONE_NEWNS\fP \fBclone\fP(2), gdy jego nowa przestrzeń nazw
jest inicjowana jako \fIkopia\fP przestrzeni nazw procesu, który wywołał
\fBclone\fP(2); albo jeśli wywoła \fBunshare\fP(2) ze znacznikiem \fBCLONE_NEWNS\fP,
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.
.P
.\"
Więcej informacji o przestrzeni nazw montowań znajduje się w podręczniku
\fBmount_namespaces\fP(7).
.SS "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ń.
.P
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.
.P
.\"
Relacje rodzicielskie pomiędzy montowaniami można sprawdzić za pomocą pliku
\fI/proc/\fPpid\fI/mountinfo\fP (zob. niżej).
.SS "\fI/proc/\fPpid\fI/mounts\fP i \fI/proc/\fPpid\fI/mountinfo\fP"
Typowo linuksowy plik \fI/proc/\fPpid\fI/mounts\fP ujawnia listę montowań w
przestrzeni nazw montowań procesu o danym pid. Plik
\fI/proc/\fPpid\fI/mountinfo\fP 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 \fBproc\fP(5) oraz
\fBmount_namespaces\fP(7).
.SH "ZOBACZ TAKŻE"
\fBmountpoint\fP(1), \fBchroot\fP(2), \fBFS_IOC_SETFLAGS\fP(2const),
\fBmount_setattr\fP(2), \fBpivot_root\fP(2), \fBumount\fP(2), \fBmount_namespaces\fP(7),
\fBpath_resolution\fP(7), \fBfindmnt\fP(8), \fBlsblk\fP(8), \fBmount\fP(8), \fBumount\fP(8)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
