.\" -*- coding: UTF-8 -*- .\" Copyright (C) 1993 Rickard E. Faith .\" and Copyright (C) 1994 Andries E. Brouwer .\" and Copyright (C) 2002, 2005, 2016 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified 1996-11-04 by Eric S. Raymond .\" Modified 2001-10-13 by Michael Kerrisk .\" Added note on historical behavior of MS_NOSUID .\" Modified 2002-05-16 by Michael Kerrisk .\" Extensive changes and additions .\" Modified 2002-05-27 by aeb .\" Modified 2002-06-11 by Michael Kerrisk .\" Enhanced descriptions of MS_MOVE, MS_BIND, and MS_REMOUNT .\" Modified 2004-06-17 by Michael Kerrisk .\" 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 \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\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 Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Michał Kułach . .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 .