Co jest /etc/mtab
w Linuksie?
Dlaczego jest to potrzebne i zalety posiadania go?
man 5 mtab
brakuje.
Co jest /etc/mtab
w Linuksie?
Dlaczego jest to potrzebne i zalety posiadania go?
man 5 mtab
brakuje.
Odpowiedzi:
% plik / etc / mtab / etc / mtab: symboliczny link do ../proc/self/mounts % plik / proc / mounts / proc / mounts: dowiązanie symboliczne do self / mounts %
/etc/mtab
to mechanizm zgodności. Dziesięć lat temu Unix nie miał wywołania systemowego do odczytu istniejących informacji o montowaniu. Zamiast tego oczekiwano, że programy, które montowały systemy plików, będą wspólnie i dobrowolnie utrzymywać tabelę /etc/mtab
tego, co zostało zamontowane.
Z oczywistych powodów nie był to idealny mechanizm.
Linux zyskał pojęcie „procfs”, a jedną z rzeczy, które zyskał, była utrzymywana przez jądro wersja tej tabeli, w formie mounts
pseudo-regularnego pliku. „Wywołanie systemowe” w celu odczytania informacji o montowaniu z jądra stało się sekwencją otwierania-odczytu-zamykania względem tego pliku, a następnie analizowania wyniku z postaci czytelnej dla człowieka do postaci czytelnej dla komputera (coś, co ma pewne subtelne wyłapania, jak ty widać z raportów o błędach sprzed ponad dwóch tygodni).
/etc/mtab
dlatego popularnie stał się dowiązaniem symbolicznym /proc/mounts
, pozwalając programom, które podłączyły tę nazwę, na dalsze odczytywanie tabeli montowania z tego pliku, do których programy, które montowały i odmontowały systemy plików, nie muszą już wyraźnie robić niczego, aby być na bieżąco. (Niektóre z nich jednak nadal będą, jeśli /etc/mtab
okażą się zwykłym plikiem do zapisania. I istnieje kilka narożnych przypadków, w których znormalizowane informacje, w mounts
których brakuje wszystkich elementów innych niż jądro, nie są dokładnie tym, czego potrzeba; chociaż nie przeważają one ogólne problemy z /etc/mtab
.)
Każdy proces może w dzisiejszych czasach mieć swój indywidualny obraz tego, co jest zamontowana, i istnieje jako konsekwencja teraz poszczególne mounts
pliki dla każdego procesu w PROCFS, każdy proces własny stół jest dostępny do niej za pośrednictwem self
łącza symbolicznego, jak self/mounts
i /proc/mounts
jest też obecnie kompatybilność mechanizm. (Co ciekawe, ani na proces, mounts
ani format nie mounts
są udokumentowane w bieżącym dokumencie systemu Linux, chociaż podobny mountinfo
pseudo-regularny plik to.)
SunOS / Solaris ma podobny mechanizm. /etc/mnttab
Plik jest rzeczywiście plików pojedynczych plików, a oprócz czytania tabeli, za pośrednictwem otwartego deskryptora pliku do tego pliku, z read()
wywołania systemowego, można oglądać do montażu zmian z punktu poll()
i uzyskać różne dalsze fragmenty informacji z ioctl()
.
W HP-UX, /etc/mnttab
podobnie jest nazwa pliku, ale od wersji 11 był to nadal zwykły plik, którego zawartość była wspólnie obsługiwana przez programy narzędziowe systemu.
System AIX nie eksportuje czytelnej dla człowieka tabeli tekstowej, którą programy muszą przeanalizować, i nie ma równoważnego pliku. Podobnie BSD mają pełnoprawne wywołania systemowe, getfsstat()
na FreeBSD i OpenBSD, dla programów, które uzyskują tabelę montowania z jądra w formie do odczytu maszynowego bez łączenia jej przez czytelną dla człowieka formę pośrednią.
/proc/self/mountinfo
z \ r w ścieżce montowania . # 35137. Błędy GNU coreutils./proc/mounts
. Dokumentacja / systemy plików / proc.txt . Linux 5.1.fstab-decode
. Błąd # 567071. Błędy Debiana.getfsstat()
. Podręcznik wywołań systemowych FreeBSD . 27.12.2016.mtab(5)
stare: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, ale teraz /proc/self/mounts
sam jest mechanizmem zgodności; pokazuje tylko podzbiór informacji dostępnych w /proc/self/mountinfo
. Format /proc/self/mounts
jest udokumentowany proc(5)
jako identyczny zfstab(5)
Według man mount
:
Programy montujące i umountujące tradycyjnie utrzymywały listę aktualnie podłączonych systemów plików w pliku / etc / mtab. Ten prawdziwy plik mtab jest nadal obsługiwany, ale w obecnych systemach Linux lepiej jest uczynić go dowiązaniem symbolicznym do / proc / mounts, ponieważ zwykły plik mtab utrzymywany w przestrzeni użytkownika nie może niezawodnie współpracować z przestrzeniami nazw, kontenerami i innymi zaawansowanymi funkcjami Linuksa.
Przy montażu bez rejestracji w /etc/mtab
:
-n, --no-mtab
Montuj bez pisania w / etc / mtab. Jest to konieczne na przykład, gdy / etc znajduje się w systemie plików tylko do odczytu.
Wiele innych niuansów podano na stronie podręcznika.