
Ich habe gerade einen neuen Rechner in Betrieb genommen. Beim alten PC wurden die Freigaben per autofs
automatisch eingebunden, da das Einbinden per fstab
mit Nachteilen verbunden sein kann. Leider ist es mir nicht gelungen, die Konfiguration des alten Rechners auf die der neuen Box anzupassen.
Systemd to the Rescue
Nach Stunden des Probierens suchte ich nach Alternativen und entschloss mich, Systemd-Mounts zu testen. Und siehe da, nach 10 Minuten war der erste Share da und erschien auch im Dateimanager Dolphin. Um dahin zu kommen, mussten lediglich zwei einfache Systemd-Units erstellt werden. Als Vorgabe muss lediglich das Paket nfs-common
installiert sein.
Units erstellen
Die Units bei Systemd unterscheiden sich nicht sehr von den Service-Files, die vermutlich jeder Linux-Nutzer schon mal gesehen hat. Die erste Unit endet auf .mount, die zweite auf .automount. Bei mir sehen diese wie folgt aus:
[Unit]
Description=Mount NFS Share
[Mount]
What=192.168.XXX.YY:/Music
Where=/media/ft/nas
Type=nfs
Options=soft,async
Eigentlich ist es selbsterklärend. Description ist lediglich beschreibend. Der Eintrag hinter What
verweist auf die Adresse und die Freigabe, das Where
legt fest, wohin gemounted wird. Der Typ ist bei mir NFS, könnte aber auch Cifs sein. Die benötigten Optionen kann man sich im NFS-Howto zusammenstellen.
Die zweite Unit mit der Endung .automount macht genau was der Name besagt: Sie liest die soeben beschriebene .mount und hängt die dort benannte Freigabe ein:
[Unit]
Description=Automount NFS-Share
Requires=NetworkManager.service
After=network-online.target
Wants=network-online.target
[Automount]
Where=/media/ft/nas
TimeoutIdleSec=10min
[Install]
WantedBy=multi-user.target
Auch hier wieder die Beschreibung an erster Stelle. Die zweite Zeile legt fest, dass die Datei NetworkManager.service
benötigt wird. Der Automounter soll dann die Freigaben einhängen, nachdem das Netzwerk steht. TimeoutIdle
legt fest, dass die Freigabe ohne Aktivität nach der angegebenen Zeit wieder ausgehängt wird. Die Install-Anweisung besagt, in welchem Runlevel die Unit gestartet werden soll. Ich habe hier das Multi-User-Runlevel gewählt.
Nomen est Omen
Was die Namen der beiden Units angeht, so werden sie aus dem Pfad des Einhängepunkts gebildet, indem /
gegen –
ausgetauscht wird. Aus media/ft/nas
wird media-ft-nas.mount
bzw. media-ft-nas.automount
. Bei längeren Namen kann man sich auch des Befehls sudo systemd escape [mountpoint]
bedienen.
Verschieben und aktivieren
Die solchermaßen benannten Dateien werden nach /etc/systemd/system
verschoben. Jetzt fehlen noch zwei Befehle um die Automount-Unit jetzt und künftig beim Booten zu starten:
systemctl start media-ft-nas.automount
systemctl enable media-ft-nas.automount
Der Zustand kann mit systemctl status media-ft-nas.automount
kontrolliert werden und liefert im Erfolgsfall beispielsweise zurück:
ft@blue:/etc/systemd/system$ systemctl status media-ft-nas.automount
● media-ft-nas.automount - Automount /media/ft/nas
Loaded: loaded (/etc/systemd/system/media-ft-nas.automount; enabled; vendor preset: enabled)
Active: active (waiting) since Sun 2019-12-22 12:45:52 CET; 2h 57min ago
Triggers: ● media-ft-nas.mount
Where: /media/ft/nas
Das wars auch schon. Sollte etwas nicht funktionieren, kann man als erstes testen, welche Freigaben überhaupt vorhanden sind. Das geht mittels:
sudo showmount -e 192.168.XXX.YY
Der einzige Nachteil, der ins Auge springt, ist, dass für jede Freigabe eigene Units angelegt werden müssen. Aber die müsste man in der fstab
auch einzeln eintragen. Und man muss es ja nur einmal machen. Falls jemand hier eine Abkürzung kennt, ich bin ganz Ohr.
Schreibe einen Kommentar