ubuntuusers.de

Autofs

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


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Mit Autofs lassen sich Partitionen bei Bedarf automatisch einhängen (mounten) und bei längerer Nichtbenutzung auch automatisch wieder aushängen. Autofs verwendet kein GVfs per gio mount. Es lässt sich deshalb auch unter KDE (Kubuntu) einsetzen. Im Gegensatz zum GVfs können Benutzer die Mountpunkte frei festlegen.

Der übliche Weg, Partitionen beim Systemstart automatisch statisch einzubinden, ist ein Eintrag in der Datei /etc/fstab [6]. Im Gegensatz dazu werden die Partitionen mit Autofs erst dann automatisch eingehängt, wenn auf sie zugegriffen wird. Außerdem lässt sich Autofs so konfigurieren, dass eingehängte Partitionen nach einer frei wählbaren Zeit automatisch wieder ausgehängt werden, wenn kein Zugriff mehr erfolgt.

Autofs wurde vor allem zum Einhängen von Netzwerk-Freigaben (z.B. NFS oder SMB) konzipiert. Im Vergleich zum Statischen Einbinden [6] verringert es die Belastung des Netzwerks und verbessert damit angeblich dessen Durchsatz. Weil das Einhängen zu einem späteren Zeitpunkt geschieht als die Abarbeitung von /etc/fstab, besteht keine Gefahr, dass das Netzwerk noch nicht funktioniert. Auch "Shutdown-Probleme" (z.B. bei Freigaben, die per mount.cifs im WLAN als CIFS vfs eingehangen werden) werden durch das automatische Aushängen vermieden.

Ein weiterer Anwendungsbereich von Autofs ist das automatische Einbinden externer Datenträger (USB-Sticks und -Platten) mit frei wählbaren Optionen. Die Möglichkeit, den Datenträger bei Nichtbenutzung automatisch rasch wieder auszuhängen, kann einen zusätzlichen (aber keineswegs vollständigen!) Schutz vor Datenverlusten bei unbedachtem Ausstecken bewirken.

Für interne Laufwerke bzw. Partitionen bietet Autofs gegenüber dem statischen Einhängen mittels fstab-Eintrag keine Vorteile.

Eine Alternative mit vergleichbarer Funktionalität ist der Berkeley-Automounter (amd), der im Paket am-utils enthalten ist.

Der seit Ubuntu 16.04 LTS standardmäßig verwendete Sitzungs-Manager systemd enthält bereits einen einfachen Automounter, mit dem sich einige (aber nicht alle) Funktionen von autofs ausführen lassen. Siehe hierzu auch die Manpage man systemd.mount.

Installation

Zuerst muss aus den Paketquellen das folgende Paket installiert [1] werden:

  • autofs

Befehl zum Installieren der Pakete:

sudo apt-get install autofs 

Oder mit apturl installieren, Link: apt://autofs

Konfiguration

Die Grundeinstellungen für Autofs werden in der Datei /etc/default/autofs festgelegt. Normalerweise besteht kein Grund, diese Datei zu editieren und Änderungen daran vorzunehmen.

Die Konfiguration wird in zwei Stufen vorgenommen. Die Master-Map-Datei (Master Map File) enthält die Ordner für alle Mountpunkte und ordnet diesen jeweils eine eigene Map-Datei zu. Sowohl die Master-Map-Datei als auch die einzelnen Map-Dateien sind gewöhnliche Textdateien, die mit einem Editor mit Root-Rechten [4] erstellt und bearbeitet werden können.

Die Master-Map-Datei

Die Master-Map-Datei ist eine reine Textdatei, bei der die einzelnen Zeilen folgende Struktur haben:

KEY MAP -OPTIONS

Die drei Felder sind durch Leerzeichen oder Tabulatoren voneinander getrennt. Das erste Feld ("KEY") bezeichnet ein Mount-Verzeichnis. Dies ist ein Ordner, in dem die einzelnen Mountpunkte beim Einbinden dann automatisch generiert werden. Im zweiten Feld ("MAP") wird dem betreffenden Mount-Verzeichnis eine Map-Datei mit den jeweils gültigen Mount-Optionen zugeordnet. Die in den einzelnen Map-Dateien angegebenen Namen für die einzelnen Mountpunkte gelten dann relativ zum in der Master-Map-Datei angegebenen Mount-Verzeichnis. Im dritten Feld ("OPTIONS") können dann bei Bedarf noch - durch Kommas getrennt - Optionen angegeben werden, die für alle in der Map-Datei aufgeführten Mountpunkte gelten. Dieses Feld beginnt immer mit dem Zeichen "-" (Minus). Die Master-Map-Datei wird standardmäßig unter /etc/auto.master angelegt.

Hinweis:

Steht an der ersten Stelle in einem Optionen-Feld eine Option, die selbst schon mit einem Minus-Zeichen beginnt (z.B. -strict), so ergeben sich daraus zwei aufeinander folgende Minus-Zeichen (also z.B. --strict).

Beispiel:

/media/nfs   /etc/auto.nfs 
/usb  /etc/auto.usb --strict

Die Map-Dateien zu den Verzeichnissen /media/nfs und /usb sind die Dateien /etc/auto.nfs und /etc/auto.usb. Die dort angegebenen Namen für die Mountpunkte sind relative Angaben bezüglich dieser Ordner.

Die in der Master-Map-Datei eingetragenen Verzeichnisse müssen existieren bzw. von Hand mit Root-Rechten [4] eingerichtet werden.

Beispiel:

sudo mkdir /media/nfs 

Alternativ ist es auch möglich, in der Master-Map-Datei keine explizite Ordner-Angabe zu machen, sondern statt eines Ordners nur /- einzutragen. Dann müssen in den entsprechenden Map-Dateien für die Mountpunkte jeweils die kompletten, d.h. absoluten, Pfade eingetragen werden.

Beispiel:

/-   /etc/auto.backup

Als Optionen kommen die für das betreffende Dateisystem möglichen Mount-Optionen in Frage. Zusätzlich gibt es noch spezifische Optionen für Autofs, von denen die wichtigsten in folgender Tabelle aufgeführt sind. Zur Unterscheidung von den Mount-Optionen beginnen diese mit dem Zeichen "-" (Minus).

Besondere Optionen für Map-Dateien
Kurzform Langform Bedeutung
-t=NUM --timeout=NUM Zahlenwert. Nach NUM Sekunden ohne Zugriff wird die Partition ausgehängt. NUM=0 bedeutet, dass die Partition nicht automatisch ausgehängt wird. Defaultwert: 300 (5 Minuten).
(keine) -strict Bewirkt, dass Fehler beim Einbinden von Partitionen oder Freigaben als "fatal" gelten und dass folglich dann auch alle anderen Dateisysteme nicht eingebunden werden. Default: -nonstrict.
-f=FSTYPE (?) -fstype=FSTYPE Präzisiert den Dateisystem-Typ. Beispiele: fstype=cifs oder auch fstype=auto für automatisch erkennbare Dateisysteme.
(keine) nosymlink Dies ist eine Pseudo-Mount-Option, die deshalb nicht mit dem Zeichen "-" (Minus) beginnt. Im Wesentlichen bewirkt diese, dass auf gemounteten Netzwerk-Freigaben symbolischen Links nicht gefolgt wird.

Hinweis:

Es ist nicht sinnvoll, in der Master-Map-Datei als Verzeichnisse Systemordner wie /media oder /mnt einzutragen, da diese dann ausschließlich von Autofs verwaltet werden und somit nicht mehr anderweitig benutzbar sind. Besser ist es, innerhalb von /media oder im Wurzelverzeichnis für Autofs eigene Ordner anzulegen, z.B. /media/nfs oder /usb.

Map-Dateien

Auch die Map-Dateien sind gewöhnliche Textdateien. Im Prinzip können diese an jedem beliebigen Ort angelegt werden. Üblich (und empfohlen) ist jedoch, diese im Systemordner /etc anzulegen und sie mit /etc/auto.XXX zu bezeichnen, wobei XXX einen die jeweilige Map-Datei einprägsam charakterisierenden Dateinamen darstellt. Bei der Installation von Autofs werden standardmäßig die Map-Dateien auto.misc, auto.net und auto.smb eingerichtet. Es besteht aber keinerlei Notwendigkeit, diese zu benutzen; man kann sich genau so gut selbst mit Root-Rechten [4] eigene Map-Dateien anlegen.

Eine Map-Datei kann auf verschiedene Arten angelegt werden. Die einfachste Art ist, in ähnlicher Weise wie in der Datei /etc/fstab, für jede einzubindende Partition oder Freigabe eine eigene Zeile vorzusehen. Man kann aber auch mehrere verwandte Freigaben in einem "Mehrfach-Mount" zusammenfassen oder mit einem Skript kollektive Angaben für eine Gruppe von Freigaben machen. Dieses Verfahren bietet vor allem bei größeren Netzwerken Vorteile, ist aber wesentlich anspruchsvoller.

Zeilen-Struktur

Für jede einzubindende Partition oder Freigabe wird eine Zeile eingetragen, die wieder aus drei Feldern nach folgendem Schema besteht:

KEY -OPTIONS LOCATION

Im ersten Feld (KEY) wird der Mountpunkt eingetragen. Ist in der Master-Map-Datei ein Mount-Verzeichnis angegeben, gilt die Angabe relativ zu diesem; andernfalls ist der komplette Pfad anzugeben. Für das zweite Feld (OPTIONS) gilt das Gleiche wie bei der Master-Map-Datei, nur dass die hier eingetragenen Optionen nur für diese eine Partition oder Freigabe gelten. Die Angabe von Optionen darf auch ganz entfallen. In das dritte Feld (LOCATION) ist eine Ortsbezeichnung für die Partition oder Freigabe einzutragen, gewöhnlich beginnend mit einem Kolon ("Doppelpunkt"). Beispiele sind :/dev/sda5, ://192.168.1.101/Musik (SMB) oder 192.168.1.101:/Musik (NFS). Anstatt des Eintrags in der Gerätedatei /dev kann bei lokalen Partitionen auch die UUID (ohne Kolon) angegeben werden). Dies ist vor allem bei USB-Datenträgern zu empfehlen.

Die Inhalte der drei Felder, nicht jedoch deren Anordnung, entsprechen weitgehend den den Regeln für die Datei /etc/fstab [6].

Achtung: Dateien mit dieser Struktur dürfen nicht als ausführbar markiert sein.

Hinweis:

Namen, die Trenn- oder Strukturzeichen (Leerzeichen, $ usw.) enthalten, müssen in Anführungszeichen gesetzt werden ("NAME").

Mehrfach-Mount

Bei einem Mehrfach-Mount ("Multiple Mounts") lassen sich ganze Serien von Mount-Vorgängen in einer einzigen Zeile beliebiger Länge zusammenfassen. Diese besteht dann aus einer Serie von durch Leerzeichen oder Tabulatoren voneinander getrennten Feldern, die nach folgendem Schema aufgebaut ist:

KEY -OPTIONS /MPOINT1 -OPTIONS1 LOCATION1 /MPOINT2 -OPTIONS2 LOCATION2 ...

Dabei bedeutet KEY jetzt einen gemeinsamen Ordner, in dem sich dann die einzelnen Mountpunkte MPOINT1, MPOINT2 usw. befinden. Im zweiten Feld -OPTIONS können gemeinsame Optionen eingetragen werden, und die Felder -OPTIONS1, -OPTIONS2 usw. enthalten Optionen, die nur für den jeweiligen Mountpunkt gelten. Nicht benötigte Optionen-Felder dürfen einfach ausgelassen werden.

Solche Mehrfach-Mount-Zeilen können sehr lang und unhandlich werden. Übersichtlicher wird es, wenn man sie in mehrere kurze Einzelzeilen aufspaltet, wobei dann die Zeilenwechsel durch einen Backslash (\) unterdrückt ("escaped") werden müssen:

KEY -OPTIONS \
 /MPOINT1 -OPTIONS1 LOCATION1 \
 /MPOINT2 -OPTIONS2 LOCATION2 \
...

Ein Beispiel findet sich weiter unten.

Skript-Struktur

Eine Map-Datei kann auch ein Skript enthalten. Dieses muss in der Regel die Partitionen oder Freigaben ermitteln, die nach bestimmten Vorgaben einzuhängen sind, und das dann für diese eine dem obigen Schema entsprechende Mehrfach-Mount-Zeile (oder einen Fehler-Code) zurückgibt.

Ein Beispiel für eine solche Map-Datei ist unten aufgeführt. Weitere Beispiele für solche Map-Dateien sind die im Paket autofs enthaltenen Dateien /etc/auto.smb und/etc/auto.net.

Hinweis:

Das aktuelle Paket autofs5 enthält leider keine Beispieldateien mehr.

Map-Dateien, die ein Skript enthalten, müssen ausführbar sein. Empfohlen wird für diese der Modus 0755.

Hinweis:

Die Erstellung eigener Skripte für Map-Dateien erfordert vertiefte Kenntnisse in Linux. Deshalb wird dies hier nicht weiter erläutert. Weniger erfahrene Benutzer können trotzdem die beiden Dateien /etc/auto.smb und /etc/auto.net benutzen oder diese nötigenfalls geringfügig verändern.

Experten-Info:

Alternativ kann Autofs auch über LDAP konfiguriert werden. Siehe hierzu https://help.ubuntu.com/community/AutofsLDAP 🇬🇧.

Anwendung

Starten und Beenden

Autofs kann nur Partitionen oder Freigaben einhängen, die nicht bereits eingebunden sind. Welche Geräte eingebunden sind, erfährt man, wenn man den Befehl mount ohne Parameter aufruft. Nötigenfalls müssen diese einzeln mit sudo umount PARTITION ausgehängt werden, bevor man Autofs von Hand starten kann. Weil Autofs beim Bootvorgang automatisch gestartet wird, müssen außerdem in /etc/fstab alle Einträge für über Autofs einzubindende Partitionen und Freigaben beseitigt oder mit dem Zeichen "#" auskommentiert werden.

Mit Autofs einzubindende Partitionen und Freigaben sind systemweit verfügbar. Deshalb wird Autofs beim Bootvorgang bereits vor dem Anmelden eines Benutzers mit Root-Rechten automatisch gestartet. Um Autofs direkt aufzurufen, benötigt man ebenfalls Root-Rechte [4]. Die dafür nötige Befehlszeile lautet

sudo service autofs KOMMANDO 

Dabei bedeutet KOMMANDO eines der in folgender Tabelle aufgeführten Kommandos:

Kommandos für Autofs
Kommando Bedeutung
stop Autofs wird angehalten. Eingehängte Partitionen und Freigaben werden regulär ausgehängt. Bei Partitionen, auf die gerade zugegriffen wird, wird gewartet, bis der Zugriff beendet ist.
start Autofs wird gestartet
reload Veränderte Map-Dateien werden übernommen und zukünftig beim Einbinden berücksichtigt. Bereits eingebundene Partitionen bleiben davon bis zum neuen Einhängen unberührt.
restart Autofs wird angehalten und - ggf. mit veränderter Master-Map-Datei und veränderten Map-Dateien - neu gestartet. Das Kommando restart ist anstatt reload auszuführen, falls auch Änderungen an der Master-Map-Datei vorgenommen wurden.
status Der Status von Autofs und ggf. die Prozess-Identifikation wird ausgegeben.

Das Programm "automount"

Wenn das Programm "autofs" gestartet wird, startet dieses gemäß den in den in den Map-Dateien vorliegenden Einträgen für jede dort eingetragene Partition eine Instanz des Programms "automount" als Daemon, der diese bei Bedarf ein- und wieder aushängt. Die Funktion dieser Dämonen wird vom Programm "autofs" gesteuert.

Hinweis:

Der Wiki-Artikel Automount bezieht sich allgemein auf das automatische Einbinden (Mounten) von Partitionen und nicht etwa auf das hier beschriebene Programm "automount".

udev

In manchen Anleitungen steht, dass noch die udev-Regeln entsprechend angepasst werden müssen, damit Autofs USB-Geräte beim Ein- und Ausstecken erkennen kann. Für bereits bekannte USB-Geräte, für die man bereits einen Eintrag in einer Map-Datei vorgenommen hat, ist dies nicht nötig. Mittels udev die Anwendung von Autofs auch automatisch auf bisher unbekannte, neue USB-Geräte auszudehnen, erfordert mehr Erfahrung im Umgang mit Linux und überschreitet den Rahmen dieses Artikels.

Beispiele

USB-Stick mit NTFS

USB-Sticks und externe Datenträger werden standardmäßig beim Booten des Systems oder beim Einstecken automatisch eingebunden. Ist auf diesen ein NTFS-Dateisystem vorhanden, so werden für dieses die Standard-Einstellungen verwendet (USER:USER, Mode 0750 bzw. 0640). Eine UNIX-Rechteverwaltung wird dann dort nicht eingerichtet, sodass man die Dateirechte nicht nachträglich noch verändern kann, wie dies z.B. dann nötig ist, wenn man dort öffentliche SMB-Freigaben (mit Gast-Zugang) einrichten will. Will man die USB-Partitionen mit anderen Einstellungen einbinden, so ist dies außer über einen fstab-Eintrag auch mittels Autofs möglich. Der folgende Eintrag in der Map-Datei /etc/auto.usb

usb-stick --timeout=5,fstype=ntfs,permissions UUID=222CEC912CEC60F1

bewirkt, dass die Partition mit der UUID 222CEC912CEC60F1 beim Zugriff im Mount-Punkt usb-stick mit einer echten UNIX-Dateiverwaltung eingebunden wird (Mount-Option permissions). Nach 5 Sekunden Untätigkeit wird die Partition automatisch korrekt ausgehängt.

Das Einbinden mit Autofs kann natürlich nur dann funktionieren, wenn vorher das automatische Mounten über die GUI (z.B. GNOME/Nautilus) deaktiviert wird. Siehe hierzu Automount (Abschnitt „Automount-deaktivieren“). Die Map-Datei darf nicht ausführbar sein und wird noch in der Master-Map-Datei /etc/auto.master mit folgender Zeile eingetragen

/media/usb /etc/auto.usb

Der Stick wird dann nach /media/usb/usb-stick gemountet.

NFS-Freigabe

Zum Einbinden der NFS-Freigabe "Musik" auf dem Server (hier ein QNAP-NAS) mit der IP "192.168.1.101" eignet sich z.B. folgende Zeile in der Map-Datei /etc/auto.QNAP:

Musik -fstype=nfs,rw,retry=0 192.168.1.101:/Musik

Mit folgendem Eintrag in /etc/auto.master

/QNAP /etc/auto.QNAP --ghost

Wichtig ist in diesem Fall die mount-Option retry=0. Diese sorgt dafür, dass mount sofort aufgibt, falls der Server nicht erreichbar ist. Anderenfalls würde mount für zwei Minuten versuchen den Server zu erreichen und so lange blockieren. Dieses Verhalten ist an sich kein Problem. Wenn man aber ein Lesezeichen in Nautilus erstellt, so wird dadurch der Start von gnome sowie vielen gnome-Anwendungen (wie gedit) eben diese zwei Minuten lang blockiert. Das Dateisystem-Backend von gnome versucht anscheinend den Verzeichnisinhalt des Links abzurufen und muss dabei auf den von autofs gestarteten mount-Befehl warten. Läuft der Server, so ist der erste Zugriff sofort erfolgreich, und es tritt keine Blockade auf. Die Option --ghost erzeugt leere Dateiverzeichnisse für alle Shares, damit der Verbindungsaufbau auch nach einem Timeout wieder erzeugt werden kann (siehe SMB - Freigabe).

NFS-Freigaben browsen

Weil NFS vom GVfs nicht unterstützt wird, können die Dateimanager Nautilus, Thunar und andere leider Netzwerke nicht nach NFS-Freigaben durchsuchen. Hier bietet die aktuelle Version Autofs-5 nun mit der Option -hosts eine gute Alternative.

Um die NFS-Freigaben aller erreichbarer Server automatisch aufzulisten und nötigenfalls einzubinden, genügt es, z.B. folgende Zeile in die Master-Map-Datei einzutragen:

/net -hosts --timeout=60

Natürlich muss dafür das Paket nfs-common installiert sein. Die Option -hosts verwendet zum Auffinden der Netzwerk-Freigaben ein ein ähnliches Verfahren wie der Befehl showmount.

SMB-Freigabe

Zuerst muss aus den Paketquellen das folgende Paket installiert werden:

  • cifs-utils

Befehl zum Installieren der Pakete:

sudo apt-get install cifs-utils 

Oder mit apturl installieren, Link: apt://cifs-utils

Zum Einbinden der SMB-Freigabe "Musik" auf dem Server mit der IP "192.168.1.101" eignet sich z.B. folgende Zeile in der Map-Datei /etc/auto.cifs-shares:

lokal_Musik -fstype=cifs,uid=1000,credentials=/home/Simon/.smbcredentials ://192.168.1.101/Musik

Mit folgendem Eintrag in /etc/auto.master

/media/cifs /etc/auto.cifs-shares --timeout=60 --ghost

wird die Freigabe dann nach /media/cifs/lokal_Musik gemountet. Näheres zum Einbinden als CIFS vfs siehe mount.cifs. Der Schalter --timeout definiert wie viele Sekunden gewartet wird, bis ein ungenutztes Dateisystem unmounted wird. Die Option --ghost erzeugt leere Dateiverzeichnisse in /media/cifs/lokal_Musik für alle Shares in /etc/auto.cifs-shares, damit der Verbindungsaufbau auch nach einem Timeout wieder erzeugt werden kann.

Mehrere SMB-Freigaben

Durch folgenden Mehrfach-Mount werden alle Mountpunkte als Unterordner im Ordner Media zusammengeführt, obwohl sich die Freigaben auf verschiedenen Servern befinden. Die Mount-Optionen sind jedoch identisch:

Media \
-fstype=cifs,credentials=/home/Simon/.smbcredentials \
  "/Eigene Bilder" ://192.168.1.101/Bilder \
  "/Monas Bilder" ://192.168.1.102/Bilder \
  /Musik ://192.168.1.101/Musik \
  /Videos ://192.168.1.113/Videos \

Ganzes SMB-Netz

Das folgende Beispiel ist eine für Ubuntu angepasste Vereinfachung des Beispiel-Skripts auto.smb.

 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
#!/bin/bash
# Dieses Skript muss ausführbar sein (chmod 755)!
key="$1"

# Hier ggf. die eigene credentials-Datei und weitere
# Mount-Optionen eintragen:
creds=/home/USER/.smbcredentials
if [ -f "$creds" ]; then
    opts="-fstype=cifs,credentials=$creds"
    smbopts="-A $creds -gL"
else
    opts="-fstype=cifs,guest"
    smbopts="-gNL"
fi

SMBCLIENT="/usr/bin/smbclient"
[ -x $SMBCLIENT ] || exit 1
# Wenn smbclient nicht installiert ist, dann geht nichts!

$SMBCLIENT $smbopts $key 2>/dev/null| awk -v key="$key" -v opts="$opts" -F'|' -- '
# Die Ausgabe von smbclient wird nun mit AWK aufbereitet
	BEGIN	{ ORS=""; first=1 }
	/Disk/	{
		  if (first) { print opts; first=0 }
		  dir = $2
		  loc = $2
		  # Spezielle Zeichen "$" und "&" im Namen escapen
		  gsub(/[&$]/,"\\\\&",loc)
		  print " \\\n\t \"/" dir "\"", "\"://" key "/" loc "\""
		}
	END 	{ if (!first) print "\n"; else exit 1 }
	'

Vom aufrufenden Programm Autofs wird der Server als Parameter an das Skript übergeben. Dieses durchsucht mit dem Befehl smbclient -gNL den Server nach Freigaben. Die Ergebnisse werden mit dem Text-Bearbeitungsprogramm AWK aufgearbeitet und so an Autofs zurückgegeben, dass dieses für alle Freigaben Mountpunkte generieren und ggf. die Freigaben mounten kann. Freigaben mit Sonderzeichen (z.B. Umlaute, Klammern, Satzzeichen) im Namen werden dabei ignoriert (s.u.). Das Skript kann man z.B. als /etc/auto.cifs ablegen; der entsprechende Eintrag in /etc/auto.master könnte dann so lauten:

/media/cifs /etc/auto.cifs --timeout=5 --ghost

Um Probleme bei der Namensauflösung zu vermeiden, sollte immer die IP des Servers verwendet werden.

WebDAV

WebDAV-Freigaben lassen sich mit Hilfe des Paketes davfs2🇬🇧 einbinden.

  • davfs2

Befehl zum Installieren der Pakete:

sudo apt-get install davfs2 

Oder mit apturl installieren, Link: apt://davfs2

Nähere Informationen zur Konfiguration von und zu davfs2 allgemein finden sich unter WebDAV (Abschnitt „davfs2“).

Zum Einbinden einer WebDAV-Freigabe eignet sich die folgende Zeile in einer entsprechneden Map-Datei:

[Ordner-Name] -fstype=davfs,uid=[uid],gid=[gid],file_mode=700,dir_mode=700,rw :https\://[Domain][\:[Port]][/Freigabe]

Die Zeile bindet die Freigabe im Besitz eines Benutzers (uid) und einer Gruppe (gid) ein und setzt die Rechte aller Dateien und Ordner so dass nur der Besitzer lesen, schreiben und ausführen kann (bei Bedarf anpassen, s. chmod).

Man sollte darauf achten, dass der Adresseintrag der Zeile mit einem Doppelpunkt beginnt und alle weiteren Doppelpunkte in der Adresse beim Protokoll und der Portnummer jeweils mit einem Backslash gepräfixt werden müssen.

Hierbei müssen folgende Platzhalter ersetzt werden:

Platzhalter Beschreibung
[Ordner-Name] Name des Ordners im Basisverzeichnis der Map-Datei, in dem die Freigabe gemountet werden soll
[uid], [gid] IDs eines Benutzers, der Besitzer sein soll, und einer Gruppe, kann für einen Benutzer mit dem Befehl id ermittelt werden
[Benutzername] Name des Benutzers, der Besitzer sein soll
[Domain] Domain des WebDAV-Servers (z.B. nas.meine-domain.org)
[\:[Port]] Portnummer des WebDAV-Servers mit vorangehendem Backslash und Doppelpunkt (optional)
[/Freigabe] Freigabe-Pfad auf dem Server, der eingebunden werden soll, mit Slashes getrennt (optional)

Damit die Zugangsdaten gefunden werden können, werden diese in der globalen Geheimnisse-Datei von davfs2 (/etc/davfs2/secrets) hinterlegt. Hierbei muss für jede Freigabe eine Zeile hinzugefügt werden:

[Pfad zum Freigabe Ordner] [Benutzername auf dem WebDAV-Server] [Passwort des Benutzers]
# zum Beispiel:
/mnt/paul/Fotos paul theultraverysecretpass

Die Geheimnis-Datei gehört standardmäßig den Benutzer root und sollte auch nur von diesem lesbar sein (z.B. Modus 700).

Problembehandlung

Mountpunkte sind nicht sichtbar

Weil Autofs die Mountpunkte erst beim ersten Zugriffs-Versuch einrichtet, erscheinen diese nach dem Systemstart zunächst nicht im Dateimanager. Dies ist lästig, denn dann kann der erste Zugriff auch nicht wie gewohnt per Mausklick erfolgen. Möchte man nicht das Einrichten der Mountpunkte vom Terminal[3] aus z.B. mit dem Befehl ls MOUNTPUNKT erzwingen, bietet sich folgender Ausweg an:

  • Man richtet die eingetragenen Mountpunkte für die Server (für die einzelnen Freigaben ist das nicht nötig) vor dem Start von Autofs von Hand ein. Eventuell muss dazu Autofs mit dem Befehl sudo service autofs stop angehalten und anschließend mit sudo service autofs start neu gestartet werden.

SMB-Server wird nicht gefunden

Beim Einbinden eines ganzen SMB-Netzes muss Autofs den Namen bzw. die IP des Servers als Parameter an das Skript übergeben. Dies setzt voraus, dass der entsprechende Mountpunkt schon eingerichtet ist. Nötigenfalls muss man also genau so vorgehen, wie oben beschrieben.

Konstellation: 'Schlafendes' NAS im WLAN

Bei dieser verbreiteten Konstellation kommen zwei Probleme zusammen: Man möchte auf einem Notebook über WLAN eine NAS einbinden, die sich im Schlafmodus befindet. Nach dem Starten des Notebooks möchte man so schnell wie möglich auf das NAS zugreifen können. Negativbeispiele wären z.B. ein Nautilus, der lange braucht, bis er startet, oder Rhythmbox, das ohne ersichtlichen Grund eine Minute lang eine graue Benutzeroberfläche zeigt (bis endlich die Musikdateien auf dem NAS zur Verfügung stehen). Eine Möglichkeit, dies zu erreichen, ist, das NAS zum Aufwachen zu zwingen, sobald das Notebook eine WLAN-Verbindung aufgebaut hat.

Zuerst muss sichergestellt sein, dass die WLAN Verbindung aufgebaut wurde. Dazu kann folgendes Autostart-Shell-Skript verwendet werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#!/bin/bash
# check if online
#
PING_URL=www.google.com
WAIT_FOR=30 # seconds
#
trap "exit 1" SIGTERM
sleep $WAIT_FOR && kill $$ &
while ! ping -c1 $PING_URL 2>/dev/null 1>&2
	do		
		sleep 1
	done
kill %-
# programms to start as soon as we are online
/home/user/skripts/wakeupnas.sh &           # ACHTUNG: dieser Pfad muss angepasst werden!
exit 0

Das Skript lässt man nach dem Booten durch Autostart automatisch starten; es testet 30 Sekunden lang, ob eine WLAN-Verbindung besteht- indem fortwährend www.google.com aufgerufen wird. Wenn die Verbindung besteht, können andere Programme oder Skripte aufgerufen werden, die auf eine WLAN-Verbindung angewiesen sind (z.B. Thunderbird). Im o.a. Beispiel wird das Shell-Skript 'wakeupnas.sh' gestartet, um das NAS zu wecken.

Im nächsten Schritt sorgt das Shell-Skript wakeupnas.sh für das Aufwachen und automatische Einbinden des NAS in das Dateisystem:

1
2
3
4
5
6
7
8
9
#!/bin/bash
# fire ls at NAS until auto-mounted
#
echo 'wake up NAS'
until ls /media/nfs/nas/ein_Verzeichnis     # ACHTUNG: dieser Pfad muss angepasst werden!
	do
		echo 'still waking up NAS'
		sleep 5
	done

Das Skript führt solange ein ls Kommando auf ein bestehendes Verzeichnis des NAS aus, bis das NAS aufwacht und von autofs eingebunden wird. Wie oben beschrieben, bindet autofs ein Laufwerk erst beim Erstzugriff in das Dateisystem ein. Das ls Kommando erledigt diesen Erstzugriff. Der Pfad hinter dem 'ls' Kommando muss durch ein Verzeichnis ersetzt werden, welches es auf dem eigenen NAS tatsächlich gibt. Man kann auch versuchen, das NAS durch ein einziges ls Kommando zu wecken (beim Autor war das nie ausreichend; vermutlich weil automount noch nicht bereit ist).

Sonderzeichen

Autofs kann leider keine Partitionen oder Freigaben einbinden, in deren Namen Sonderzeichen (z.B. Umlaute, Akzente, Klammern, Satzzeichen usw.) vorkommen. Namen von Partitionen und Freigaben sollten deshalb nur aus den Zeichen A..Z, a..z, -,_ bestehen. Datei- und Ordnernamen innerhalb von Partitionen und Freigaben dürfen jedoch alle Zeichen enthalten, die auch ohne Autofs dafür zulässig sind.

Abweichender nfs Syntax bei Synology

Einige NAS weichen manchmal von der üblichen Syntax ab und können damit Probleme verursachen. So beinhalten bei Synology die nfs Pfade immer das zugrunde liegende Volume, also z.B.:

192.168.1.101:/volume1/Ordnername

statt

192.168.1.101:/Ordnername

intern

extern

Diese Revision wurde am 4. Juli 2022 13:30 von mago erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Netzwerk, System, Dateisystem