Zwykle mount
sprawdzam, które systemy plików są zamontowane. Wiem też, że jest jakiś związek między mount
a /etc/mtab
, ale nie jestem pewien co do szczegółów. Po przeczytaniu Jak sprawdzić, czy / proc / jest zamontowany , coraz bardziej się mylę.
Moje pytanie brzmi: jak uzyskać najbardziej precyzyjną listę zamontowanych systemów plików? Czy powinienem po prostu użyć mount
lub przeczytać zawartość /etc/mtab
lub zawartość /proc/mounts
? Co dałoby najbardziej wiarygodny wynik?
linux
filesystems
mount
Xanpeng
źródło
źródło
Odpowiedzi:
Ostateczna lista zamontowanych systemów plików znajduje się w
/proc/mounts
.Jeśli masz w systemie dowolną formę kontenerów,
/proc/mounts
wymień tylko te systemy plików, które znajdują się w twoim obecnym kontenerze. Na przykład, w chroot ,/proc/mounts
wymienia tylko te systemy plików, których punkt montowania jest w chroot. ( Istnieją sposoby na ucieczkę od chroot, umysł. )Jest też lista zamontowanych systemów plików
/etc/mtab
. Ta lista jest obsługiwana przez poleceniamount
iumount
. Oznacza to, że jeśli nie użyjesz tych poleceń (co jest dość rzadkie), twoje działanie (zamontowanie lub odmontowanie) nie zostanie zarejestrowane. W praktyce głównie w chroot znajdziesz/etc/mtab
pliki, które różnią się znacznie od stanu systemu. Również wierzchowce wykonywane w chroot będą odzwierciedlone w chroot,/etc/mtab
ale nie w main/etc/mtab
. Działania wykonywane/etc/mtab
w systemie plików tylko do odczytu również tam nie są rejestrowane.Powodem, dla którego czasami chcesz konsultować się
/etc/mtab
przed lub w dodatku,/proc/mounts
jest to, że ponieważ ma on dostęp do wiersza polecenia montowania, czasami jest w stanie przedstawić informacje w sposób łatwiejszy do zrozumienia; na przykład widzisz opcje montowania zgodnie z żądaniem (podczas gdy/proc/mounts
wyświetla równieżmount
wartości domyślne jądra i), a montowania powiązań pojawiają się jako takie w/etc/mtab
.źródło
mount
utrzymywać,/etc/mtab
jeśli nie można na nim polegać? Czy nie byłoby lepiej, gdyby zamiast tegomount
zaprezentowano informacje/proc/mounts
?/etc/mtab
może rejestrować informacje, których jądro nie śledzi, takie jak pierwotnie żądane opcje, i przypisywać podłączenia, które pojawiają się jako takie, a nie jako duplikaty wpisów dla urządzeń. Niemniej jednak wiele dystrybucji zmierza w kierunku utworzenia/etc/mtab
dowiązania symbolicznego/proc/mounts
./etc/mtab
dowiązania symbolicznego/proc/mounts
. Dobrze słyszeć - dodanie tych informacji do odpowiedzi sprawi, że będzie jeszcze lepiej. Czy uważasz, że śledzenie żądanych opcji przez jądro byłoby wykonalne i korzystne?findmnt
która jest preferowanym sposobem od 2010 roku i prawdopodobnie jedynym bezpiecznym sposobem w najbliższej przyszłości, gdy przestrzenie nazw montowania będą powszechne.Od wersji 2.18 (lipiec 2010)
util-linux
zawiera narzędzie, które pozwala wyświetlić listę aktualnie podłączonych systemów plików:Możesz przełączać się z domyślnego widoku drzewa na widok listy za pomocą
-l
, definiować kolumny wyjściowe za pomocą-o
(podobnie dolsblk
), filtrować wyniki na podstawie typu systemu plików za pomocą-t
itp ...Aby uzyskać więcej informacji, przeczytaj
man
stronę (ifindmnt --help
uzyskaj listę dostępnych kolumn)źródło
Może dlatego, że minęło 5 lat od odpowiedzi na to pytanie, wiele się zmieniło.
cat /proc/mounts
Tworzy wiele informacji nie zależy. Dzisiaj, według IMHO, jest to najlepsze rozwiązanie.kiedy czytasz strony podręcznika, możesz robić różne opcje, ale właśnie to. Na przykład, aby jeszcze bardziej wyczyścić wyniki, możesz wykluczyć typy plików „tmpfs” za pomocą tego polecenia:
df
działa na poziomie systemu plików, a nie na poziomie pliku.Powyższe polecenia obejmują również podłączenia sieciowe.
Aby zobaczyć trochę więcej informacji, użyj tego:
UWAGA W przypadku wolno montowanych połączeń sieciowych może to potrwać kilka minut!
Jeśli nie masz lub nie dbasz o zamontowane połączenia sieciowe (i masz uprawnienia roota), jest to jeszcze lepsze:
źródło
--output
czegoś takiego jak Ubuntu 12, który nie akceptuje tych opcji, sprawdź odpowiedź don_crisstifindmnt
poniżej, która to robi.findmnt
wydaje się, że potrzebuje wyższych możliwości (testowane z rootem; root ma wszystkie możliwości) do wyświetlania etykiet.Przez większość czasu
mount
jest to najwygodniejsza metoda. Aby uzyskać pełną i dokładną listę aktualnie zamontowanych systemów plików, powinieneś przeczytać zawartość/proc/mounts
(np. Za pomocącat /proc/mounts
).Na przykład, jeśli montowanie
/
readwrite nie powiodło się, a następnie zostało zamontowane tylko do odczytu jako awaryjne,/etc/mtab
(z któregomount
polecenie odczytuje, aby powiedzieć, co jest zamontowane, i zapisuje do - jeśli to możliwe - kiedy zmienia to, co zostało zamontowane) nie zostanie zaktualizowane aby odzwierciedlić to/
(co zawiera/etc/mtab
) jest obecnie montowane tylko do odczytu. W tej sytuacji uruchomieniemount
zazwyczaj mówi (niepoprawnie), że/
został zamontowany tryb zapisu do odczytu.W normalnych warunkach (tzn. Gdy system plików, który go zawiera, może zostać zapisany),
/etc/mtab
zawiera listę aktualnie zamontowanych systemów plików. Nie należy tego mylić/etc/fstab
, który zawiera listę systemów plików, które powinny zostać zamontowane automatycznie podczas uruchamiania systemu.Oczywiście, jeśli
/proc
wirtualny system plików sam nie jest zamontowany, nie można odczytać żadnego z wirtualnych plików, w tym/proc/mounts
. Jest to bardzo rzadkie. W tej sytuacjimount
jest to prawdopodobnie najlepsza opcja, aby zobaczyć, co jest zamontowane.źródło