Was ist /etc/mtab
in Linux?
Warum wird es benötigt und welche Vorteile bietet es?
man 5 mtab
es fehlt.
Was ist /etc/mtab
in Linux?
Warum wird es benötigt und welche Vorteile bietet es?
man 5 mtab
es fehlt.
Antworten:
% file / etc / mtab / etc / mtab: symbolischer Link zu ../proc/self/mounts % file / proc / mounts / proc / mounts: symbolischer Link zu self / mounts %
/etc/mtab
ist ein Kompatibilitätsmechanismus. Vor Jahrzehnten hatte Unix keinen Systemaufruf zum Lesen der vorhandenen Mount-Informationen. Stattdessen wurde von Programmen, die Dateisysteme mounten, erwartet, dass sie kooperativ und freiwillig eine Tabelle darüber führen, /etc/mtab
was wo gemountet wurde.
Aus offensichtlichen Gründen war dies kein idealer Mechanismus.
Linux erhielt die Vorstellung eines "procfs", und eines der Dinge, die es gewann, war eine vom Kernel gepflegte Version dieser Tabelle in Form einer mounts
pseudoregulären Datei. Der "Systemaufruf" zum Lesen der Mount-Informationen aus dem Kernel wurde zu einer Open-Read-Close-Sequenz für diese Datei, gefolgt vom Parsen des Ergebnisses von einer für Menschen lesbaren in eine maschinenlesbare Form (etwas, das wie Sie einige subtile Fehler aufweist) kann aus den Fehlerberichten von vor etwas mehr als vierzehn Tagen ersehen werden).
/etc/mtab
Dies ist im Volksmund zu einer symbolischen Verknüpfung geworden /proc/mounts
, die es Programmen, die diesen Namen fest verdrahtet haben, ermöglicht, eine Mount-Tabelle aus dieser Datei zu lesen, und die Programme, die Dateisysteme gemountet und nicht gemountet haben, müssen selbst nichts mehr tun, um auf dem neuesten Stand zu bleiben. (Einige von ihnen werden es dennoch sein, wenn /etc/mtab
sich herausstellt, dass es sich um eine beschreibbare reguläre Datei handelt. Und es gibt ein paar Eckfälle, in denen die normalisierten Informationen, in mounts
denen alle Nicht-Kernel-Sachen fehlen, nicht ganz das sind, was benötigt wird, obwohl sie nicht überwiegen die allgemeinen Probleme mit /etc/mtab
.)
Jeder Prozess kann heute seinen eigenen Blick auf dem , was angebracht ist, und es gibt als Folge nun einzelne mounts
Dateien für jeden Prozess in dem procfs, die jeweils eigene Tabelle des Prozesses zugänglich , um es über die Wesen self
symbolische Verbindung als self/mounts
, und /proc/mounts
ist auch jetzt eine Kompatibilität Mechanismus. (Interessanterweise sind im aktuellen Linux-Dokument weder pro Prozess mounts
noch im Format mounts
dokumentiert, obwohl es sich um eine ähnliche mountinfo
pseudoreguläre Datei handelt.)
SunOS / Solaris verfügt über einen ähnlichen Mechanismus. Die /etc/mnttab
Datei ist eigentlich ein Einzeldateisystem, und zusätzlich zum Lesen der Tabelle über einen geöffneten Dateideskriptor zu dieser Datei kann man mit dem read()
Systemaufruf nach Änderungen an Einhängepunkten suchen poll()
und verschiedene weitere Informationen mit abrufen ioctl()
.
In HP-UX /etc/mnttab
ist dies ebenfalls der Name der Datei, aber ab Version 11 war es immer noch eine reguläre Datei, deren Inhalt kooperativ von den Systemdienstprogrammen verwaltet wurde.
AIX exportiert keine lesbare Texttabelle, die von Programmen analysiert werden muss, und es gibt keine entsprechende Datei. Ebenso haben die BSDs vollwertige Systemaufrufe getfsstat()
auf FreeBSD und OpenBSD, damit Programme die Mount-Tabelle in maschinenlesbarer Form vom Kernel erhalten, ohne sie durch eine von Menschen lesbare Zwischenform zu marshallen.
/proc/self/mountinfo
mit \ r im Mount-Pfad . # 35137. GNU Coreutils Bugs./proc/mounts
. Dokumentation / Dateisysteme / proc.txt . Linux 5.1.fstab-decode
. Fehler # 567071. Debian-Fehler.getfsstat()
. Handbuch für FreeBSD-Systemaufrufe . 2016-12-27.mtab(5)
aus alten Zeiten: man.cat-v.org/unix_8th/5/mtab .
/proc/mounts
, sondern /proc/self/mounts
ist jetzt selbst ein Kompatibilitätsmechanismus; Es wird nur eine Teilmenge der in verfügbaren Informationen angezeigt /proc/self/mountinfo
. Das Format von /proc/self/mounts
ist proc(5)
als identisch mitfstab(5)
Nach man mount
:
Die Programme mount und umount haben traditionell eine Liste der aktuell gemounteten Dateisysteme in der Datei / etc / mtab gepflegt. Diese echte MTAB-Datei wird weiterhin unterstützt, aber auf aktuellen Linux-Systemen ist es besser, sie als Symlink zu / proc / mounts zu definieren, da eine reguläre MTAB-Datei, die im Userspace verwaltet wird, nicht zuverlässig mit Namespaces, Containern und anderen erweiterten Linux-Funktionen zusammenarbeitet.
Bei Montage ohne Aufnahme in /etc/mtab
:
-n, --no-mtab
Mounten, ohne in / etc / mtab zu schreiben. Dies ist beispielsweise erforderlich, wenn sich / etc in einem schreibgeschützten Dateisystem befindet.
Viele weitere Nuancen finden Sie auf der Handbuchseite.