ubuntuusers.de

Automount

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

Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Um auf Datenträger [2] zugreifen zu können, müssen diese (oder genau genommen die darauf befindlichen Partitionen) nach jedem Systemstart neu in die lokale Dateistruktur [1] eingebunden (eingehängt, "gemountet") werden. Dies gilt gleichermaßen für lokale wie für externe oder entfernte Datenträger. Von Hand geschieht dies mit dem Befehl mount [3] oder verwandten Befehlen (z.B. gvfs-mount). Es gibt aber auch verschiedene Möglichkeiten, das Einbinden von Partitionen zu automatisieren. Diese werden hier vergleichend erläutert; für einige davon gibt es weiterführende Artikel.

Was bedeutet "Automount"?

Im weitesten Sinne ist "Automount" ein Sammelbegriff für alle Vorgänge, bei denen das Einbinden von Datenträgern oder Partitionen automatisch ohne Eingriffe des Benutzers im Hintergrund erfolgt. Im engeren Sinne spricht man bei Wechseldatenträgern (CD- oder DVD-Laufwerken) und externen Datenträgern (USB-Geräten) aber nur dann von "Automount", wenn dies ebenso auch beim Einlegen oder Einstecken des Datenträgers (Hotplug) geschieht. Entsprechendes gilt für Netzwerk-Freigaben, wenn die Netzwerk-Verbindung erst nachträglich hergestellt wird.

Hiervon zu unterscheiden sind "Automounter". Dies sind Programme, die Partitionen erst bei Bedarf, also erst beim Versuch, auf sie zuzugreifen, automatisch einhängen. Üblicherweise bieten solche Automounter auch die Option, Partitionen bei längerem Nichtgebrauch automatisch wieder auszuhängen.

Einträge in /etc/fstab

Die klassische Methode, Datenträger und Partitionen automatisch systemweit statisch einzubinden, sind Einträge in der Datei /etc/fstab. Diese Datei und ihre Funktionen sind im Artikel fstab ausführlich beschrieben.

Einige Einträge in /etc/fstab werden bei der Installation von Ubuntu bereits automatisch angelegt, sodass zumindest die zur Funktion des Systems notwendigen Partitionen bei jedem Systemstart automatisch eingebunden werden. Er ist jederzeit möglich, diese Datei mit einem Editor mit Root-Rechten [3] durch eigene Einträge zu erweitern. Ein grafisches Frontend zur Bearbeitung von fstab-Einträgen ist PySDM 🇬🇧 (bis Ubuntu 12.04); inzwischen eignet sich auch die Laufwerksverwaltung ("Laufwerke" / "Disks") für das grafische anpassen.

Die Datei /etc/fstab wird beim Systemstart, schon vor dem Anmelden eines bestimmten Benutzers und auch vor allen anderen Vorgängen, nach dem im Folgenden beschriebenen Verfahren abgearbeitet. Partitionen, für die dort ein Eintrag ohne die Option noauto besteht, werden deshalb auf jeden Fall sofort eingebunden, wenn mit einem der im Folgenden beschriebenen Verfahren versucht wird, sie einzubinden. Deshalb müssen die betreffenden fstab-Einträge auf jeden Fall zuerst entfernt oder deaktiviert werden, wenn eines der anderen Verfahren Erfolg haben soll. Möchte man das System nicht anschließend mit der veränderten fstab neu starten, müssen die betreffenden Partitionen außerdem noch von Hand ausgehängt werden.

Möchte man externe Partitionen mit anderen Optionen einbinden (z.B. andere Besitz- und Zugriffsrechte), als dies beim automatischen Mounten über die grafische Oberfläche und den Dateimanager geschehen würde, kann man diesem einfach durch einen geeigneten Eintrag in /etc/fstab zuvorkommen. Siehe dazu auch USB-Datenträger automatisch einbinden.

Da die Datei /etc/fstab nur beim Systemstart automatisch abgearbeitet wird, genügen fstab-Einträge allein noch nicht, um Wechseldatenträger, USB-Geräte oder Netzwerk-Freigaben automatisch nachträglich einzubinden. Mit dem Befehl mount -a kann das Abarbeiten der fstab-Einträge jedoch jederzeit wiederholt werden.

Crontab

Über einen Cronjob kann man festlegen, dass der Befehl mount -a automatisch in regelmäßigen Zeitabständen mit Administrator-Rechten [5] ausgeführt wird. Dazu gibt man in einem Terminal [4] folgende Zeile ein:

sudo crontab -e 

und editiert auf diese Weise die Cron-Tabelle von root. Dort trägt man am Ende folgende Zeile ein und schließt diese mit einem Zeilenwechsel (Leerzeile) ab:

*/2 * * * * /bin/mount -a > /dev/null 2>&1

Damit wird mount -a alle zwei Minuten ausgeführt. Aufgrund des Konstrukts > /dev/null 2>&1 unterbleiben Fehlermeldungen, wenn Befehlszeilen in fstab nicht ausgeführt werden können.

udev-Regel

Mit udev-Regeln lassen sich sehr komplexe Aufgaben "maßgeschneidert" lösen. Eine ausführliche Beschreibung für fortgeschrittene Benutzer findet sich im Artikel udev.

Hier wird nur der einfache Fall, dass beim Einstecken oder Einlegen eines externen Datenträgers sofort der Befehl mount -a mit Administrator-Rechten [5] ausgeführt wird, kurz dargestellt. Hierzu muss man im Ordner /lib/udev/rules.d/ eine Regel-Datei anlegen. Auch hierzu sind Root-Rechte erforderlich. Der Dateiname muss mit einer zweiziffrigen Zahl beginnen und mit .rules enden, z.B. 80-mount.rules. In diese trägt man nun folgende Zeile ein:

SUBSYSTEM=="block", RUN+="/bin/mount -a"

Damit wird der Befehl mount -a immer beim Hinzufügen oder Entfernen eines blockorientierten Gerätes ("block device") ausgeführt. Hierzu gehören z.B. Festplatten und USB-Sticks, aber auch Daten-CDs und -DVDs sowie Disketten.

Die Datenträger werden nach /media/$User/ gemountet. Möchte man sie an die früher übliche Stelle nämlich /media/ mounten, muss eine udev Regel erstellt werden, indem in die Datei /etc/udev/rules.d/99-udisks2.rules dies

1
2
3
4
5
# UDISKS_FILESYSTEM_SHARED
# ==1: mount filesystem to a shared directory (/media/VolumeName)
# ==0: mount filesystem to a private directory (/run/media/$USER/VolumeName)
# See udisks(8)
ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{UDISKS_FILESYSTEM_SHARED}="1"

eingetragen wird.

Hinweis:

Udev reagiert nur auf Veränderungen der lokalen Hardware und eignet sich deshalb nicht für den Automount von Netzwerk-Freigaben.

Automount mittels GUI

Die großen Desktop-Umgebungen GNOME (Ubuntu), KDE (Kubuntu), Xfce (Xubuntu) und LXQt (Lubuntu) können externe Datenträger sowohl beim Einloggen des jeweiligen Benutzers als auch beim nachträglichen Einstecken oder Einlegen des Datenträgers automatisch einbinden. Dies geschieht entweder selbstständig oder unter zu Hilfenahme des jeweiligen Dateimanagers. Diese Möglichkeit ist standardmäßig für alle diejenigen Partitionen aktiviert, für die kein Eintrag in /etc/fstab besteht. Außerdem bieten die Desktop-Umgebungen die Möglichkeit, nach dem Einbinden externer Datenträger noch bestimmte, vom Inhalt abhängige Aktionen automatisch auszuführen. Diese sind jeweils in eigenen Artikeln beschrieben.

Das Verhalten der Desktop-Umgebungen sowie der Dateimanager beim Automount hat sich in den Ubuntu-Versionen schrittweise wesentlich verändert. Dabei unterscheiden sich auch die Desktop-Umgebungen untereinander.

Externe Datenträger werden von den Desktop-Umgebungen nur dann automatisch eingebunden bzw. der Zugriff auf dieselben ist nur möglich, wenn der jeweilige Benutzer Mitglied der Gruppe plugdev (GID=46) ist. Standardmäßig sind alle Benutzer Mitglieder dieser Gruppe, doch kann der Administrator jederzeit einzelne Benutzer aus dieser Gruppe ausschließen.

Automount deaktivieren

Es ist nicht immer erwünscht, dass externe Datenträger automatisch eingebunden werden. So können z.B. manche Anwendungen, wie z.B. K3b oder GParted Probleme haben, externe Datenträger zu löschen bzw. zu bearbeiten, wenn diese bereits per Automount eingebunden sind. Außerdem muss man verhindern, dass Datenträger automatisch eingebunden werden, wenn man dafür einen der Automounter (z.B. Autofs) verwenden will.

Das automatische Einbinden externer Datenträger über einen Dateimanager bzw. eine Desktop-Umgebung lässt sich generell deaktivieren und wieder aktivieren. Hier unterscheiden sich die Desktop-Umgebunden voneinander.

GNOME

Seit Ubuntu 11.04 sind die Einstellungen für das automatische Einbinden bei GNOME gsettings im Schema org.gnome.desktop.media-handling enthalten (siehe man gsettings). Die momentan gültigen Einstellungen erhält man mittels:

gsettings list-recursively org.gnome.desktop.media-handling 

Wenn Automount und das Öffnen eines Fensters für gemountete Partitionen aktiviert sind, erhält man folgende Ausgaben:

org.gnome.desktop.media-handling automount true
org.gnome.desktop.media-handling automount-open true

Sind sie deaktiviert, steht dort statt true eben false. Um die Einstellungen zu verändern, gibt man folgende Befehlszeilen ein:

gsettings set org.gnome.desktop.media-handling automount 'false'
gsettings set org.gnome.desktop.media-handling automount-open 'false' 

Hat man das Paket dconf-tools installiert, so steht über

dconf-editor 

auch eine grafische Oberfläche zur Verfügung. Man navigiert dann zu "org → gnome → desktop → media.handling" und verändert dort die Einstellungen für "automount" und optional auch für "automount-open".

KDE (Kubuntu)

Die Einstellungen zum automatischen Einbinden sind per KDE Systemeinstellungen unter "Hardware → Wechselmedien" kontrollierbar.

Xfce (Xubuntu)

Bei Xubuntu (Xfce) werden externe Datenträger unmittelbar beim Einstecken eingebunden und nicht erst beim ersten Zugriff auf dieselben.

Das Verhalten von Xubuntu beim Einstecken oder Einlegen externer Datenträger lässt sich im Wiki/InterwikiMap/xubuntu.png Anwendungsmenü über "Einstellungen → Einstellungen → Wechseldatenträger und Medieneinstellungen" konfigurieren. Nähere Einzelheiten siehe hier.

Einzelne Datenträger ausschließen

Für einzelne Datenträger lässt sich das Einbinden mit einem Eintrag in fstab unterbinden. Sollen die betreffenden Datenträger nicht an anderer Stelle, sondern gar nicht eingebunden werden, findet man oftmals den Vorschlag, sie gemäß folgendem Beispiel "ins Leere" (Mountpunkt none) zu mounten:

BEZEICHNER  none  auto  noauto  0  0

Für "BEZEICHNER" kann dann die /dev-Kennung ("node"), das Label oder die UUID der Partition verwendet werden [4]. In neueren Ubuntu-Versionen funktioniert dies nicht mehr, da diese nur noch "erfolgreiche" fstab-Einträge berücksichtigen. Man muss dann statt none einen wirklich existierenden Ordner als Mountpunkt wählen, der aber innerhalb eines versteckten Ordners liegen kann, zu dem gewöhnliche Benutzer keinen Zugang erhalten, und von dem man dann weiter keinen Gebrauch macht.

Einbinden über Startprogramme

Jede der großen Desktop-Umgebungen bietet die Möglichkeit, einzelne Programme oder Skripte als "Startprogramme" einzutragen, sodass diese beim Einloggen des betreffenden Benutzers automatisch ausgeführt werden. Näheres hierzu findet man im Artikel Autostart.

Während bei den bisher beschriebenen Verfahren Datenträger immer systemweit, d.h. ohne Differenzierung der Benutzer, eingebunden wurden, lässt sich mittels "Startprogramme" das automatische Einbinden beim Einloggen für einzelne Benutzer differenzieren.

Startprogramme werden mit der Identität eines gewöhnlichen Benutzers ausgeführt. Das Einbinden von Partitionen oder Freigaben erfordert aber standardmäßig Administrator-Rechte. Deshalb müssen zuerst folgende Vorkehrungen getroffen werden, damit man mittels Startprogrammen automatisch mounten kann:

  • Die betreffenden Mount-Befehle müssen jeweils durch einen fstab-Eintrag mit den Optionen noauto und users für gewöhnliche Benutzer "freigeschaltet" werden. Für die eigentlichen Mount-Befehle genügt dann die Kurzform.

  • Werden vom Mount-Befehl intern Hilfsprogramme verwendet (z.B. mount.cifs für das cifs-vfs), so muss für diese das SUID-Bit gesetzt sein. Siehe dazu auch z.B. mount.cifs.

  • Manche dieser Hilfsprogramme verlangen, dass der Mountpunkt Eigentum desjenigen Benutzers ist, mit dessen Identität gemountet wird.

Hinweis:

Der Befehl mount -a benötigt grundsätzlich Administrator-Rechte [5]. Er kann deshalb nicht als Startprogramm ausgeführt werden.

Gnome (Ubuntu)

Erstellen eines lokalen Ordners (z.B. ~/fusessh/local/folder/on/client/side):

mkdir -p ~/fusessh/local/folder/on/client/side 

Erstellen einer *.desktop-Datei in ~/.config/autostart:

[Desktop Entry]
Type=Application
Name=Binde meinen Server XYZ als lokalen Ordner ein.
Exec=sshfs $USER@servername:/folder/on/server/ ~/fusessh/local/folder/on/client/side
Icon=~/.local/share/icons/MyServerIcon.png

Automounter

"Automounter" sind spezielle Hilfsprogramme (Tools) zum automatischen Einbinden von Netzwerk-Freigaben, die sich aber auch zum Einbinden externer Datenträger verwenden lassen. Automounter hängen Freigaben und Partitionen immer erst dann ein, wenn auf diese zugegriffen wird. Außerdem bieten sie in der Regel optional die Möglichkeit, dass diese bei Nichtgebrauch nach einer bestimmten Zeitspanne automatisch wieder ausgehängt werden.

Automounter richten sich üblicherweise nach dem Abarbeiten der Datei /etc/fstab, aber vor dem Einloggen eines Benutzers als Dienst (Daemon) ein, sodass sie Mount-Vorgänge systemweit mit Administrator-Rechten ausführen können.

Man sollte es nach Möglichkeit vermeiden, Automounter und andere Automount-Verfahren nebeneinander zu verwenden, da sie sich gegenseitig beeinträchtigen können.

Die in Linux am weitesten verbreiteten Automounter sind Autofs und der im Paket am-utils enthaltene Berkeley-Automounter (amd). Sie werden in gesonderten Artikeln beschrieben.

Automount und gio-mount

Zum Einbinden von Netzwerk-Freigaben verwenden die Dateimanager Nautilus (Ubuntu, GNOME), Thunar (Xubuntu, Xfce) und PCManFM (Lubuntu) sowie das Tool Gigolo das virtuelle Dateisystem GVFS. Weil das dabei verwendete Programm gio mount nicht über einen allgemeinen Mount-Befehl [3] angesprochen wird, lassen sich die bisherigen Erklärungen nicht ohne Weiteres auf GVFS übertragen.

Weil das Tool gio mount grundsätzlich von einem gewöhnlichen Benutzer ohne Root-Rechte auszuführen ist, kann es nicht über einen fstab-Eintrag automatisiert werden. Auch Automounter lassen sich nicht ohne Weiteres dafür verwenden.

Dagegen lässt sich gio mount problemlos über Startprogramme automatisieren. Am besten legt man hierfür ein kleines Skript an, in dem alle einzuhängenden Freigaben eingetragen sind, macht dieses ausführbar und trägt es unter "Startprogramme" ein. Sollte das automatische Einhängen (Mounten) beim Neustart nicht auf Anhieb funktionieren, schafft meist eine kleine Pause via sleep 5 am Anfang Abhilfe:

1
2
3
4
#! /bin/bash
sleep 5
gio mount smb://192.168.1.101/Musik
gio mount smb://192.168.1.101/Photos

Da gio mount ohne zusätzlich zu installierende Plugins nicht nur Samba, sondern auch FTP, SSH und WebDAV (jedoch leider nicht NFS) unterstützt, handelt es sich hier um eine besonders einfache und vielseitige Möglichkeit, Netzwerk-Freigaben automatisch zu mounten.

Diese Revision wurde am 24. März 2023 12:39 von DJKUhpisse erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System