ubuntuusers.de

mount

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Dateisysteme einbinden

In Linux müssen auf internen oder externen Datenträgern befindliche 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 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 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 "umount" (aushängen) werden über das Paket mount bereitgestellt und sind Bestandteil jeder Standardinstallation.

Hinweis:

In manchen Fällen verwendet mount weitere Hilfsprogramme mit teilweise eigenen Optionen. Näheres dazu findet man in der 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 /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 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 Label angezeigt (falls vorhanden):

mount  -l 

1
2
3
4
5
6
7
8
9
/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.

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 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]:

# 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

# allgemein:
mount <Einhängepunkt>
#Beispiel:
mount /media/winxp 

Befehlszeilenoptionen

Parameter

Eine vollständige Übersicht zu den Parametern findet man in den Man-Pages zu mount. Die folgende Tabelle führt nur die gängigsten auf:

Parameter von mount
Parameter Beschreibung
-a Es werden alle Geräte bzw. Dateisysteme eingehängt, die in der Datei /etc/fstab ohne die Option noauto aufgeführt sind. Dies wird standardmäßig beim Systemstart durchgeführt.
-o Option Übergibt weitere 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-Page.
-f Simuliert die Durchführung von mount, der Befehl wird nicht wirklich ausgeführt.

Gerät

Hinweis:

Dieser Abschnitt hat keine Gültigkeit für das Einbinden von einzelnen Ordnern.

Für <Gerät> (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 /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 <Gerät> wie im obigen Beispiel angibt, verwendet man für die Einträge in der /etc/fstab vorzugsweise die UUID oder das Label des entsprechenden Datenträgers.

Mit dem 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:

#allgemein: 
sudo mkdir <Einhängepunkt>
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.

⚓︎

Dateisystemrelevante Rechte

Sind auf einem Datenträger bereits Dateien und Ordner mit eigenen 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 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.

Optionen

Die 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:

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 fsync-Zugriffe zu reduzieren (siehe defaults). Seit Linux Kernel 2.6.30 wird hiermit die Zugriffszeit 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 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. Mehr 🇩🇪
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 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 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.

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!

⚓︎

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

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 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 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 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 User-Mapping mit der Rechteverwaltung unter Windows kompatibel. Die Optionen permissions und acl überschreiben ggf. die Optionen umask, uid und gid.

Hinweis:

Zum Einbinden von NTFS-Dateisystemen verwendet Ubuntu als Standard den Treiber 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 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 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 Werkzeuge zur Verwaltung von Benutzern und Gruppen der großen 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 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 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.

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:

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.

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

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

# Allgemein:
sudo mount --bind <Einhängepunkt_1>/<Ordner> <Einhängepunkt_2>
# alternativ:
sudo mount -o bind <Einhängepunkt_1>/<Ordner> <Einhängepunkt_2>
# Beispiel:
sudo mount --bind /media/Daten/Downloads  /home/Max/Downloads 

Die Option bind lässt sich entsprechend auch statisch bei Einträgen in 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:

# Allgemein:
sudo umount <Gerät>
# alternativ
sudo umount <Einhängepunkt>
# 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:

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:

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:

mount -t ntfs -o umask=227,gid=046,uid=0 /dev/sda1 /media/winxp 
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.

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 (Abschnitt „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.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/bin/bash
#----------------------------------------------------------------------
# Author: haveaniceday
# Version: 1, Last updated: 12/2007
#----------------------------------------------------------------------

# fdisk finden 
PATH="/sbin:$PATH" 
if [ $# -lt 1 ] 
then 
        echo "usage: ${0##*/} <image>" 
        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 (Abschnitt „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.

sudo losetup --all |grep loop44  

Dann wird der Beginn der gewünschten Partition auf dem Image ermittelt

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:

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

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.

sudo vgchange -a y vg_name 

Mittels ls kann man die enthaltenen Logical Volumes anzeigen lassen.

user@computer:~$ ls /dev/vg_name/
root  swap_1 

Zum mounten kann man sich einen neunen Mountpoint erstellen und das LV einbinden.

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":

mount --bind /PARTITION/ORDNER /usr 

Um nun einen Ordner dauerhaft einzubinden, ist in die /etc/fstab folgende Zeile einzutragen:

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

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:

/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:

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:

/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: umlaute

Programme und Skripte werden trotz Option exec nicht ausgeführt

Achtung!

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.

Diese Revision wurde am 8. Februar 2024 18:04 von Max-Ulrich_Farber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Shell, System, Dateisystem