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.
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>.