mount
Dateisystem einhängen
- Provided by: manpages-de-dev (Version: 2.5-1)
- Source: manpages-de
- Report a bug
Dateisystem einhängen
#include <sys/mount.h>
int mount(const char *quelle, const char *Ziel,
const char *Dateisystemtyp,
unsigned long Einhängeschalter,
const void *Daten);
mount() hängt das als Quelle angegebene Dateisystem (was oft ein Pfadname, der sich auf ein Gerät bezieht, ist; es kann aber auch der Pfadname eines Verzeichnisses oder einer Datei oder eine Platzhalterzeichenkette sein) an dem durch den Pfadnamen in target festgelegten Ort (einem Verzeichnis oder einer Datei) ein.
Zum Einhängen von Dateisystemen sind geeignete Rechte erforderlich (Linux: CAP_SYS_ADMIN-Capability).
Die Werte für das Argument dateisystemtyp, die der Kernel unterstützt, werden in /proc/filesystems aufgelistet (z.B. »btrfs«, »ext4«, »jfs«, »xfs«, »vfat«, »fuse«, »tmpfs«, »cgroup«, »proc«, »mqueue«, »nfs«, »cifs«, »iso9660« ). Weitere Typen könnten verfügbar werden, wenn geeignete Module geladen sind.
Das Argument Daten wird von den verschiedenen Dateisystemen interpretiert. Typischerweise ist es eine Zeichenkette aus Optionen, die durch Kommata getrennt sind und die von diesem Dateisystem verstanden werden. Lesen Sie mount(8), um weitere Einzelheiten über die verfügbaren Optionen für jeden Dateisystemtyp zu erfahren.
Ein Aufruf von mount() führt eine aus einer Reihe von allgemeinen Aktionsarten durch, abhängig von den in Einhängeschalter festgelegten Bits. Die Wahl der auszuführenden Aktion wird durch Testen der in Einhängeschalter gesetzten Bits bestimmt, wobei die Tests in der hier aufgeführten Reihenfolge abgearbeitet werden:
Jede dieser Aktionen wird später auf dieser Seite genauer beschrieben. Wie weiter unten beschrieben ist, können weitere Schalter in Einhängeschalter festgelegt werden, um das Verhalten von mount() zu verändern.
Die folgende Liste beschreibt zusätzliche Schalter, die in Einhängeschalter festgelegt werden können. Beachten Sie, dass einige Aktionstypen einige oder alle dieser Schalter ignorieren, wie dies später auf dieser Seite beschrieben ist.
Zufälliges Schreiben in vorreservierte Dateien sowie andere Fälle, in denen die Einhängeoption MS_STRICTATIME auch aktiviert ist, sind Beispiele für Betriebsbelastungen, bei denen diese Option deutlichen Vorteil bringen könnte. (Der Vorteil der Kombination von MS_STRICTATIME und MS_LAZYTIME besteht darin, dass stat(2) die korrekt aktualisierte Atime zurückliefern wird, aber Atime-Aktualisierungen nur in den oben aufgeführten Fällen auf Platte rausgeschrieben werden.)
Von Linux 2.4 aufwärts können die Schalter MS_NODEV, MS_NOEXEC und MS_NOSUID pro Einhängepunkt gesetzt werden. Von Linux 2.6.16 aufwärts können auch die Schalter MS_NOATIME und MS_NODIRATIME pro Einhängepunkt gesetzt werden. Außerdem kann der Schalter MS_RELATIME pro Einhängepunkt gesetzt werden. Seit Linux 2.6.16 kann MS_RDONLY sowohl auf einer pro-Einhängepunkt-Basis als auch auf dem unterliegenden Dateisystem (zurück)gesetzt werden. Das unterliegende Dateisystem wird nur schreibbar sein, falls weder das Dateisystem noch der Einhängepunkt als nur-lesbar gekennzeichnet sind.
Die existierende Einhängung kann erneut eingehängt werden, indem MS_REMOUNT in den Einhängeschaltern festgelegt wird. Dies erlaubt Ihnen, die Einhängeschalter und Daten von einer existierenden Einhängung zu ändern, ohne das Dateisystem aus- und wieder einzuhängen. Ziel sollte der gleiche Wert sein, wie beim anfänglichen Aufruf von mount() angegeben wurde.
Die Argumente Quelle und Dateisystemtyp werden ignoriert.
Die Argumente Einhängeschalter und Daten sollten den im originalen mount()-Aufruf verwendeten Werten entsprechen, außer für jene Parameter, die bewusst geändert werden. Eine weitere Ausnahme ist, dass MS_BIND beim erneuten Einhängen eine andere Bedeutung hat und daher nur aufgenommen werden sollte, wenn es explizit erwünscht ist.
Die folgenden Einhängeschalter können geändert werden: MS_LAZYTIME, MS_MANDLOCK, MS_NOATIME, MS_NODEV, MS_NODIRATIME, MS_NOEXEC, MS_NOSUID, MS_RELATIME, MS_RDONLY und MS_SYNCHRONOUS. Versuche, die Einstellung des Schalters MS_DIRSYNC zu ändern, werden ohne Rückmeldung ignoriert.
Seit Linux 3.17 hält die Neueinhänge-Aktion die bestehenden Werte der Schalter MS_NOATIME, MS_NODIRATIME, MS_RELATIME und MS_STRICTATIME bei, falls keiner davon explizit angegeben wurde, statt als Vorgabe MS_RELATIME zu verwenden.
Seit Linux 2.6.26 kann dieser Schalter mit MS_BIND verwandt werden, um nur die pro-Einhängungs-Schalter zu verändern. Dies ist besonders nützlich, um den »nur-lesbar«-Schalter auf einem Einhängepunkt (zurück-)zusetzen, ohne das unterliegende Dateisystem zu verändern. Wird Einhängeschalter als
MS_REMOUNT | MS_BIND | MS_RDONLY
festgelegt, dann wird der Zugriff über diesen Einhängepunkt nur-lesbar, ohne andere Einhängepunkte zu beeinflussen.
Falls Einhängeschalter MS_BIND (verfügbar seit Linux 2.4) enthält, dann wird eine Bind-Einhängung durchgeführt. Eine Bind-Einhängung macht eine Datei oder ein Verzeichnisunterbaum an einem anderen Punkt innerhalb der einzelnen Verzeichnishierarchie sichtbar. Bind-Einhängungen können Dateisystemgrenzen überwinden und sich über chroot(2)-Gefängnisse hinweg erstrecken.
Die Argumente Dateisystemtyp und Daten werden ignoriert.
Die verbleibenden Bits im Argument Einhängeschalter werden außer MS_REC auch ignoriert. (Die Bind-Einhängung hat die gleichen Einhängeoptionen wie der unterliegende Einhängepunkt.) Lesen Sie allerdings die Diskussion zum erneuten Einhängen weiter oben für eine Methode, wie Sie eine bestehende Bind-Einhängung auf nur-lesend ändern.
Wenn ein Verzeichnis bind-eingehängt ist, ist standardmäßig nur dieses Verzeichnis eingehängt; falls es Untereinhängungen unter dem Verzeichnisbaum gibt, sind diese nicht bind-eingehängt. Falls auch der Schalter MS_REC angegeben ist, dann wird eine rekursive Bind-Einhängung durchgeführt: Alle Untereinhängungen unter dem Unterbaum Quelle (außer nicht bind-einhängbaren Einhängungen) werden auch an dem entsprechenden Ort im Ziel-Unterbaum bind-eingehängt.
Falls Einhängeschalter einen aus MS_SHARED, MS_PRIVATE, MS_SLAVE, MS_UNBINDABLE (alle seit Linux 2.6.15 verfügbar) enthält, dann wird der Ausbreitungstyp einer bestehenden Einhängung geändert. Falls mehr als einer dieser Schalter festgelegt wird, entsteht ein Fehler.
Es können nur die Schalter MS_REC und MS_SILENT für das Ändern des Ausbreitungstyps verwandt werden.
Die Argumente Quelle, Dateisystemtyp und Daten werden ignoriert.
Die Ausbreitungstypschalter haben folgende Bedeutung:
When a mount point is a slave, mount and unmount events propagate into this mount point from the (master) shared peer group of which it was formerly a member. Mount and unmount events under this mount point do not propagate to any peer.
A mount point can be the slave of another peer group while at the same time sharing mount and unmount events with a peer group of which it is a member.
Standardmäßig betrifft die Änderung des Ausbreitungstyps nur den Ziel-Einhängepunkt. Falls auch der Schalter MS_REC in Einhängeschalter festgelegt ist, dann wird der Ausbreitungstyp aller Einhängepunkte unter Ziel auch geändert.
Für weitere Details bezüglich Einhängeausbreitungstypen (einschließlich der neuen Einhängungen zugewiesenen Vorgabeausbreitungstypen) siehe mount_namespaces(7).
Falls Einhängeschalter den Schalter MS_MOVE enthält (verfügbar seit Linux 2.4.18), dann wird ein Unterbaum verschoben. Quelle gibt einen existierenden Einhängepunkt und Ziel den neuen Ort an, zu dem der bestehende Einhängpunkt hin verlegt werden soll. Das Verschieben ist atomar: Das Unterbaum wird zu keinem Zeitpunkt ausgehängt.
Die verbliebenen Bits im Argument Einhängeschalter werden ignoriert, wie auch die Argumente Dateisystemtyp und Daten.
Falls kein Schalter aus MS_REMOUNT, MS_BIND, MS_MOVE, MS_SHARED, MS_PRIVATE, MS_SLAVE und MS_UNBINDABLE in Einhängeschalter festgelegt ist, führt mount() seine Vorgabeaktion aus: Erstellung eines neuen Einhängepunktes. Quelle legt die Quelle für den neuen Einhängepunkt fest und Ziel legt das Verzeichnis fest, an dem der Einhängepunkt erstellt werden soll.
Die Argumente Dateisystemtyp und Daten werden eingesetzt und weitere Bits können in Einhängeschalter festgelegt werden, um das Verhalten des Aufrufs zu verändern.
Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.
Die im Folgenden aufgeführten Fehlerwerte resultieren aus vom Dateisystemtyp unabhängigen Fehlern. Jeder Dateisystemtyp kann seine eigenen speziellen Fehler und sein eigenes spezielles Verhalten aufweisen. Lesen Sie den Linux-Kernel-Quellcode, um Einzelheiten zu erfahren.
Die Definitionen von MS_DIRSYNC, MS_MOVE, MS_PRIVATE, MS_REC, MS_RELATIME, MS_SHARED, MS_SLAVE, MS_STRICTATIME und MS_UNBINDABLE wurden in der Version 2.12 in die Glibc-Header aufgenommen.
Diese Funktion ist Linux-spezifisch und sollte nicht in Programmen benutzt werden, die portabel gehalten werden sollen.
Seit Linux 2.4 kann ein einzelnes Dateisystem an mehreren Einhängepunkten eingehängt sein und mehrere Einhängungen können auf dem gleichen Einhängepunkt gestapelt werden.
Das Argument Einhängeschalter hat die Magische Zahl 0xC0ED (MS_MGC_VAL) in den oberen 16 Bits. (Alle andere in BESCHREIBUNG vorgestellten Schalter liegen in den unteren 16 Bits von Einhängeschalter.). In Kernel-Versionen vor 2.4 war die Angabe von MS_MGC_VAL notwendig, aber seit Linux 2.4 ist dies nicht mehr notwendig und wird, falls angegeben, ignoriert.
Der Originalschalter MS_SYNC wurde in 1.1.69 in MS_SYNCHRONOUS umbenannt, als ein anderer MS_SYNC zu <mman.h> hinzugefügt wurde.
Vor Linux 2.4 würde ein Versuch, ein Set-User-ID- oder Set-Group-ID-Programm auf einem Dateisystem auszuführen, das mit MS_NOSUID eingehängt ist, mit EPERM fehlschlagen. Seit Linux 2.4 werden die Bits Set-User-ID und Set-User-Group-ID in diesem Fall einfach stillschweigend ignoriert.
Seit Kernel 2.4.19 stellt Linux Einhänge-Namensräume pro Prozess bereit. Ein Einhänge-Namensraum ist eine Zusammenstellung von eingehängten Dateisystemen, die für einen Prozess sichtbar sind. Einhängepunkt-Namensräume können (und werden gewöhnlich) gemeinsam von mehreren Prozessen benutzt und Änderungen am Namensraum (d.h. Ein- und Aushängen) durch einen Prozess sind für alle anderen Prozesse sichtbar, die den gleichen Namensraum mitverwenden. (Die Situation in Linux vor 2.4.19 kann so betrachtet werden, als ob ein einzelner Namensraum von jedem Prozess im System mitbenutzt würde.)
Ein Kindprozess, der durch fork(2) erzeugt wurde, nutzt den Einhängenamensraum seines Elternprozesses; der Einhängenamensraum wird über ein execve(2) beibehalten.
Ein Prozess kann einen privat eingehängten Namensraum erhalten, falls er unter Benutzung des Schalters CLONE_NEWNS von clone(2) erstellt wurde. In diesem Fall wird sein neuer Namensraum als eine Kopie des Namensraums des Prozesses, der clone(2) aufrief, initialisiert oder er ruft unshare(2) mit dem Schalter CLONE_NEWNS auf, was veranlasst, dass der Einhänge-Namensraum des Aufrufenden eine private Kopie des Namensraums erhält, der vorher mit anderen Prozessen gemeinsam benutzt wurde, so dass zukünftiges Ein- und Aushängen durch den Aufrufenden für andere Prozesse unsichtbar ist (außer Kindprozesse, die der Aufrufende hinterher erzeugt) und umgekehrt.
Die Linux-spezifische Datei /proc/[PID]/mounts stellt die Liste der Einhängepunkte in dem Einhänge-Namensraum des Prozesses mit der angegebenen ID dar; lesen Sie proc(5), um Einzelheiten zu erfahren.
mountpoint(1), umount(2), mount_namespaces(7), path_resolution(7), findmnt(8), lsblk(8), mount(8), umount(8)
Diese Seite ist Teil der Veröffentlichung 4.15 des Projekts Linux-man-pages. Eine Beschreibung des Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden sich unter https://www.kernel.org/doc/man-pages/.
Die deutsche Übersetzung dieser Handbuchseite wurde von Check translation of »flag«; would option be better? (Erik Pfannenstein, Patrick Rother <krd@gulu.net>, Chris Leick <c.leick@vollbio.de>, Mario Blättermann <mario.blaettermann@gmail.com> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an <debian-l10n-german@lists.debian.org>.