Co to jest / etc / mtab w systemie Linux?


Odpowiedzi:


51
% plik / etc / mtab
/ etc / mtab: symboliczny link do ../proc/self/mounts
% plik / proc / mounts
/ proc / mounts: dowiązanie symboliczne do self / mounts
%

/etc/mtabto 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/mtabtego, 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 mountspseudo-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/mtabdlatego 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/mtabokażą się zwykłym plikiem do zapisania. I istnieje kilka narożnych przypadków, w których znormalizowane informacje, w mountsktó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 mountspliki 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/mountsi /proc/mountsjest też obecnie kompatybilność mechanizm. (Co ciekawe, ani na proces, mountsani format nie mountssą udokumentowane w bieżącym dokumencie systemu Linux, chociaż podobny mountinfopseudo-regularny plik to.)

SunOS / Solaris ma podobny mechanizm. /etc/mnttabPlik 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/mnttabpodobnie 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ą.

Dalsza lektura


Uzupełnieniem mojego komentarza w pytaniu tutaj są mtab(5)stare: man.cat-v.org/unix_8th/5/mtab .
Weijun Zhou

2
nie tylko /proc/mounts, ale teraz /proc/self/mountssam jest mechanizmem zgodności; pokazuje tylko podzbiór informacji dostępnych w /proc/self/mountinfo. Format /proc/self/mountsjest udokumentowany proc(5)jako identyczny zfstab(5)
mosvy

choć wprawdzie fstab (5) mówi tylko o
spacjach

Znam pseudo zwykłe pliki, ale co to jest pseudo zwykły plik?
gerrit

@gerrit to zwykły plik, który ma rozmiar 0, ale nadal zawiera dane ;-)
mosvy

12

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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.