Scroll to navigation

MOUNT(2) Linux-Programmierhandbuch MOUNT(2)

BEZEICHNUNG

mount - Dateisystem einhängen

ÜBERSICHT

#include <sys/mount.h>
 
int mount(const char *quelle, const char *ziel, const char *dateisystemtyp, unsigned long einhängeschalter, const void *daten);

BESCHREIBUNG

Mount hängt das durch quelle angegebene Dateisystem (was oft ein Gerätename ist, aber auch ein Verzeichnisname oder ein Platzhalter sein kann) in das Verzeichnis ziel ein.
 
Zum Einhängen von Dateisystemen sind geeignete Rechte erforderlich (Linux: CAP_SYS_ADMIN-Fähigkeit).
 
Seit Linux 2.4 kann ein einzelnes Dateisystem an mehreren Einhängepunkten sichtbar sein und mehrere Einhängungen können auf dem gleichen Einhängepunkt gestapelt werden.
 
Die Werte für das Argument dateisystemtyp, die der Kernel unterstützt, werden in /proc/filesystems aufgelistet (z.B. »minix«, »ext2«, »ext3«, »jfs«, »xfs«, »reiserfs«, »msdos«, »proc«, »nfs«, »iso9660«). Weitere Typen könnten verfügbar werden, wenn geeignete Module geladen sind.
 
Das Argument einhängeschalter hat die Magische Zahl 0xC0ED ( MS_MGC_VAL) in den oberen 16 Bit (dies wurde in den Kernel-Versionen vor 2.4 benötigt, ist aber nicht länger notwendig und wird ignoriert, falls es angegeben wird) und verschiedene Einhängeschalter in den unteren 16 Bit:
MS_BIND (Linux 2.4 aufwärts)
Ein Einhängen per »Bind« macht eine Datei oder ein Unterverzeichnis an einem anderen Punkt innerhalb eines Dateisystems sichtbar. Einhängen per »Bind« darf Dateisystemgrenzen überqueren und sich über chroot(2)-Jails erstrecken. Die Argumente dateisystemtyp und daten werden ignoriert. Vor Linux 2.6.26 wurden außerdem einhängeschalter ignoriert (das Einhängen per »Bind« hat die gleichen Einhängeoptionen wie der darunterliegende Einhängepunkt).
MS_DIRSYNC (seit Linux 2.5.19)
Verzeichniswechsel auf diesem System synchron ausführen.(Diese Eigenschaft kann für einzelne Verzeichnisse oder Unterverzeichnisse durch Benutzung von chattr(1) erreicht werden.)
MS_MANDLOCK
Zwingendes Sperren von Dateien auf diesem Dateisystem erlauben. (Zwingendes Sperren muss immer noch für jede Datei eingeschaltet werden, wie es in fcntl(2) beschrieben ist.)
MS_MOVE
Ein Unterverzeichnis verschieben. quelle gibt einen existierenden Einhängepunkt und ziel den neuen Ort an. Das Verschieben ist atomar: Das Unterverzeichnis wird zu keinem Zeitpunkt ausgehängt. Die Argumente dateisystemtyp, einhängeschalter und daten werden ignoriert.
MS_NOATIME
Nicht die Zugriffszeiten für (alle Typen von) Dateien auf diesem Dateisystem aktualisieren.
MS_NODEV
Keinen Zugriff auf Geräte (Spezialdateien) auf diesem Dateisystem erlauben.
MS_NODIRATIME
Nicht die Zugriffszeiten für Verzeichnisse auf diesem Dateisystem aktualisieren. Dieser Schalter stellt eine Untermenge der Funktionalität vom MS_NOATIME bereit; sprich MS_NOATIME impliziert MS_NODIRATIME.
MS_NOEXEC
Nicht erlauben, dass Programme von diesem Dateisystem ausgeführt werden.
MS_NOSUID
Die Bits Set-User-ID und Set-User-Group-ID nicht berücksichtigen, wenn Programme von diesem Dateisystem ausgeführt werden.
MS_RDONLY
Dateisystem nur zum Lesen einhängen
MS_RELATIME (Seit Linux 2.6.20)
Wenn auf eine Datei auf diesem Dateisystem zugegriffen wird, nur die letzte Zugriffzeit der Datei (atime) aktualisieren, falls der aktuelle Wert von »atime« kleiner oder gleich der letzten Änderungszeit der Datei (mtime) oder der Zeit der letzten Statusänderung (ctime) ist. Diese Option ist für Programme wie mutt(1), die wissen müssen, ob eine Datei seit der letzten Änderung gelesen wurde. Seit Linux 2.6.30 verhält sich der Kernel wie es dieser Schalter vorgibt (falls nicht MS_NOATIME angegeben wurde) und der Schalter MS_STRICTATIME wird benötigt, um traditionelle Semantiken zu erhalten. Zusätzlich wird seit Linux 2.6.30 die letzte Zugriffszeit der Datei immer aktualisiert, wenn sie älter als ein Tag ist.
MS_REMOUNT
Eine existierende Einhängung erneut einhängen. Dies erlaubt Ihnen, die EINHÄNGSCHALTER und daten von einer existierenden Einhängung zu ändern, ohne das Dateisystem aus- und wieder einzuhängen. ziel sollte der gleiche Werte sein, wie beim anfänglichen Aufruf von mount() angegeben wurde; quelle und dateisystemtyp werden ignoriert.
 
Die folgenden EINHÄNGSCHALTER können geändert werden: MS_RDONLY, MS_SYNCHRONOUS, MS_MANDLOCK; vor Kernel 2.6.16 konnten außerdem die folgenden geändert werden: MS_NOATIME und MS_NODIRATIME; und zusätzlich, vor Kernel 2.4.10, konnten außerdem die folgenden geändert werden: MS_NOSUID, MS_NODEV, MS_NOEXEC.
MS_SILENT (seit Linux 2.6.17)
Die Anzeige bestimmter Warnungen (printk()) im Kernel-Protokoll unterdrücken. Dieser Schalter ersetzt den falsch benannten und veralteten Schalter MS_VERBOSE (verfügbar seit Linux 2.4.12), der die gleiche Bedeutung hat.
MS_STRICTATIME (seit Linux 2.6.30)
Die letzte Zugriffszeit (atime) immer aktualisieren, wenn auf Dateien auf diesem Dateisystem zugegriffen wird (dies war das Standardverhalten vor Linux 2.6.30). Die Angabe dieses Schalters überschreibt den Effekt der Schalter MS_NOATIME und MS_RELATIME.
MS_SYNCHRONOUS
Schreiben auf diesem Dateisystem synchronisieren (als ob der Schalter O_SYNC für open(2) für alle offenen Dateien auf diesem Dateisystem angegeben worden wäre).
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ßderdem kann der Schalter MS_RELATIME pro Einhängepunkt gesetzt werden.
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 erhalten.

RÜCKGABEWERT

Bei Erfolg wird Null zurückgegeben. Bei einem Fehler wird -1 zurückgegeben und errno entsprechend gesetzt.

FEHLER

Die im Folgenden aufgeführten Fehlerwerte resultieren aus dateisystemunabhängigen Fehlern. Jeder Dateisystemtyp kann seine eigenen speziellen Fehler und sein eigenes spezielles Verhalten aufweisen. Lesen Sie den Kernel-Quellcode, um Einzelheiten zu erfahren.
EACCES
Ein Bestandteil eines Pfades kann nicht durchsucht werden. (Siehe auch path_resolution(7).) Oder es wurde versucht, ein Dateisystem mit reinem Lesezugriff einzuhängen, ohne den Schalter MS_RDONLY anzugeben. Oder das blockorientierte Gerät befindet sich auf einem Dateisystem, das mit der Option MS_NODEV eingehängt ist.
EBUSY
quelle ist bereits eingehängt. Oder es kann kann nicht neu mit reinem Lesezugriff eingehängt werden, weil noch Dateien darauf mit Schreibzugriff geöffnet sind. Oder es kann nicht auf ziel eingehängt werden, weil ziel immer noch beschäftigt ist (es ist Arbeitsverzeichnis eines Threads, Einhängepunkt eines anderen Gerätes, hat geöffnete Dateien, etc.).
EFAULT
Eines der Zeiger-Argumente zeigt außerhalb des Adressraums der Benutzer.
EINVAL
quelle hat einen ungültigen Superblock. Oder es wurde ein erneutes Einhängen ( MS_REMOUNT) versucht, aber quelle war bereits auf ziel eingehängt. Oder es wurde versucht, zu verschieben ( MS_MOVE), quelle war jedoch kein Einhängepunkt oder '/'.
ELOOP
Bei der Auflösung des Pfadnamens wurden zu viele Links vorgefunden. Oder es wurde versucht, zu verschieben, während ziel unterhalb von quelle lag.
EMFILE
(Falls kein blockorientiertes Gerät benötigt wird:) Die Tabelle der Platzhaltergeräte ist voll.
ENAMETOOLONG
Ein Pfadname war länger als MAXPATHLEN.
ENODEV
dateisystemtyp ist nicht im Kernel konfiguriert.
ENOENT
Ein Pfadname war leer oder hatte eine nicht existierende Komponente.
ENOMEM
Der Kernel konnte keine freie Seite reservieren, um Dateinamen oder Daten hinein zu kopieren.
ENOTBLK
quelle ist kein blockorientiertes Gerät (und ein Gerät war erforderlich).
ENOTDIR
ziel oder ein Präfix von quelle ist kein Verzeichnis.
ENXIO
Die Major-Nummer des blockorientierten Gerätes quelle liegt außerhalb des Bereichs.
EPERM
Der Aufrufende verfügt nicht über die erforderlichen Rechte.

VERSIONEN

Die Definitionen von MS_DIRSYNC, MS_MOVE, MS_REC, MS_RELATIME und MS_STRICTATIME wurden erst in der Version 2.12 in die Glibc-Header aufgenommen.

KONFORM ZU

Diese Funktion ist Linux-spezifisch und sollte nicht in Programmen benutzt werden, die portabel gehalten werden sollen.

ANMERKUNGEN

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 mit EPERM fehlschlagen, ein Set-User-ID- oder Set-Group-ID-Programm auf einem Dateisystem auszuführen, das mit MS_NOSUID eingehängt ist. Seit Linux 2.4 werden die Bits Set-User-ID und Set-User-Group-ID in diesem Fall einfach stillschweigend ignoriert.

Namensräume pro Prozess

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 Namesraum gemeinsam verwenden. (Die Situation in Linux vor 2.4.19 kann so betrachtet werden, als ob ein einzelner Namensraum von jedem Prozess im System gemeinsam benutzt würde.)
 
Ein untergeordneter Prozess, der durch fork(2) erzeugt wurde, nutzt den Einhänge-Namensraum seines übergeordneten Prozesses; der Einhänge-Namensraum wird über ein execve(2) erhalten.
 
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.

SIEHE AUCH

umount(2), path_resolution(7), mount(8), umount(8)

KOLOPHON

Diese Seite ist Teil der Veröffentlichung 3.42 des Projekts Linux- man-pages. Eine Beschreibung des Projekts und Informationen, wie Fehler gemeldet werden können, finden sich unter http://www.kernel.org/doc/man-pages/.
 

ÜBERSETZUNG

Die deutsche Übersetzung dieser Handbuchseite wurde von Patrick Rother <krd@gulu.net> und Chris Leick <c.leick@vollbio.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>.
5. Juli 2012 Linux