[[Vorlage(Getestet, general)]] {{{#!vorlage Wissen [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] [:Rechte: Rechte für Dateien und Ordner ändern] [:Pakete installieren: Installation von Programmen] }}} [[Inhaltsverzeichnis(2)]] [[Vorlage(Fehlerhaft, "Das Verhalten des Befehls `mount` bei der Auswertung der Optionen `user` und `users` hat sich ab Ubuntu 22.04 geändert. Siehe Manpage zu mount und [post:9420685: Diskussion in der Artikeldiskussion zu NTFS-3G]." ) ]] = Dateisysteme einbinden = In Linux müssen auf internen oder externen [:Datenverwaltung#Datentraeger.Datenspeicher:Datenträgern] befindliche [:Dateisystem:Dateisysteme] in das System eingebunden werden. Man spricht hier auch von "Aufsetzen", "Einhängen" oder "Mounten" eines Dateisystems. Bei den Desktop-Umgebungen [:GNOME:] und [:KDE:] ist das [:Datenverwaltung#Geraete-zugreifbar-machen-Das-Einhaengen:Einhängen] von Datenträgern per Mausklick möglich. Externe, über USB angeschlossene Datenträger werden bei jedem Systemstart oder beim Einstecken im laufenden Betrieb ("HotPlug") erkannt und eingebunden (siehe [:udev:]). Auch andere Datenträger werden automatisch in das System eingebunden, und man braucht sich normalerweise nicht selbst darum zu kümmern. Eine gewisse Grundkenntnis zu mount ist jedoch durchaus vorteilhaft, da z.B. nicht immer alle [#Windowspartition Windowslaufwerke] richtig eingebunden werden. Außerdem unterstützen nicht alle Live-CDs (Rettungs-CDs) das automatische Einbinden von Laufwerken bzw. Datenträgern. "mount" (einhängen) und "[#Dateisysteme-aushaengen umount]" (aushängen) werden über das Paket '''mount''' bereitgestellt und sind Bestandteil jeder Standardinstallation. {{{#!vorlage Hinweis In manchen Fällen verwendet `mount` weitere Hilfsprogramme mit teilweise eigenen Optionen. Näheres dazu findet man in der [:man:Man-Page] von mount. }}} ==Statisches, temporäres und dynamisches Einbinden == === Statisches Einbinden === Partitionen, die beim Installieren von Ubuntu bereits verfügbar sind, können durch einen automatisch erstellten Eintrag in der Datei [:fstab:/etc/fstab] so ins System eingebunden werden, dass sie immer gleich nach dem Systemstart verfügbar sind. Entsprechende Einträge können auch nachträglich noch von Hand vorgenommen werden. Man spricht hier von "statischem Einbinden" oder von "statischem Mounten". === Temporäres Einbinden === Von "temporärem Einbinden" oder "temporärem Mounten" spricht man dann, wenn der Datenträger im laufenden Betrieb nach Bedarf ein- und wieder ausgehängt werden kann. Je nach Gerät sind unterschiedliche Möglichkeiten sinnvoll: * Wechseldatenträger (z.B. CD-ROM, DVD, Disketten): Hier sollte das Einbinden per '''/etc/fstab''' und Nutzen der [:mount#Optionen:Option] `noauto` erfolgen * Andere Datenträger: Hierbei kann man für alle nicht benötigten Datenträger auf einen Eintrag in '''/etc/fstab''' verzichten. Zu diesen Datenträgern gehören z.B. nicht benötigte Festplattenpartitionen anderer Betriebssysteme/Distributionen oder externe Festplatten. === Dynamisches Einbinden === Die in den Desktop-Umgebungen [:GNOME:], [:Unity:], [:Xfce:] und [:LXDE:] standardmäßig verwendeten Dateimanager bieten die Möglichkeit, noch nicht eingehängte Dateisysteme, für die auch kein vorbereitender Eintrag in '''/etc/fstab''' besteht, beim ersten Zugriffsversuch "mittels Mausklick" automatisch einzuhängen. Man spricht dann von "dynamischem Einbinden" oder "dynamischen Mounten". Dies geschieht dann jedoch nicht mit Root-Rechten mittels "mount", sondern mit dem virtuellen Dateisystem GVFS im Userspace. Dies ist Gegenstand eines eigenen Artikels [:gio mount:]. Auch die Desktop-Umgebung [:KDE:] bietet ähnliche Möglichkeiten zum dynamischen Einbinden. === Automount === Von "Automount" spricht man dann, wenn Partitionen bei einem Zugriffsversuch automatisch temporär eingebunden (gemountet) und dann auch automatisch wieder ausgehängt werden, wenn über eine bestimmte Zeit kein Zugriff mehr erfolgt. Dies ist mit Zusatzprogrammen (z.B. [:Autofs:]) möglich. = Nutzung von mount = == Anzeige der eingehängten Datenträger == Wird der Befehl `mount` alleine eingegeben, werden die eingehängten Datenträger zeilenweise ausgegeben. Mit der Option `-l` wird am Ende jeder Zeile in eckigen Klammern zusätzlich das [:Labels:Label] angezeigt (falls vorhanden): {{{#!vorlage Befehl mount -l }}} {{{#!code text /dev/sda10 on / type ext3 (rw,errors=remount-ro) proc on /proc type proc (rw) none on /sys type sysfs (rw,noexec,nosuid,nodev) udev on /dev type tmpfs (rw,mode=0755) [... weitere systemrelevante Dateisysteme ...] /dev/sda11 on /home type ext3 (rw) [User904] /dev/sda5 on /media/Daten type vfat (rw,utf8,umask=007,gid=46) [DATEN] /dev/sdc1 on /media/disk type vfat (rw,nosuid,nodev,uhelper=hal,uid=1000,utf8,shortname=mixed,flush) [] /dev/sr0 on /media/cdrom0 type iso9660 (ro,nosuid,nodev,utf8,user=kaputtnik) [Debian 5.0.3 i386 Bin-1] }}} Zeile 6 zeigt z.B die eingehängte '''/home'''-Partition, Zeile 8 einen angeschlossenen und eingehängten USB-Stick und in der letzten Zeile eine eingelegte CD. {{{#!vorlage Hinweis Es ist möglich, dass Dateisysteme, die auf eine andere Art (d.h. nicht über den Befehl mount oder einen Eintrag in '''/etc/fstab''') eingebunden wurden, dabei nicht angezeigt werden. Vielleicht hilft dann aber [:Systeminformationen_ermitteln#Festplatten:Systeminformation ermitteln] weiter. }}} == Datenträger einhängen == === Syntax === Die Syntax von mount hängt davon ab, ob für den Datenträger ein Eintrag in '''/etc/fstab''' besteht oder nicht; von den Optionen in diesem Eintrag hängt es ggf. auch ab, ob für die Befehle Root-Rechte (siehe [:sudo:]) nötig sind. Besteht kein Eintrag in der '''/etc/fstab''', müssen in der mount-Befehlszeile alle Parameter, das Gerät und der Einhängepunkt angegeben werden. Da außerdem in diesem Fall __grundsätzlich Root-Rechte__ nötig sind, lautet die Syntax von mount dann folgendermaßen [1]: {{{#!vorlage Befehl # allgemein: sudo mount [Parameter] Gerät Einhängepunkt # Beispiel: sudo mount -t ntfs -o umask=007,gid=046,uid=0,nls=utf8 /dev/sda1 /media/winxp }}} Wie das Beispiel zeigt, kann dies eine recht lange Befehlszeile ergeben, die dann bei jedem temporären Einbinden einzugeben ist. Bei häufiger gebrauchten Geräten ist es deshalb besser, das temporäre Einbinden durch einen Eintrag in '''/etc/fstab''' vorzubereiten, bei dem das automatische Einbinden beim Systemstart über die Option `noauto` unterbunden wird. Alle Parameter werden dann dort fest eingetragen. Mit einer der Optionen `user` oder `users` kann zudem das Einbinden ohne Root-Rechte erlaubt werden: {{{ #Beispieleintrag in /etc/fstab: UUID=8A4831E44831CFA5 /media/winxp ntfs umask=007,gid=46,uid=0,nls=utf8,noauto,users 0 0 }}} Die obige Befehlszeile vereinfacht sich dann zu {{{#!vorlage Befehl # allgemein: mount #Beispiel: mount /media/winxp }}} == Befehlszeilenoptionen == === Parameter === Eine vollständige Übersicht zu den Parametern findet man in den [:man:Man-Pages] zu mount. Die folgende Tabelle führt nur die gängigsten auf: {{{#!vorlage Tabelle <-2 rowclass="titel">Parameter von mount +++ Parameter Beschreibung +++ `-a` Es werden alle Geräte bzw. Dateisysteme eingehängt, die in der Datei [:fstab:/etc/fstab] ohne die Option `noauto` aufgeführt sind. Dies wird standardmäßig beim Systemstart durchgeführt. +++ `-o Option` Übergibt weitere [#Optionen Optionen] an `mount`, mit denen das Verhalten des eingehängten Dateisystems sehr detailliert festgelegt werden kann. +++ `-B` Remount von Verzeichnissen so, dass sie an beiden Orten verfügbar sind (entspricht `--bind` oder `-o bind`). +++ `-M` Remount von Verzeichnissen so, dass sie nur noch am neuen Ort verfügbar sind (entspricht `--move` oder `-o move`). +++ `-t Typ` Es wird der Typ des einzuhängenden Dateisystems definiert. mount kennt alle gängigen Dateisysteme sowie einige "Exoten". Einige Typen sind z.B.: ext, ext2, ext3, ext4, reiserfs, nfs, iso9660 (für CDs), udf (für DVDs), vfat (=FAT32), NTFS uvm. Eine vollständige Übersicht findet man in der [:man:Man-Page]. +++ `-f` Simuliert die Durchführung von mount, der Befehl wird nicht wirklich ausgeführt. }}} === Gerät === {{{#!vorlage Hinweis Dieser Abschnitt hat keine Gültigkeit für das Einbinden von [#Einzelne-Ordner-einbinden einzelnen Ordnern]. }}} Für `` (engl. "device") kann eine Gerätedatei angegeben werden, mittels derer auf das einzuhängende Dateisystem zugegriffen werden kann. Die vom System erkannten und benutzbaren Datenträger sind dabei als Datei im Verzeichnis [:Verzeichnisstruktur#dev:/dev] aufgeführt, z.B. '''/dev/sda1''' oder '''/dev/scd0'''. Eine Einführung zu den Geräten unter Linux bieten die Artikel [:Datenverwaltung:] und - spezieller - [:Datenträger:]. Während man beim temporären Einbinden `` wie im obigen Beispiel angibt, verwendet man für die Einträge in der '''/etc/fstab''' vorzugsweise die [:UUID:] oder das [:Labels:Label] des entsprechenden Datenträgers. Mit dem Befehl {{{#!vorlage Befehl sudo blkid }}} werden für alle verfügbaren Festplatten-Partitionen sowohl der Eintrag in '''/dev''' als auch die UUID und, falls vorhanden, das Label angezeigt (siehe auch [:blkid:]). === Einhängepunkt === Um ein Dateisystem einhängen zu können, muss zuerst ein Einhängepunkt (mount point) vorhanden sein. Dies ist ein zunächst leerer Ordner, der sich prinzipiell in jedem Verzeichnis befinden kann. Über diesen Einhängepunkt wird dann später auf das eingehängte Dateisystem zugegriffen. Weil außer in '''/home/$USER''' neue Ordner nur mit Root-Rechten angelegt werden können, gibt man folgende Zeile in einem [:Terminal:] ein: {{{#!vorlage Befehl #allgemein: sudo mkdir Beispiel: sudo mkdir /media/winxp }}} Unter Ubuntu sind die Verzeichnisse '''/media''' oder '''/mnt''' üblich, wobei unter [:GNOME:] die unter '''/media''' eingehängten Dateisysteme auch auf dem Desktop angezeigt werden. Die Namen der Einhängepunkte sollten den darauf einzuhängenden Datenträger möglichst beschreiben. Dies soll verhindern, dass versehentlich mehrere Datenträger auf denselben Einhängepunkt eingehängt werden. Sollte dies geschehen, so kann auf den ersten Datenträger nicht mehr zugegriffen werden, da er durch das zweite Dateisystem überlagert wird! Eine Besonderheit bei Netzwerk-Dateisystemen: In manchen Fällen verwendet der Befehl `mount` dort Hilfsprogramme (z.B. [:mount.cifs:]), die verlangen, dass der Mountpunkt im Besitz desjenigen Benutzers ist, der einhängt. ## Überschrift geändert; Damit alte Verlinkungen noch funktionieren, hier ein Anker zur alten Überschrift: [[Anker(Rechte)]] = Dateisystemrelevante Rechte = Sind auf einem Datenträger bereits Dateien und Ordner mit eigenen [:Rechte:Rechten] vorhanden, so hängt es vom Dateisystem ab, wie diese berücksichtigt werden: * Linux-Dateisysteme (z.B. ext2, ext3, ext4, ReiserFS): Bestehende Rechte bleiben erhalten. Nach dem Einhängen können die Rechte in einem solchen Dateisystem mit den Befehlen [:chown:] und [:chmod:] verändert werden. * Windows-Dateisysteme (z.B. VFAT, [:exFAT:], [:NTFS:]): * Bei VFAT (FAT32) und exFAT ist eine echte Rechteverwaltung nicht möglich; eine solche wird deshalb lediglich simuliert. Hierfür sind [:mount#Windows-Dateisysteme:besondere Mountoptionen] vorgesehen. Die so festgelegten (simulierten) Rechte gelten dann immer für das gesamte Dateisystem. Die Zugriffsrechte lassen sich für einzelne Dateien zwar weiter einschränken, aber nicht erweitern. Solche Änderungen sind nur temporär, d.h., sie verfallen mit dem Aushängen. * NTFS wird standardmäßig wie VFAT behandelt. Der in Ubuntu verwendete Dateisystem-Treiber [:NTFS-3G:] erlaubt es aber auch, über die Mount-Optionen `permissions` und `acl` auf NTFS-Partitionen eine echte (beständige) Rechteverwaltung einzurichten, mit der sich diese wie Linux-Dateisysteme verhalten. Mehr zu den Besitz- und Zugriffsrechten dieser Dateisysteme findet sich im Artikel [:/Windows-Partitionen_einbinden#Generelle-Einschraenkungen:Windows-Partitionen einbinden]. = Optionen = Die [:man:Man-Page] listet alle möglichen Optionen auf, einen Überblick gibt die folgende Tabelle. Die mit (*) gekennzeichneten Optionen sind nur bei Einträgen in '''/etc/fstab''' verwendbar: {{{#!vorlage Tabelle <-2 rowclass="titel">Optionen +++ Option Beschreibung +++ `defaults` Das Gerät wird mit folgenden Optionen eingehängt: `rw`, `suid`, `dev`, `exec`, `auto`, `nouser`, `async` und `relatime`. +++ `atime` Access-TIME, Zugriffszeiten in der Inodetabelle speichern. Soll nicht mehr verwendet werden, sondern statt dessen `strictatime`. +++ `noatime` Gegenteil zu `atime`. Wer keine Zugriffszeiten wissen möchte, kann mit dieser Option Festplattenaktivitäten reduzieren, da nicht jedes Mal bei einem Dateizugriff die Inodetabelle aktualisiert werden muss. +++ `relatime` Modifiziertes `atime` um die [https://manpages.ubuntu.com/manpages/focal/de/man2/fsync.2.html `fsync`-Zugriffe] zu reduzieren (siehe `defaults`). Seit Linux Kernel 2.6.30 wird hiermit die Zugriffszeit [http://manpages.ubuntu.com/manpages/focal/de/man8/mount.8.html#contenttoc4 nur noch aktualisiert], wenn die aktuelle älter als die Inhalts- oder Statusänderungszeit oder älter als 1 Tag ist. +++ `sync` Nach jedem Schreibvorgang wird geflusht, also der Pufferinhalt sofort auf den Datenträger geschrieben. Das ist z.B. bei USB Memory Sticks sehr hilfreich, weil man sie somit nicht manuell aushängen muss (bei Automountsystemen). +++ `async` Es wird nicht immer direkt auf die Platte geschrieben, sondern es kann auch erst verspätet geschrieben werden (siehe `defaults`). Das ist effizienter, wenn z.B. mehrere Dateien gleichzeitig geschrieben werden sollen, kann aber beim Herausziehen von USB-Datenträgern zu Datenverlust führen, wenn vorher nicht ausgehängt wird. +++ `user` (*) Jeder Benutzer darf das Gerät mounten (hilfreich bei Wechseldatenträgern wie CD, DVD, etc.). Aushängen darf dann nur der Benutzer, der das Gerät eingehängt hat. +++ `nouser` (*) Nur `root` kann das Dateisystem ein- und aushängen (siehe `defaults`). +++ `users` (*) Jeder Benutzer darf das Gerät ein- und aushängen. +++ `auto` (*) Das Dateisystem wird beim Aufruf von `mount -a` und beim Start automatisch mit eingehängt (siehe `defaults`). Standard bei Einträgen in '''fstab'''. +++ `noauto` (*) Gegenteil zu `auto`. +++ `acl` Aktivierung der Access Control Lists (kurz [:ACL:]) zur Erweiterung des Linux-Rechtesystems. Seit [:Precise:Ubuntu 12.04] in ext3- und ext4-Dateisystemen Standard. +++ `ro` Das Dateisystem wird nur-lesend (read-only) eingehängt. +++ `rw` Das Dateisystem wird beschreibbar (read-write) eingehängt (siehe `defaults`). +++ `dev` Gerätedateien auf dem Dateisystem werden interpretiert (siehe `defaults`). +++ `nodev` Gegenteil zu `dev`. +++ `exec` Es können Binärdateien auf dem einzuhängenden Dateisystem ausgeführt werden (siehe `defaults`). +++ `noexec` Gegenteil zu `exec`. +++ `suid` Es können Programme mit gesetztem SetUID- oder SetGID-Bit auf dem eingehängten Dateisystem ausgeführt werden (siehe `defaults`). +++ `nosuid` Gegenteil zu `suid`. +++ `user_xattr` "extended user attributes"; wird z.B. für den calenderserver für erweiterte Dateioptionen benötigt. +++ `compress` Eine nützliche Option, die "nur" im [:Dateisystem:] [:Btrfs:] eingesetzt werden kann und in vielen Fällen Dateioperationen beschleunigt. Damit wäre eine Platzersparnis von fast 50% z.B. im '''/usr/'''-Verzeichnis möglich, daher optimal für das reine '''/''' Systemverzeichnis ohne [:Homeverzeichnis:]. [https://web.archive.org/web/20130729080620/http://kofler.info/blog/134/126/btrfs---Linux-Dateisystem-der-Zukunft/ Mehr] {de} +++ `remount` Aus- und wieder einhängen, um z. B. die Schreibrechte zu entziehen: "`remount,ro`" +++ `ssd` Kann "nur" im Dateisystem [:Btrfs:] gesetzt werden und dient zur Optimierung einer [:SSD:]-Festplatte. +++ `sw` [:Swap:] - Auslagerungsspeicher. +++ `_netdev` Das einzubindende Dateisystem befindet sich auf einem Device, das Netzwerkzugriff benötigt. Das Einbinden wird daher solange hinausgezögert, bis Netzwerkzugriff besteht. +++ `loop` Einbinden eines [wikipedia:Loop_device:Loop devices], also eines Blockgerätes, welches keinem physischen Gerät entspricht, sondern als zugrundeliegenden Speicher eine Datei nutzt, z.B. ein als Datei vorliegendes Dateisystem-Abbild wie ein [:mount#CD-Image:CD-Image]. +++ `x-gvfs-show` Laufwerk in der Benutzerschnittstelle anzeigen. +++ `nofail` Das Laufwerk wird bei "nicht vorhanden sein" (z.B. USB-Sticks, mobile Datenträger) übersprungen. Hilfreich, da sonst der Bootvorgang "hängen" bleibt, wenn der eingetragene Datenträger nicht vorhanden ist. }}} Die verschiedenen Optionen können miteinander kombiniert werden, indem man sie mit einem Komma (aber ohne Leerstelle) voneinander getrennt eingibt, also z.B.: `-o rw,suid,user` Weiterhin können die o.g. Optionen auch in der '''/etc/fstab''' benutzt werden, wobei `auto` und `noauto` nur dort sinnvoll sind. {{{#!vorlage Hinweis Bei Speichermedien mit einer begrenzeten Anzahl von Schreibzyklen (z.B. ssd, SD-Karte, USB-Stick) kann der Einsatz der Option ''sync'' die Lebensdauer verkürzen! }}} [[Anker(windows)]] = Besonderheiten = == Windows-Dateisysteme == Des Weiteren gibt es noch eine Vielzahl von Optionen, die spezifisch für das jeweilige Dateisystem sind. Für das Einhängen von Windows-Dateisystemen (also FAT (vfat), [:exFAT:] und [:NTFS:]) sind dies u.a.: {{{#!vorlage Tabelle <-2 rowclass="titel">Spezielle Optionen für Windows-Dateisysteme +++ Option Beschreibung +++ `umask=MASKE` Setzt indirekt die Zugriffsrechte für alle Dateien, indem die Verbote angegeben werden. `MASKE` ist eine dreistellige Zahl. Zur Unterscheidung von Dateien und Verzeichnissen kann stattdessen auch `fmask` und `dmask` verwendet werden. Wird keine dieser Optionen verwendet, gelten für interne Laufwerke (nicht für dynamisch eingehängte externe USB-Partitionen) folgende Standardwerte: FAT: `022`, NTFS: `000`. Zur Bedeutung der Ziffern siehe [:RechteMount#Standard-Einstellung-und-Maskierung: Rechte]. +++ `dmask=MASKE` Wie `umask`, jedoch nur für Ordner +++ `fmask=MASKE` Wie `umask`, jedoch nur für Dateien +++ `uid=UID` setzt den Eigentümer für alle Dateien. "`UID`" ist hierbei die ID des entsprechenden Benutzers (Zahlenwert oder Name). +++ `gid=GID` setzt die Gruppenzugehörigkeit für alle Dateien. "`GID`" ist hierbei ID der entsprechenden Gruppe (Zahlenwert oder Name). +++ `utf8` nur für FAT32 (`-t vfat`): es wird der UTF-8-Zeichensatz verwendet - kann dann notwendig werden, wenn Dateinamen Sonderzeichen oder Umlaute enthalten +++ `shortname=mixed` nur für FAT32 (`-t vfat`): kurze Dateinamen werden korrekt gespeichert +++ `codepage=850` nur für FAT32 (`-t vfat`): legt den westlichen Zeichensatz für kurze Dateinamen fest +++ `flush` nur für FAT32 (`-t vfat`): der Puffer-Inhalt wird, wenn möglich, früher übertragen als in der Standard-Einstellung +++ `nls=utf8` nur für NTFS: es wird der UTF-8-Zeichensatz verwendet - kann dann nötig werden, wenn Dateinamen Sonderzeichen oder Umlaute enthalten. Ist beim Treiber NTFS-3G Standard-Einstellung. +++ `nls=iso8859-1` alternativer Zeichensatz, falls es trotz UTF-8 zu Darstellungsfehlern kommt +++ `windows_names` nur für NTFS: Diese Option verhindert, dass Dateien, Verzeichnisse und erweiterte Attribute mit unter Windows nicht erlaubten Namen erstellt werden; entweder, weil sie unerlaubte Zeichen enthalten (die neun Zeichen `” * / : < > ? \ |` sowie Zeichen, deren Code weniger ist als 0×20), oder weil das letzte Zeichen ein Leerzeichen oder ein Punkt ist. Existierende einschlägige Dateien, Verzeichnisse und erweiterte Attribute können jedoch gelesen (und umbenannt) werden. Funktioniert nur mit dem Treiber NTFS-3G (in Ubuntu Standard). +++ `permissions` nur für NTFS: Auf der NTFS-Partition wird für Linux eine Verwaltung der [:Rechte:UNIX-Dateirechte] eingerichtet. Funktioniert nur mit dem Treiber NTFS-3G (in Ubuntu Standard). +++ `acl` für NTFS: Die Rechte-Verwaltung für Linux auf der NTFS-Partition wird auf die [:ACL:POSIX-ACL] ausgedehnt. Funktioniert mit dem Treiber NTFS-3G (in Ubuntu Standard). }}} Die Optionen `umask`, `uid` und `gid` simulieren nur für die Dauer der jeweiligen Sitzung eine temporäre Rechteverwaltung. Die Dateirechte werden nicht wirklich auf der Partition eingetragen. Die Optionen `permissions` und `acl` erzeugen hingegen auf der Partition eine echte, permanente Rechteverwaltung. Diese wird jedoch erst durch [:Windows-Partitionen einbinden/NTFS-3G#Windows-Kompatibilitaet:User-Mapping] mit der Rechteverwaltung unter Windows kompatibel. Die Optionen `permissions` und `acl` überschreiben ggf. die Optionen `umask`, `uid` und `gid`. {{{#!vorlage Hinweis Zum Einbinden von NTFS-Dateisystemen verwendet Ubuntu als Standard den Treiber [:Windows-Partitionen einbinden/NTFS-3G:NTFS-3G]. Ist dieser nicht verfügbar, wird ersatzweise das ältere NTFS-Kernelmodul verwendet. Die NTFS-Partition wird dann unabhängig von den gewählten Optionen ohne Schreibrechte (Modus ''ro'') eingebunden, und eine evtl. vorhandene Rechte-Verwaltung wird ignoriert. Seit Ubuntu 22.04 gibt es für NTFS ein neues Kernelmodul NTFS3 (nicht zu verwechseln mit NTFS-3G!) mit Schreib- und Lesezugriff. NTFS3 wird von Ubuntu nur dann verwendet, wenn dies mittels `mount -t ntfs3` ausdrücklich verlangt wird. Für NTFS3 gelten nicht die speziellen Mount-Optionen von NTFS-3G. }}} === Standard-Rechte-Einstellung bzw. unterschiedliche Rechte für Ordner und Dateien verwenden === Bei Windows-Dateisystemen werden per `umask` – anders als bei der [:Rechte#umask:Standard-Rechte-Einstellung] – die Rechte für Ordner und Dateien exakt gleich gesetzt. Möchte man aber für beide unterschiedliche Rechte, z.B. die Standardwerte für die Zugriffsrechte bei neu erstellten Ordnern und Dateien, setzen, so trägt man anstatt z.B. {{{ umask=0022 }}} dann {{{ dmask=0022,fmask=0133 }}} ein. === Mehrbenutzer-Systeme === Bei Mehrbenutzer-Systemen hat sich dabei folgende Kombination bewährt: {{{ uid=0,gid=46,umask=007 }}} Wird ein Windows-Dateisystem mit diesen Optionen eingebunden, so ist der Eigentümer aller Dateien der Benutzer "`root`" (`uid=0`), die Dateien werden der Gruppe "`plugdev`" zugewiesen (`gid=46`). Der Eigentümer hat keine Einschränkungen, genauso wenig die Mitglieder der Gruppe, und alle anderen haben keine Zugriffsrechte (`umask=007`). Dies gilt dann automatisch auch für neu angelegte Dateien oder für Dateien, die auf diese Partition kopiert werden. Es ist zu beachten, dass bei dieser Konfiguration beim Kopieren/Verschieben von Dateien/Ordnern die [:Windows-Partitionen_einbinden#Zeitstempel-gehen-verloren:Zeitstempel verloren] gehen können. Nun muss nur noch sichergestellt werden, dass diejenigen Nutzer, die auf die entsprechenden Dateisysteme voll zugreifen dürfen sollen, der Gruppe "`plugdev`" zugeordnet sind. Das ist standardmäßig für alle Benutzer der Fall. Wer die Gruppenzugehörigkeiten ändern möchte, kann dies im Terminal per [:chgrp:] durchführen oder auf die [:Benutzer_und_Gruppen#Werkzeuge-zur-Verwaltung-von-Benutzern-und-Gruppen:Werkzeuge zur Verwaltung von Benutzern und Gruppen] der großen [:Desktop:Desktopumgebungen] zurückgreifen. === Einbenutzer-System === Bei Einbenutzer-Systemen oder bei überwiegendem Zugriff durch denselben Benutzer empfiehlt es sich, die Partition nicht als Eigentum von "`root`", sondern als Eigentum dieses Benutzers einzubinden. Dafür ist dann statt "`uid=0`" die UID des Benutzers und statt "`gid=46`" die GID seiner Gruppe einzutragen (siehe Artikel [:Benutzer und Gruppen:]), z.B.: {{{ uid=1000,gid=1000 }}} Dadurch behalten die Dateien beim Kopieren und Verschieben ihr Datum. Außerdem hat diese Einstellung Vorteile bei der Freigabe von Dateien in einem Netzwerk. Nähere Informationen dazu sind im Artikel [:Windows-Partitionen_einbinden#Zeitstempel-gehen-verloren:Windows Partitionen einbinden] zu finden. == Virtuelle Netzwerkdateisysteme == Der Befehl `mount` kann auch zum Einbinden von Netzwerk-Laufwerken oder von einzelnen Freigaben in einem Samba- oder NFS-Netzwerk verwendet werden. Wenn das Paket '''cifs-utils''' bzw. '''NFS''' installiert ist, dann ruft er aber nur die jeweils eigenen Mount-Module `mount.cifs` (Samba) und `mount.NFS` (NFS) auf und übergibt diesen alle nötigen Daten und Optionen. Letztere stimmen teilweise, aber nicht vollständig mit den Optionen bei echten Dateisystemen überein. Nähere Einzelheiten siehe [:mount.cifs:] und [:NFS:] sowie die [:man:Manpage] `man mount.cifs` bzw. `man mount.NFS`. [1] Das echte Einhängen von Netzwerk-Laufwerken und -Freigaben in das lokale Dateisystem hat gegenüber anderen Arten des Zugriffs (siehe z.B. [:smbclient:], [:gio mount:], [:Samba_Client_GNOME:] oder [:Samba_Client_KDE:]) den Vorteil, dass dann alle Anwendungen ohne Einschränkungen oder Umwege auf die Freigaben genau wie auf lokale Dateien zugreifen können. {{{#!vorlage Hinweis Die Mount-Optionen `user` und `users` sind für cifs und NFS nur dann wirksam, wenn für die Module `mount.cifs` bzw. `mount.NFS` das SUID-Bit gesetzt ist. Um das damit verbundene Risiko zu vermindern, verlangen diese Module, dass der "mount point" im Besitz des Benutzers ist, der den "mount" ausführt. }}} Beim Einhängen von SMB-Netzwerklaufwerken wird ab Ubuntu 17.10 Artful Aardvark (bzw. ab Version 6.7 von mount.cifs) nicht mehr standardmäßig Version 1.0 des SMB-Protokolls verwendet. Bei Geräten, die nur diese alte Protokollversion beherrschen, muss man nun beim Einhängen die zusätzliche Option `vers=1.0` explizit angeben. Dies betrifft z.B. alte FritzBoxen bis FritzOS Version 7.20, für die man einen Befehl dieser Art verwenden kann: {{{#!vorlage Befehl sudo mount -t cifs -o username=XXX,password=YYY,vers=1.0 //fritz.nas/FREIGABE MOUNTPOINT }}} Die Platzhalter `XXX`, `YYY`, `FREIGABE` und `MOUNTPOINT` sind natürlich durch die lokal gültigen Werte zu ersetzen. Benutzername und Passwort können auch in einer Datei mit folgendem Inhalt vorgehalten werden: {{{ username=XXX password=YYY }}} Diese Datei darf nur durch [:root:] lesbar sein; von einer Ablage der Datei im Home-Verzeichnis wird abgeraten. {{{#!vorlage Befehl sudo mount -t cifs -o credentials=/etc/smbcredentials,vers=1.0 //192.168.178.1/FREIGABE MOUNTPOINT }}} Aktuelle Fritzboxen ab FritzOS Version 7.28 arbeiten mit SMBv2/3 und haben SMBv1 deaktiviert. Bei diesen darf die Option `vers=1.0` nicht verwendet werden und auch andere Restriktionen wie z.B. `vers=2.0` sollte man vermeiden. Dafür kann aber die optionale Option `noserverino` hilfreich wirken. Anstatt `mount` jedes mal manuell ausführen zu müssen, kann man auch eine der folgenden Zeilen in '''/etc/fstab''' hinterlegen: {{{ //192.168.178.1/FREIGABE /media/FREIGABE cifs _netdev,rw,noauto,users,vers=1.0,credentials=/etc/smbcredentials 0 0 //192.168.178.1/FREIGABE /media/FREIGABE cifs _netdev,rw,noauto,users,credentials=/etc/smbcredentials,noserverino 0 0 }}} Dann erscheint im Dateimanager unter Netzwerk der Eintrag FREIGABE zum anklicken. Im Klartext lesbare Anmeldeinformationen sollte man nicht in der global lesbaren Datei '''/etc/fstab''' ablegen, daher sind hier die Optionen `username` und `password` zu vermeiden! == Einzelne Ordner einbinden == {{{#!vorlage Hinweis Dieser Abschnitt wendet sich vor allem an fortgeschrittene Benutzer }}} Normalerweise verwendet man den Befehl `mount`, um ganze Partitionen oder Dateisysteme einzubinden. In Verbindung mit dem Parameter `--bind` oder `-B` lassen sich auch einzelne Ordner oder Dateien eines Dateisystems zusätzlich noch an einem eigens dafür eingerichteten besonderen Mountpunkt einhängen. Der Ordner oder die Datei bleiben dabei innerhalb des ersten eingebundenen Dateisystems unverändert bestehen. Das Verfahren hat Ähnlichkeit mit einem [:ln#Symbolische-Verknuepfungen:symbolischen Link] ("Symlink"), ist aber nicht damit identisch. Folgende Unterschiede sind zu beachten: * Im Gegensatz zu einem Symlink kann ein mit `mount --bind` eingehängtes Verzeichnis nicht mit `rm` oder `rmdir` gelöscht werden, auch nicht mit Root-Rechten. Man kann es lediglich mit `umount` wieder aushängen. * Ein mit `mount --bind` temporär eingebundener Ordner wird beim Herunterfahren des Systems ausgehängt und ist nach einem Neustart nicht automatisch wieder sichtbar. * Gewisse Einschränkungen für Symlinks in Netzwerk-Freigaben gelten nicht für mit `mount --bind` eingehängte Ordner (siehe z.B. [:mount.cifs:]). Syntax: {{{#!vorlage Befehl # Allgemein: sudo mount --bind / # alternativ: sudo mount -o bind / # Beispiel: sudo mount --bind /media/Daten/Downloads /home/Max/Downloads }}} Die Option `bind` lässt sich entsprechend auch statisch bei Einträgen in [:fstab#Einzelne-Ordner-einhaengen:fstab] verwenden. Ähnlich wie `mount --bind` wirkt `mount --move` bzw. `-M`, nur dass in diesem Fall dann der entsprechende Ordner nur noch am neuen Mountpunkt und nicht mehr am Ausgangspunkt erscheint. = Dateisysteme aushängen = Beim [:Herunterfahren:] („Shutdown“) des Systems werden alle eingebundenen internen und externen Datenträger automatisch korrekt ausgehängt. Manchmal möchte man jedoch einen [:Datenträger:] im Betrieb wieder aushängen. Insbesondere bei externen Datenträgern ist dies nötig, wenn man sie bei laufendem Rechner entfernen möchte. == umount == Um ein Dateisystem wieder auszuhängen, existiert der Befehl `umount`. Dabei sind genau die gleichen Rechte nötig, mit denen das Dateisystem auch eingebunden wurde. Das automatische Einhängen externer Geräte geschieht meist ohne, das Einhängen von Hand dagegen häufig mit Root-Rechten. Im letzteren Fall lautet die Befehlszeile: {{{#!vorlage Befehl # Allgemein: sudo umount # alternativ sudo umount # Beispiel: sudo umount /dev/sda1 }}} == Aushängen via GUI == Datenträger und Geräte, die __ohne Root-Rechte__ eingehängt wurden, kann man in den grafischen Oberflächen GNOME und KDE auch per Mausklick aushängen. = Beispiele = Im Folgenden einige Beispiele zur Verwendung von mount. In einigen Fällen wird dabei auf Beispiele in anderen Artikeln verwiesen, wo der Befehl `mount` ebenfalls eingesetzt wird. == USB-Stick == In diesem Beispiel wird ein FAT32-formatierter USB-Stick (Gerät '''/dev/sdb''') nur-lesend in das Verzeichnis '''/media/usbstick''' eingehängt: {{{#!vorlage Befehl mount -t vfat -o ro /dev/sdb1 /media/usbstick }}} Standardmäßig werden zu schreibende Daten zwischengespeichert und erst beim Aushängen auf den Datenträger geschrieben. Deshalb müssen beschreibbare externe Datenträger grundsätzlich korrekt ausgehängt werden, bevor man sie entfernen darf. Eine sichere, aber deutlich langsamere Alternative ist die Option sync. == Windowspartition == Im folgenden Beispiel wird eine NTFS-Partition auf '''/dev/sda1''' in das Verzeichnis '''/media/winxp''' eingehängt: {{{#!vorlage Befehl mount -t ntfs -o umask=007,gid=046,uid=0 /dev/sda1 /media/winxp }}} Möchte man das Dateisystem lieber nur zum Lesen einhängen, so verwendet man einen der folgenden Befehle: {{{#!vorlage Befehl mount -t ntfs -o umask=227,gid=046,uid=0 /dev/sda1 /media/winxp }}} {{{#!vorlage Befehl mount -t ntfs -o ro,gid=046,uid=0 /dev/sda1 /media/winxp }}} == CD-Image == In diesem Beispiel wird gezeigt, wie man eine Image-Datei (hier die Datei '''~/loop_image.img''') per Loop-Mount einhängt. Anschließend kann auf das Image wie auf eine normale Partition oder ein CD-/DVD-Laufwerk zugegriffen werden. {{{#!vorlage Befehl sudo mount -o loop ~/loop_image.img /media/loop_mount }}} == Festplatten-Image == Partitionen aus einem per dd (Siehe [:Shell/dd:]) angelegten Image einer kompletten Festplatte lassen sich nicht ohne Weiteres einhängen. In [:Shell/dd#Partition aus einem Image der gesamten Platte einbinden:] wird erklärt, wie man den Offset einer Partition innerhalb eines Images manuell berechnen kann, um anschließend das gewünschte Image einzuhängen. Das Ganze geht mit folgendem Skript auch automatisch. {{{#!code bash #!/bin/bash #---------------------------------------------------------------------- # Author: haveaniceday # Version: 1, Last updated: 12/2007 #---------------------------------------------------------------------- # fdisk finden PATH="/sbin:$PATH" if [ $# -lt 1 ] then echo "usage: ${0##*/} " exit 1 fi IMAGE=$1 if [ ! -f $IMAGE ] then echo "Warnung, $IMAGE ist kein File" fi # tr -d '*' => bootflag entfernen LANG=C fdisk -lu $IMAGE 2>&1 | tr -d '*' | grep "$IMAGE[a-z0-9]" | while read part start end blocks id rest do echo echo "$read $part $start $end $blocks $id $rest" case $id in 5|f|85) echo "Ignoriere extended partition" continue ;; 82) echo "Ignoriere Swap" continue ;; *) ;; esac offset=$(($start*512)) echo mount -o loop,ro,offset=$offset $IMAGE /mnt done exit 0 }}} An ein aufgerufenes Image gibt das Skript anschließend den Mount-Befehl inklusive Offset aus. == Festplatten-Image mit LVM == Enthält das Festplatten-Image Volume Groups (VG) mit Logical Volumes (LV) (siehe [:Logical_Volume_Manager:]) muss man zunächst die gewünschte Partition des Image als Loop Device einbinden. Danach muss ggf. die VG aktiviert werden und die enthaltenen Logischen Volumes können anschließend eingebunden werden. Gegebenenfalls muss zunächst das Paket '''lvm2''' installiert werden (siehe [:Logical_Volume_Manager/#Installation:]). Als erstes wird die gewünschte Partition des Image mittels `losetup` als loop device eingebunden. Im Beispiel als '''/dev/loop44'''. Dazu stellt man sicher, dass ein beliebiges Loop Device noch nicht existiert, z.B. '''/dev/loop44'''. Der folgende Befehl sollte keine Zeile mit '''/dev/loop44''' ausgeben. Ansonsten muss man eine andere Zahl ausprobieren. Man kann den Befehl natürlich auch ohne `|grep loop44` ausführen und sich eine freie Zahl aussuchen, mit `grep` kann man sich aber sicher sein, nichts zu übersehen. {{{#!vorlage Befehl sudo losetup --all |grep loop44 }}} Dann wird der Beginn der gewünschten Partition auf dem Image ermittelt {{{#!vorlage Befehl sudo fdisk -l /Pfad/zum/Image }}} Die Ausgabe enthält die Sektorengröße (z.B. 512 bytes) und den Startpunkt der Partitionen. Daraus lässt sich der Offset berechnen, damit auch nur die gewünschte Partition eingebunden wird: Sektorengröße x Partitionsstart = offset (z.B. 987654321) Nun kann man die Partition als Loop Device einbinden: {{{#!vorlage Befehl sudo losetup -o 987654321 /dev/loop44 /Pfad/zum/Image }}} Die enthaltenen Volume Groups sollten nun bereits als '''/dev/vg_name '''sichtbar sein. Sie lassen sich auch mit dem Befehl `pvs` anzeigen. In diesem Beispiel enthält die eingebundene Partition die VG "vg_name". {{{#!vorlage Befehl user@computer:~$ sudo pvs /dev/sdc: open failed: No medium found /dev/sdd: open failed: No medium found /dev/sde: open failed: No medium found /dev/sdf: open failed: No medium found /dev/sdc: open failed: No medium found /dev/sdd: open failed: No medium found /dev/sde: open failed: No medium found /dev/sdf: open failed: No medium found PV VG Fmt Attr PSize PFree /dev/loop44 vg_name lvm2 a-- <931,01g 0 }}} Gegebenenfalls müssen die VG mit dem Befehl `vgchange` aktiviert werden, um als '''/dev/vg_name''' im Dateisystem zu erscheinen. {{{#!vorlage Befehl sudo vgchange -a y vg_name }}} Mittels `ls` kann man die enthaltenen Logical Volumes anzeigen lassen. {{{#!vorlage Befehl user@computer:~$ ls /dev/vg_name/ root swap_1 }}} Zum mounten kann man sich einen neunen Mountpoint erstellen und das LV einbinden. {{{#!vorlage Befehl sudo mkdir /Pfad/zum/neuen/Mountpoint #ggf Mountverzeichnis erstellen sudo mount -o ro /dev/vg_name/lv_name /Pfad/zum/neuen/Mountpoint/ }}} == RAM-Disks == Diverse Beispiele hierzu findet man im Artikel [:RAM-Disk_erstellen:]. == Ordner einbinden == In diesem Fall möchte man ein neues '''/usr'''-Verzeichnis anlegen und benutzt dafür den "Ordner" auf der "Partition": {{{#!vorlage Befehl mount --bind /PARTITION/ORDNER /usr }}} Um nun einen Ordner dauerhaft einzubinden, ist in die '''/etc/fstab''' folgende Zeile einzutragen: {{{#!vorlage Befehl /PARTITION/ORDNER /usr none bind 0 0 }}} Ein ausführliches Beispiel wird im Artikel [:udev:] anhand einer Musiksammlung auf externer Festplatte beschrieben. == Laufwerk nachträglich statisch einbinden == Hier geht es jetzt um ein Laufwerk, das neu und nachträglich in einen Rechner eingebaut wird. Ziel ist es, dass das Laufwerk im eigenen Home-Verzeichnis zur Verfügung steht. Zunächst muss man einen Mountpoint (hier: '''/mnt/data1''') für das Laufwerk anlegen. {{{#!vorlage Befehl sudo mkdir /mnt/data1 }}} Durch die Wahl des Verzeichnisses mnt wird kein Ikon auf dem Desktop generiert. Dann trägt man diesen Mountpoint in die Datei '''/etc/fstab''' ein und verknüpft das neue Laufwerk (hier sdax). Dazu kann man jeden Editor verwenden [2]. Sinnvollerweise legt man zunächst eine Sicherung der alten '''fstab''' (z.B. '''fstab.old''') an. Dann fügt man als letzte Zeile ein: {{{#!vorlage Befehl /dev/sdax /mnt/data1 ext4 defaults 0 2 }}} Nach einem Reboot ist das Laufwerk sichtbar und an den User `root` gebunden. Man hat also als USER noch keine Rechte. Das ändert man durch den folgenden Befehl im Terminal: {{{#!vorlage Befehl sudo chown -c $USER /mnt/data1 }}} Jetzt kann das Laufwerk von dem z.Zt. angemeldeten USER verwendet werden. Um es in sein Home-Verzeichnis einzubinden, wird noch die folgende Zeile als letzte in die fstab eingetragen: {{{#!vorlage Befehl /mnt/data1 /home/USER/data1 none bind 0 0 }}} Jetzt kann das Laufwerk im eigenen Home-Verzeichnis verwendet werden. = Problembehebung = == Umlaute in Dateinamen == Sorgen Umlaute in Dateinamen für Probleme, hilft es nur noch, diese zu korrigieren. Dazu gibt es ein kleines Skript, welches dieses automatisch durchführen kann: [sourceforge:umlaute:] == Programme und Skripte werden trotz Option `exec` nicht ausgeführt == {{{#!vorlage Warnung Die Ausführung von Programmen und Skripten von Wechseldatenträgern ist ein Sicherheitsrisiko! }}} Die Option `exec` muss nach der Option `user` bzw. `users` angegeben werden, da ansonsten automatisch die Optionen `noexec`, `nosuid` und `nodev` gesetzt werden. Die Angabe der Option an einer späteren Position überschreibt die Default-Option. = Links = *[:fstab:] - Aufbau und Einträge der Datei '''/etc/fstab''' *[:gio mount:] - Geräte und Netzwerk-Dateisysteme mittels GVFS im Userspace einbinden *[:Autofs:] - Partitionen und Wechseldatenträger automatisch ein- und aushängen *[:Automount:] - Automount *[:Windows-Partitionen einbinden:] - Einbinden von FAT- und NTFS-Partitionen *[:Windows-Partitionen einbinden/NTFS-3G:NTFS-3G] - Der standardmäßig verwendete Dateisystemtreiber für NTFS *[:mount.cifs:] - Windows- und Samba-Freigaben statisch und temporär einbinden *[:NFS:] - Das beliebte Netzwerk-Protokoll für Linux in der Version 2/3 *[:NFSv4:] - Das beliebte Netzwerk-Protokoll für Linux in der Version 4 *[:Externe Laufwerke statisch einbinden:] - Besonderheiten beim statischen Einbinden externer Datenträger *[:USB-Datenträger automatisch einbinden:] *[:CDEmu:] - Image-Dateien (auch proprietäre) als virtuelles CD-Laufwerk einbinden # tag: Shell, System, Dateisystem