mount(2) System Calls Manual mount(2) BEZEICHNUNG mount - Dateisystem einhangen BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include int mount(const char *Quelle, const char *Ziel, const char *Dateisystemtyp, unsigned long Einhangeschalter, const void *_Nullable Daten); BESCHREIBUNG mount() hangt das als Quelle angegebene Dateisystem (was oft ein Pfadname, der sich auf ein Gerat bezieht, ist; es kann aber auch der Pfadname eines Verzeichnisses oder einer Datei oder eine Platzhalterzeichenkette sein) an dem durch den Pfadnamen in Ziel angegebenen Ort (einem Verzeichnis oder einer Datei) ein. Zum Einhangen von Dateisystemen sind geeignete Rechte erforderlich (Linux: CAP_SYS_ADMIN-Capability). Die Werte fur das Argument dateisystemtyp, die der Kernel unterstutzt, werden in /proc/filesystems aufgelistet (z.B. >>btrfs<<, >>ext4<<, >>jfs<<, >>xfs<<, >>vfat<<, >>fuse<<, >>tmpfs<<, >>cgroup<<, >>proc<<, >>mqueue<<, >>nfs<<, >>cifs<<, >>iso9660<< ). Weitere Typen konnten verfugbar 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 uber die verfugbaren Optionen fur jeden Dateisystemtyp zu erfahren. Falls es keine Optionen gibt, kann dieses Argument als NULL angegeben werden. Ein Aufruf von mount() fuhrt eine aus einer Reihe von allgemeinen Aktionsarten durch, abhangig von den in Einhangeschalter angegebenen Bits. Die Wahl der auszufuhrenden Aktion wird durch Testen der in Einhangeschalter gesetzten Bits bestimmt, wobei die Tests in der hier aufgefuhrten Reihenfolge abgearbeitet werden: o Eine bestehende Einhangung neu einhangen: Einhangeschalter enthalt MS_REMOUNT. o Eine Bind-Einhangung erstellen: Einhangeschalter enthalt MS_BIND. o Den Ausbreitungstyp einer bestehenden Einhangung andern: Einhangeschalter enthalt einen aus MS_SHARED, MS_PRIVATE, MS_SLAVE, MS_UNBINDABLE. o Eine bestehende Einhangung an einen neuen Ort verschieben: Einhangeschalter enthalt MS_MOVE. o Eine neue Einhangung erstellen: Einhangeschalter enthalt keinen der obigen Schalter. Jede dieser Aktionen wird spater auf dieser Seite genauer beschrieben. Wie weiter unten beschrieben ist, konnen weitere Schalter in Einhangeschalter angegeben werden, um das Verhalten von mount() zu verandern. Zusatzliche Einhangeschalter Die folgende Liste beschreibt zusatzliche Schalter, die in Einhangeschalter angegeben werden konnen. Beachten Sie, dass einige Aktionstypen einige oder alle dieser Schalter ignorieren, wie dies spater auf dieser Seite beschrieben ist. MS_DIRSYNC (seit Linux 2.5.19) Verzeichniswechsel auf diesem Dateisystem synchron ausfuhren. (Diese Eigenschaft kann fur einzelne Verzeichnisse oder Unterverzeichnisse durch Benutzung von chattr(1) erreicht werden.) MS_LAZYTIME (seit Linux 4.0) Reduziert die Aktualiserung der Inode-Zeitstempel (Atime, Mtime, Ctime) auf der Platte, indem diese Anderungen nur im Speicher verwaltet werden. Die Zeitstempel auf der Platte werden nur aktualisiert, wenn: o der Inode aus einem anderen Grund (neben den Dateizeitstempeln) aktualisiert werden muss; o die Anwendung fsync(2), syncfs(2) oder sync(2) einsetzt; o ein wiederhergestellter Inode aus dem Speicher entfernt wird; oder o mehr als 24 Stunden vergangen sind, seitdem der Inode auf Platte geschrieben wurde. Diese Einhangeoption reduziert die Schreibaktionen fur die Aktualisierung der Inode-Zeitstempel signifikant, besonders fur Mtime und Atime. Im Falle eines Systemabsturzes konnten die Atime- und Mtime-Felder allerdings bis zu 24 Stunden veraltet sein. Zufalliges Schreiben in vorreservierte Dateien sowie andere Falle, in denen die Einhangeoption MS_STRICTATIME auch aktiviert ist, sind Beispiele fur Betriebsbelastungen, bei denen diese Option deutlichen Vorteil bringen konnte. (Der Vorteil der Kombination von MS_STRICTATIME und MS_LAZYTIME besteht darin, dass stat(2) die korrekt aktualisierte Atime zuruckliefern wird, aber Atime-Aktualisierungen nur in den oben aufgefuhrten Fallen auf Platte rausgeschrieben werden.) MS_MANDLOCK Zwingendes Sperren von Dateien auf diesem Dateisystem erlauben. (Zwingendes Sperren muss immer noch fur jede Datei eingeschaltet werden, wie es in fcntl(2) beschrieben ist.) Seit Linux 4.5 benotigt diese Einhangeoption die Capability CAP_SYS_ADMIN und einen Kernel, der mit der Option CONFIG_MANDATORY_FILE_LOCKING konfiguriert wurde. Zwingendes Sperren wurde in Linux 5.15 vollstandig als veraltet markiert, so dass dieser Schalter als veraltet anzusehen ist. MS_NOATIME Nicht die Zugriffszeiten fur (alle Typen von) Dateien auf diesem Dateisystem aktualisieren. MS_NODEV Keinen Zugriff auf Gerate (Spezialdateien) auf diesem Dateisystem erlauben. MS_NODIRATIME Nicht die Zugriffszeiten fur Verzeichnisse auf diesem Dateisystem aktualisieren. Dieser Schalter stellt eine Untermenge der Funktionalitat von MS_NOATIME bereit; sprich MS_NOATIME impliziert MS_NODIRATIME. MS_NOEXEC Nicht erlauben, dass Programme von diesem Dateisystem ausgefuhrt werden. MS_NOSUID Die Bits set-user-ID und set-group-ID oder Datei-Capabilities nicht berucksichtigen, wenn Programme aus diesem Dateisystem ausgefuhrt werden. Ausserdem erfordern SELinux-Domain-Ubergange das Zugriffsrecht nosuid_transition, welches seinerseits das Regel-Capability nnp_nosuid_transition erfordert. MS_RDONLY Dateisystem nur zum Lesen einhangen. MS_REC (seit Linux 2.4.11) Wird zusammen mit MS_BIND verwandt, um eine rekursive Bind-Einhangung zu erstellen und im Zusammenhang mit Ausbreitungstypschaltern, um rekursiv den Ausbreitungstyp aller Einhangungen in einem Unterbaum zu andern. Details sind weiter unten beschrieben. 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 Anderungszeit der Datei (mtime) oder der Zeit der letzten Statusanderung (ctime) ist. Diese Option ist fur Programme wie mutt(1) sinnvoll, die wissen mussen, ob eine Datei seit der letzten Anderung gelesen wurde. Seit Linux 2.6.30 verhalt sich der Kernel wie es dieser Schalter vorgibt (falls nicht MS_NOATIME angegeben wurde) und der Schalter MS_STRICTATIME wird benotigt, um traditionelle Semantiken zu erhalten. Zusatzlich wird seit Linux 2.6.30 die letzte Zugriffszeit der Datei immer aktualisiert, wenn sie alter als einen Tag ist. MS_SILENT (seit Linux 2.6.17) Die Anzeige bestimmter Warnungen (printk()) im Kernel-Protokoll unterdrucken. Dieser Schalter ersetzt den falsch benannten und veralteten Schalter MS_VERBOSE (verfugbar 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 uberschreibt den Effekt der Schalter MS_NOATIME und MS_RELATIME. MS_SYNCHRONOUS Schreiben auf diesem Dateisystem synchronisieren (als ob der Schalter O_SYNC fur open(2) fur alle offenen Dateien auf diesem Dateisystem angegeben worden ware). MS_NOSYMFOLLOW (seit Linux 5.10) Beim Auflosen von Pfaden keinen Symlinks folgen. Symlinks konnen noch angelegt werden und readlink(1), readlink(2), realpath(1) und realpath(3) werden noch korrekt funktionieren. Seit Linux 2.4 konnen einige der obigen Schalter pro Einhangepunkt gesetzt werden, wahrend andere fur den Superblock des eingehangten Dateisystems gelten, was bedeutet, dass alle Einhangungen des gleichen Dateisystems diese Schalter gemeinsam benutzen (vorher waren alle Schalter superblockabhangig). Die einhangepunktabhangigen Schalter haben folgende Bedeutung: o Seit Linux 2.4: Die Schalter MS_NODEV, MS_NOEXEC und MS_NOSUID sind pro Einhangepunkt setzbar. o Zusatzlich seit Linux 2.6.16: MS_NOATIME und MS_NODIRATIME. o Zusatzlich seit Linux 2.6.20: MS_RELATIME. Die folgenden Schalter sind pro Superblock: MS_DIRSYNC, MS_LAZYTIME, MS_MANDLOCK, MS_SILENT und MS_SYNCHRONOUS. Die anfanglichen Einstellungen dieser Schalter werden bei der ersten Einhangung des Dateisystems bestimmt und werden von allen nachfolgenden Einhangungen des gleichen Dateisystems mitbenutzt. Als Folge davon konnen die Einstellungen dieser Schalter mittels einer Neueinhangungsaktion (siehe unten) geandert werden. Solche Anderungen werden auf allen Einhangungen, die diesem Dateisystem zugeordnet sind, sichtbar. Seit Linux 2.6.16 kann MS_RDONLY sowohl auf einer einhangepunktabhangigen Basis als auch auf den unterliegenden Dateisystemsuperblock (zuruck)gesetzt werden. Das eingehangte Dateisystem wird nur schreibbar sein, falls weder das Dateisystem noch der Einhangepunkt als nur-lesbar gekennzeichnet sind. Eine existierende Einhangung erneut einhangen Die existierende Einhangung kann erneut eingehangt werden, indem MS_REMOUNT in den Einhangeschaltern angegeben wird. Dies erlaubt Ihnen, die Einhangeschalter und Daten von einer existierenden Einhangung zu andern, ohne das Dateisystem aus- und wieder einzuhangen. Ziel sollte der gleiche Wert sein, wie beim anfanglichen Aufruf von mount() angegeben wurde. Die Argumente Quelle und Dateisystemtyp werden ignoriert. Die Argumente Einhangeschalter und Daten sollten den im originalen mount()-Aufruf verwendeten Werten entsprechen, ausser fur jene Parameter, die bewusst geandert werden. Die folgenden Einhangeschalter konnen geandert werden: MS_LAZYTIME, MS_MANDLOCK, MS_NOATIME, MS_NODEV, MS_NODIRATIME, MS_NOEXEC, MS_NOSUID, MS_RELATIME, MS_RDONLY, MS_STRICTATIME (der bewirkt, dass die Schalter MS_NOATIME und MS_RELATIME bereinigt werden) und MS_SYNCHRONOUS. Versuche, die Einstellung der Schalter MS_DIRSYNC und MS_SILENT wahrend einer wiederholten Einhangung zu andern, werden ohne Ruckmeldung ignoriert. Beachten Sie, dass Anderungen der superblockbezogenen Schalter uber alle Einhangungen der zugeordneten Dateisysteme hinweg sichtbar sind (da die superblockbezogenen Schalter von allen Einhangungenen gemeinsam benutzt werden). Seit Linux 3.17 halt die Neueinhange-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 der Schalter MS_REMOUNT mit MS_BIND verwandt werden, um nur die einhangepunktabhangigen Schalter zu verandern. Dies ist besonders nutzlich, um den >>nur-lesbar<<-Schalter auf einer Einhangung (zuruck-)zusetzen, ohne das unterliegende Dateisystem zu verandern. Wird Einhangeschalter als MS_REMOUNT | MS_BIND | MS_RDONLY angegeben, dann wird der Zugriff uber diesen Einhangepunkt nur-lesbar, ohne andere Einhangungen zu beeinflussen. Eine Bind-Einhangung erstellen Falls Einhangeschalter MS_BIND (verfugbar seit Linux 2.4) enthalt, dann wird eine Bind-Einhangung durchgefuhrt. Eine Bind-Einhangung macht eine Datei oder ein Verzeichnisunterbaum an einem anderen Punkt innerhalb der einzelnen Verzeichnishierarchie sichtbar. Bind-Einhangungen konnen Dateisystemgrenzen uberwinden und sich uber chroot(2)-Gefangnisse hinweg erstrecken. Die Argumente Dateisystemtyp und Daten werden ignoriert. Die verbleibenden Bits (ausser das unten beschriebene MS_REC) im Argument Einhangeschalter werden auch ignoriert. (Die Bind-Einhangung hat die gleichen Einhangeoptionen wie die unterliegende Einhangung.) Lesen Sie allerdings die Diskussion zum erneuten Einhangen weiter oben fur eine Methode, wie Sie eine bestehende Bind-Einhangung auf nur-lesend andern. Wenn ein Verzeichnis bind-eingehangt ist, ist standardmassig nur dieses Verzeichnis eingehangt; falls es Untereinhangungen unter dem Verzeichnisbaum gibt, sind diese nicht bind-eingehangt. Falls auch der Schalter MS_REC angegeben ist, dann wird eine rekursive Bind-Einhangung durchgefuhrt: Alle Untereinhangungen unter dem Unterbaum Quelle (ausser nicht bind-einhangbaren Einhangungen) werden auch an dem entsprechenden Ort im Ziel-Unterbaum bind-eingehangt. Den Ausbreitungstyp einer bestehenden Einhangung andern Falls Einhangeschalter einen aus MS_SHARED, MS_PRIVATE, MS_SLAVE, MS_UNBINDABLE (alle seit Linux 2.6.15 verfugbar) enthalt, dann wird der Ausbreitungstyp einer bestehenden Einhangung geandert. Falls mehr als einer dieser Schalter angegeben wird, entsteht ein Fehler. Die einzigen anderen Schalter, die beim Andern des Ausbreitungstyps verwandt werden konnen, sind MS_REC (nachfolgend beschrieben) und MS_SILENT (der stillschweigend ignoriert wird). Die Argumente Quelle, Dateisystemtyp und Daten werden ignoriert. Die Ausbreitungstypschalter haben folgende Bedeutung: MS_SHARED Damit wird dies eine Mehrfacheinhangung. Ein- und Aushangeereignisse, die direkt unter dieser Einhangung sind, werden sich zu allen Einhangungen, die Mitglieder der Peer-Gruppe dieser Einhangung sind, ausbreiten. Ausbreitung bedeutet hier, dass die gleiche Ein- oder Aushangung automatisch unter allen anderen Einhangungen in der Peer-Gruppe erfolgen wird. Umgekehrt werden Ein- und Aushangeereignisse, die unter den Peer-Einhangungen stattfinden, sich zu dieser Einhangung ausbreiten. MS_PRIVATE Diese Einhangung wird privat. Ein- und Aushangeereignisse breiten sich nicht in oder aus dieser Einhangung heraus aus. MS_SLAVE Wenn dies eine gemeinsame Einhangung ist, die ein Mitglied einer Peer-Gruppe ist, die andere Mitglieder enthalt, dann wird sie in eine Slave-Einhangung umgewandelt. Falls dies eine gemeinsame Einhangung ist, die ein Mitglied einer Peer-Gruppe ist, die keine anderen Mitglieder enthalt, dann wird sie in eine private Einhangung umgewandelt. Andernfalls bleibt der Ausbreitungstyp der Einhangung unverandert. Wenn eine Einhangung ein Slave ist, breiten sich Ein- und Aushangeereignisse in dieser Einhangung von der gemeinsamen (Master-)Peer-Gruppe aus, bei der sie fruher ein Mitglied war. Ein- und Aushangeereignisse unterhalb dieser Einhangung breiten sich nicht zu einem Peer aus. Eine Einhangung kann ein Slave einer anderen Peer-Gruppe sein und gleichzeitig die Ein- und Aushangeereignisse gemeinsam mit einer Peer-Gruppe nutzen, bei der er Mitglied ist. MS_UNBINDABLE Diesen Einhangepunkt nicht bind-einhangbar machen. Dies ahnelt einer privaten Einhangung, zusatzlich kann diese Einhangung nicht bind-eingehangt werden. Wenn eine rekursive Bind-Einhangung (mount() mit den Schaltern MS_BIND und MS_REC) auf einem Verzeichnisunterbaum durchgefuhrt wird, werden alle nicht-bind-einhangbaren Einhangepunkte innerhalb des Unterbaums automatisch abgeschnitten (d.h. nicht reproduziert), wenn der Unterbaum zum Erstellen des Zielbaumes reproduziert wird. Standardmassig betrifft die Anderung des Ausbreitungstyps nur die Ziel-Einhangung. Falls auch der Schalter MS_REC in Einhangeschalter angegeben ist, dann wird der Ausbreitungstyp aller Einhangungen unter Ziel auch geandert. Fur weitere Details bezuglich Einhangeausbreitungstypen (einschliesslich der neuen Einhangungen zugewiesenen Vorgabeausbreitungstypen) siehe mount_namespaces(7). Verschieben einer Einhangung Falls Einhangeschalter den Schalter MS_MOVE enthalt (verfugbar seit Linux 2.4.18), dann wird ein Unterbaum verschoben. Quelle gibt eine existierende Einhangung und Ziel den neuen Ort an, zu dem die bestehende Einhangung hin verlegt werden soll. Das Verschieben ist atomar: Das Unterbaum wird zu keinem Zeitpunkt ausgehangt. Die verbliebenen Bits im Argument Einhangeschalter werden ignoriert, wie auch die Argumente Dateisystemtyp und Daten. Eine Bind-Einhangung erstellen Falls kein Schalter aus MS_REMOUNT, MS_BIND, MS_MOVE, MS_SHARED, MS_PRIVATE, MS_SLAVE und MS_UNBINDABLE in Einhangeschalter angegeben ist, fuhrt mount() seine Vorgabeaktion aus: Erstellung einer neuen Einhangung. Quelle gibt die Quelle fur die neue Einhangung an und Ziel gibt das Verzeichnis an, an dem der Einhangepunkt erstellt werden soll. Die Argumente Dateisystemtyp und Daten werden eingesetzt und weitere Bits konnen in Einhangeschalter angegeben werden, um das Verhalten des Aufrufs zu verandern. RUCKGABEWERT Bei Erfolg wird Null zuruckgegeben. Bei einem Fehler wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER Die im Folgenden aufgefuhrten Fehlerwerte resultieren aus vom Dateisystemtyp unabhangigen Fehlern. Jeder Dateisystemtyp kann seine eigenen speziellen Fehler und sein eigenes spezielles Verhalten aufweisen. Lesen Sie den Linux-Kernel-Quellcode, um Einzelheiten zu erfahren. EACCES Eine Komponente eines Pfades war nicht durchsuchbar. (Siehe auch path_resolution(7).) EACCES Es wurde versucht, ein nur-lesbares Dateisystem einzuhangen, ohne den Schalter MS_RDONLY zu verwenden. Das Dateisystem kann aus verschiedenen Grunden nur lesbar sein. Dazu gehoren: es liegt auf einer nur lesbaren optischen Platte, es liegt auf einem Gerat mit einem physischen Schalter, der auf der Einstellung >>nur lesbar<< steht, die Dateisystemimplementierung wurde ohne Schreibunterstutzung kompiliert oder es wurden Fehler erkannt, als das Dateisystem erstmalig eingehangt wurde, so dass es nur lesbar markiert wurde und nicht erneut schreibbar eingehangt werden kann (bis die Fehler behoben wurden). Einige Dateisysteme liefern bei einem Versuch, ein nur lesbares Dateisystem einzuhangen, stattdessen den Fehler EROFS. EACCES Das Blockgerat Quelle befindet sich auf einem Dateisystem, das mit der Option MS_NODEV eingehangt wurde. EBUSY Es wurde versucht, eine neue Einhangung auf einen existierenden Einhangepunkt, der in diesem Einhangenamensraum mit den gleichen Quelle und Ziel erzeugt worden war, zu stapeln. EBUSY Quelle kann nicht nur-lesend neu eingehangt werden, da dort immer noch Dateien zum Schreiben offen sind. EFAULT Eines der Zeiger-Argumente zeigt ausserhalb des Adressraums der Benutzer. EINVAL Quelle hat einen ungultigen Superblock. EINVAL Eine Neueinhangungsaktion (MS_REMOUNT) wurde versucht, aber Quelle war nicht bereits auf Ziel eingehangt. EINVAL Eine Verschiebeaktion (MS_MOVE) wurde versucht, aber der Einhangebaum unter Quelle enthalt nicht bindbare Einhangungen und Ziel ist eine Einhangung, die den Ausbreitungstyp MS_SHARED hat. EINVAL Eine Verschiebeaktion (MS_MOVE) wurde versucht, aber die Elterneinhangung von Quelle hat den Ausbreitungstyp MS_SHARED. EINVAL Eine Verschiebeaktion (MS_MOVE) wurde versucht, aber Quelle war keine Einhangung oder war >>/<<. EINVAL Es wurde eine Bind-Aktion (MS_BIND) angefordert, wobei Quelle sich auf einen magischen Einhangenamensraum-Link bezog (d.h. einen magischen Link /proc/PID/ns/mnt oder eine Bind-Einhangung auf solch einen Link) und der Ausbreitungstyp der ubergeordneten Einhangung von Ziel war MS_SHARED, aber die Ausbreitung der angeforderten Bind-Einhangung konnte zu einer zirkularen Abhangigkeit fuhren, die verhindern konnte, dass der Einhange-Namensraum jemals wieder freigegeben werden konnte. EINVAL mountflags enthalt mehr als einen aus MS_SHARED, MS_PRIVATE, MS_SLAVE und MS_UNBINDABLE. EINVAL mountflags enthalt MS_SHARED, MS_PRIVATE, MS_SLAVE oder MS_UNBINDABLE und enthalt auch einen von MS_REC oder MS_SILENT verschiedenen Schalter. EINVAL Es wurde versucht, ein nicht-bind-einhangbare Einhangung bind-einzuhangen. EINVAL In einem nicht privilegierten Einhangenamensraum (d.h. einem Einhangenamensraum, der einem Benutzernamensraum gehort, der durch einen nicht privilegierten Benutzer erstellt wurde) wurde eine Bind-Einhangeaktion (MS_BIND) ohne Angabe von (MS_REC) versucht, womit der Dateisystembaum unterhalb einer der Untereinhangungen des Bind-eingehangten Verzeichnisses offengelegt worden ware. ELOOP Bei der Auflosung des Pfadnamens wurden zu viele Links gefunden. ELOOP Es wurde eine Verschiebeaktion versucht und Ziel liegt unterhalb von Quelle. EMFILE (Falls kein blockorientiertes Gerat benotigt wird:) Die Tabelle der Platzhaltergerate ist voll. ENAMETOOLONG Ein Pfadname war langer als MAXPATHLEN. ENODEV Der Dateisystemtyp ist nicht im Kernel konfiguriert. ENOENT Ein Pfadname war leer oder hatte eine nichtvorhandene Komponente. ENOMEM Der Kernel konnte keine freie Seite reservieren, um Dateinamen oder Daten hinein zu kopieren. ENOTBLK Die Quelle ist kein blockorientiertes Gerat (und ein Gerat war erforderlich). ENOTDIR Das Ziel oder ein Prafix der Quelle ist kein Verzeichnis. ENXIO Die Major-Nummer des blockorientierten Gerates Quelle liegt ausserhalb des Bereichs. EPERM Der Aufrufende verfugt nicht uber die erforderlichen Rechte. EPERM Es wurde versucht, die Schalter MS_RDONLY, MS_NOSUID oder MS_NOEXEC oder einen der >>atime<<-Schalter (MS_NOATIME, MS_NODIRATIME, MS_RELATIME) einer existierenden Einhangung zu verandern (MS_REMOUNT), aber die Einhangung ist gesperrt; siehe mount_namespaces(7). EROFS Es wurde versucht, ein nur-lesbares Dateisystem einzuhangen, ohne den Schalter MS_RDONLY zu verwenden. Siehe EACCES oben. STANDARDS Linux. GESCHICHTE 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. Seit Linux 2.4 kann ein einzelnes Dateisystem an mehreren Einhangepunkten eingehangt sein und mehrere Einhangungen konnen auf dem gleichen Einhangepunkt gestapelt werden. Das Argument Einhangeschalter 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 Einhangeschalter.). In Linux-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 hinzugefugt wurde. Vor Linux 2.4 wurde ein Versuch, ein Set-User-ID- oder Set-Group-ID-Programm auf einem Dateisystem auszufuhren, das mit MS_NOSUID eingehangt 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. ANMERKUNGEN Einhange-Namensraume Seit Version 2.4.19 stellt Linux Einhange-Namensraume bereit. Ein Einhange-Namensraum ist eine Zusammenstellung von eingehangten Dateisystemen, die fur einen Prozess sichtbar sind. Einhangepunkt-Namensraume konnen (und werden gewohnlich) gemeinsam von mehreren Prozessen benutzt und Anderungen am Namensraum (d.h. Ein- und Aushangen) durch einen Prozess sind fur 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 wurde.) Ein Kindprozess, der durch fork(2) erzeugt wurde, nutzt den Einhangenamensraum seines Elternprozesses; der Einhangenamensraum wird uber ein execve(2) beibehalten. Ein Prozess kann einen privat eingehangten 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 Einhange-Namensraum des Aufrufenden eine private Kopie des Namensraums erhalt, der vorher mit anderen Prozessen gemeinsam benutzt wurde, so dass zukunftiges Ein- und Aushangen durch den Aufrufenden fur andere Prozesse unsichtbar ist (ausser Kindprozesse, die der Aufrufende hinterher erzeugt) und umgekehrt. Fur weitere Details uber Einhange-Namensraume, siehe mount_namespaces(7). Elterliche Beziehung zwischen Einhangungen Jede Einhangung hat eine Eltern-Einhangung. Die allgemeine elterliche Beziehung aller Einhangungen definiert die einzelne Verzeichnishierarchie, wie sie Prozesse innerhalb eines Einhange-Namensraums sehen. Die Eltern-Einhangung einer neuen Einhangung wird definiert, wenn die Einhangung erstellt wird. Ublicherweise ist die Eltern-Einhangung einer neuen Einhangung die Einhangung des Dateisystems, welches das Verzeichnis oder die Datei enthalt, an dem oder der die neue Einhangung geschieht. In dem Fall, in dem der Eltern-Einhangepunkt einer neuen Einhangung uber die oberste Ebene einer existierenden Einhangung gesetzt wird, ist der Eltern-Einhangepunkt der neuen Einhangung die vorherige Einhangung, die an diesem Ort gesetzt war. Die elterliche Beziehung zwischen Einhangungen konnen Sie in der Datei /proc/PID/mountinfo herausfinden (siehe unten). /proc/pid/mounts und /proc/pid/mountinfo Die Linux-spezifische Datei /proc/PID/mounts legt die Liste der Einhangungen in dem Einhangenamensraum des Prozesses mit der festgelegten Kennung offen. Die Datei /proc/PID/mountinfo legt sogar weitere Informationen uber Einhangungen offen, einschliesslich des Ausbreitungstyps und der Einhangekennungsinformation, die es ermoglichen, die Eltern-Kind-Beziehungen zwischen Einhangungen zu ermitteln. Siehe proc(5) und mount_namespaces(7) fur Details uber diese Dateien. SIEHE AUCH mountpoint(1), chroot(2), ioctl_iflags(2), mount_setattr(2), pivot_root(2), umount(2), mount_namespaces(7), path_resolution(7), findmnt(8), lsblk(8), mount(8), umount(8) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Patrick Rother , Chris Leick , Mario Blattermann und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.06 31. Oktober 2023 mount(2)