it-swarm.com.de

Wie erhalte ich die vollständige und genaue Liste der gemounteten Dateisysteme unter Linux?

Normalerweise benutze ich mount, um zu überprüfen, welche Dateisysteme gemountet sind. Ich weiß auch, dass es einen Zusammenhang zwischen mount und /etc/mtab Gibt, aber ich bin mir über die Details nicht sicher. Nach dem Lesen So überprüfen Sie, ob/proc/gemountet ist Ich werde verwirrter.

Meine Frage ist: Wie erhalte ich die genaueste Liste der gemounteten Dateisysteme? Soll ich einfach mount verwenden oder den Inhalt von /etc/mtab Oder den Inhalt von /proc/mounts Lesen? Was würde das vertrauenswürdigste Ergebnis liefern?

168
xanpeng

Die endgültige Liste der gemounteten Dateisysteme befindet sich in /proc/mounts.

Wenn Sie irgendeine Form von Containern auf Ihrem System haben, listet /proc/mounts Nur die Dateisysteme auf, die sich in Ihrem aktuellen Container befinden. Beispielsweise listet /proc/mounts In a chroot nur die Dateisysteme auf, deren Einhängepunkt innerhalb der chroot liegt. ( Es gibt Möglichkeiten, der Chroot zu entkommen, Verstand. )

Es gibt auch eine Liste der gemounteten Dateisysteme in /etc/mtab. Diese Liste wird mit den Befehlen mount und umount verwaltet. Das heißt, wenn Sie diese Befehle nicht verwenden (was ziemlich selten ist), wird Ihre Aktion (Ein- oder Aushängen) nicht aufgezeichnet. In der Praxis finden Sie meistens in einer Chroot-Datei /etc/mtab Dateien, die sich stark vom Status des Systems unterscheiden. Außerdem werden in der Chroot durchgeführte Reittiere im /etc/mtab Der Chroot wiedergegeben, nicht jedoch im Haupt /etc/mtab. Aktionen, die ausgeführt werden, während /etc/mtab In einem schreibgeschützten Dateisystem ausgeführt wird, werden dort ebenfalls nicht aufgezeichnet.

Der Grund, warum Sie manchmal /etc/mtab Bevorzugt oder zusätzlich zu /proc/mounts Konsultieren möchten, ist, dass es manchmal in der Lage ist, Informationen auf eine Art und Weise darzustellen, da es Zugriff auf die Mount-Befehlszeile hat das ist leichter zu verstehen; Beispielsweise werden die angeforderten Mount-Optionen angezeigt (während /proc/mounts auch die Standardeinstellungen für mount und den Kernel auflistet), und Bindungs-Mounts werden in /etc/mtab als solche angezeigt.

Stand 2.18 (Juli 2010)util-linux Enthält ein Tool, mit dem Sie eine Liste der aktuell gemounteten Dateisysteme anzeigen können:

findmnt

Sie können mit -l Von der Standardbaumansicht zur Listenansicht wechseln, Ausgabespalten mit -o Definieren (ähnlich wie lsblk) und Ergebnisse basierend auf dem Dateisystemtyp mit -t Usw.

findmnt -lo Quelle, Ziel, fstype, Bezeichnung, Optionen, verwendet -t ext4
SOURCE    TARGET      FSTYPE LABEL OPTIONS                           USED
/dev/sda1 /           ext4   Arch  rw,noatime,discard,data=ordered  17.6G
/dev/sdb2 /media/DATA ext4   DATA  rw,noatime,discard,data=ordered    44M

Weitere Informationen finden Sie auf der Seite man (und findmnt --help, Um eine Liste der verfügbaren Spalten zu erhalten.)

81
don_crissti

Vielleicht, weil es 5 Jahre her ist, seit diese Frage beantwortet wurde, haben sich die Dinge geändert. Das cat /proc/mounts erstellt viele Informationen, die Sie nicht interessieren. Heute, IMHO, finde ich dies die ultimative Lösung.

df -h --output=source,target

wenn Sie die Manpages lesen, gibt es alle Arten von Optionen, die Sie tun können, aber das ist, was Sie was. Um beispielsweise die Ergebnisse noch weiter zu bereinigen, können Sie mit diesem Befehl Dateitypen von "tmpfs" ausschließen:

df -hx tmpfs --output=source,target

df funktioniert auf Dateisystemebene und nicht auf Dateiebene.

Die obigen Befehle enthalten auch Netzwerk-Mounts.

Um ein wenig mehr Informationen zu sehen, verwenden Sie diese:

df -hT

NOTE Bei langsam gemounteten Netzwerkverbindungen kann dies einige Minuten dauern!

Wenn Sie keine gemounteten Netzwerkverbindungen haben oder sich nicht darum kümmern (und über Root-Berechtigungen verfügen), ist dies sogar noch besser:

Sudo lsblk -f
37
Rick

Meistens ist mount die bequemste Methode. Für eine vollständige und genaue Liste der aktuell gemounteten Dateisysteme sollten Sie den Inhalt von /proc/mounts Lesen (z. B. mit cat /proc/mounts).

Wenn beispielsweise das Mounten von / Readwrite fehlgeschlagen ist und es dann schreibgeschützt als Fallback gemountet wurde, /etc/mtab (Von dem der Befehl mount liest, um Ihnen mitzuteilen, was gemountet ist, und in das geschrieben wird --wenn es möglich ist - wenn es ändert, was gemountet wird) würde nicht aktualisiert, um zu reflektieren, dass / (das /etc/mtab enthält) derzeit schreibgeschützt gemountet ist. In dieser Situation zeigt das Ausführen von mount normalerweise (fälschlicherweise) an, dass / Readwrite bereitgestellt wurde.

Unter normalen Bedingungen (d. H. Wenn das Dateisystem, in dem es enthalten ist, beschrieben werden kann) enthält /etc/mtab Eine Liste der aktuell bereitgestellten Dateisysteme. Dies ist nicht zu verwechseln mit /etc/fstab, Das eine Liste von Dateisystemen enthält, die beim Systemstart automatisch gemountet werden sollen.

Wenn das virtuelle Dateisystem /proc Selbst nicht gemountet ist, können Sie natürlich keine der darin enthaltenen virtuellen Dateien lesen, einschließlich /proc/mounts. Dies ist sehr selten der Fall. In dieser Situation ist mount wahrscheinlich die beste Option, um zu sehen, was gemountet ist.

23
Eliah Kagan