ubuntuusers.de

Automount

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

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Im Artikel fehlen Informationen zu systemd. Wenn du dazu etwas schreiben kannst, melde dich doch bitte in der Diskussion zum Artikel.

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/Unity (Ubuntu), KDE (Kubuntu), Xfce (Xubuntu) und LXDE (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 und Unity

Seit der Umstellung auf Unity in Ubuntu 11.04 sind die Einstellungen für das automatische Einbinden bei GNOME und Unity unter 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. Samba Client cifs (Abschnitt „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.

Eine weitere Möglichkeit, einzelne externe Datenträger in Verbindung mit Startprogrammen individuell automatisch zu mounten, bietet das Programm Archiv/pmount.

Gnome/Unity (Ubuntu)

Erstelle einen Localen Ordner (e.g. ~/fusessh/local/folder/on/client/side)

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

Erstelle eine *.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.

In der Desktop-Umgebung Unity sind für externe Datenträger schon einige Funktionen eines Automounters (Einhängen erst bei Zugriff, jedoch nicht automatisches Aushängen bei Nichtgebrauch) integriert.

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 GVFS

Zum Einbinden von Netzwerk-Freigaben verwenden die Dateimanager Nautilus (Ubuntu, GNOME/Unity), Thunar (Xubuntu, Xfce) und PCManFM (Lubuntu, LXDE) sowie das Tool Gigolo das virtuelle Dateisystem GVFS. Weil das dabei verwendete Programm gvfs-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 gvfs-mount grundsätzlich von einem gewöhnlichen Benutzer ohne Root-Rechte auszuführen ist, kann es weder über einen fstab-Eintrag noch über einen Eintrag in /etc/rc.local automatisiert werden. Auch Automounter lassen sich nicht ohne Weiteres dafür verwenden.

Dagegen lässt sich gvfs-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
gvfs-mount smb://192.168.1.101/Musik
gvfs-mount smb://192.168.1.101/Photos

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

Problembehebung

PowerTOP und hal-disable-polling

Ein weitere Fehlerquelle ist evtl., dass der eine oder andere Laptopbesitzer mit PowerTOP versucht hat, den Stromverbrauch seines Gerätes zu senken. Eine von PowerTOP vorgeschlagenen Optionen lautet "hal-disable-polling --device /dev/cdrom". Diese Option, eingetragen in die /etc/rc.local oder direkt auf der Kommandozeile aufgerufen, verhindert, dass das Laufwerk von HAL auf neue Medien kontrolliert wird. Somit erkennt Software, die sich auf HAL verlässt, auch keine eingelegten Medien.

Um dies zu wieder zu ändern, sollte zunächst ein evtl. vorgenommener Eintrag in die /etc/rc.local wieder entfernt oder auskommentiert werden. Im nächsten Schritt wird das Überprüfen des Laufwerks mit

sudo hal-disable-polling --enable-polling  --device /dev/cdrom 

wieder permanent aktiviert. Sollen die Änderungen noch vor einem Neustart des Computers wirksam werden, muss noch der Befehl sudo /etc/rc.local ausgeführt werden.

Diese Revision wurde am 1. Oktober 2019 20:14 von BillMaier erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: System