Mounten mit Manjaro

Di, 11. Mai 2021, Ralf Hersel

Kürzlich habe ich einen meiner beiden Haupt-Rechner von Ubuntu 20.10 auf Manjaro 21.0.3 umgestellt. Dem gingen monatelange Tests in virtuellen Maschinen und auf alter Hardware voraus. Trotz der vielen Tests, ist man nie vor Überraschungen gefeit. Manjaro ist eine sehr gute GNU/Linux-Distribution, die ich jedem, der ein wenig Linux-Erfahrung hat, ans Herzen legen kann. Bei einem Punkt bin ich jedoch an meine Grenzen gestossen; nämlich dem Einbinden von externen Laufwerken über das Netzwerk.

Wer regelmässig GNU/Linux.ch liest, weiss, dass ich eine 2 GB M2-SSD an einem Raspi4 als Fileserver betreibe. Dieser Massenspeicher soll auf allen Rechnern automatisch beim Systemstart gemountet werden.

Ein Eintrag in der /etc/fstab funktionierte bei meiner Manjaro-Installation nicht auf Anhieb. Die Zeile in der /etc/fstab sieht dabei wie folgt aus:

192.168.1.49:/mnt/nas /mnt/nas nfs defaults,auto,_netdev 0 0

Nach einem manuellen mounten mit sudo mount -t nfs 192.168.1.49:/mnt/nas /mnt/nas oder dem Einbinden des zuvor in der /etc/fstab eingetragenen Mountpoints mithilfe von sudo mount /mnt/nas, wurde das NFS-Share gemounted. Nicht jedoch nach einem Neustart des Systems. Denn zusätzlich musste der SystemD-Dienst namens NetworkManager-wait-online.service aktiviert werden, durch den sichergestellt wird, dass die Netzwerkverbindung verfügbar ist, bevor versucht wird das angegebene Share zu mounten:

systemctl enable NetworkManager-wait-online.service

Alternativ besteht die Möglichkeit den Mount in einer SystemD-Unit zu definieren.

Das Verzeichnis, in das die Freigabe gemountet werden soll muss, bei der oben beschrieben Einbindung via /etc/fstab sowie bei der Nutzung eigener SystemD-Mount-Units bereits existieren oder kann mit Root-Rechten angelegt werden, z.B.:

sudo mkdir /mnt/nas

Im Verzeichnis /etc/systemd/system/ legt man eine Datei an, nämlich mnt-nas.mount. Wichtig dabei ist, dass der Dateiname dem Pfad des Mountpoints entspricht. Beispiel: der Mountpoint /mnt/nas erfordert den Dateinamen mnt-nas.mount.

So sieht der Inhalt der Datei (in meinem Fall) aus:

mnt-nas.mount

[Unit]
Description=Raspi4 M2 SSD Mount

[Mount]
What=192.168.1.49:/mnt/nas
Where=/mnt/nas
Type=nfs
ForceUnmount=true

[Install]
WantedBy=multi-user.target

Nachdem diese Datei angelegt wurden, sollte man mögliche gleichlautende Einträge aus der /etc/fstab entfernen, um unliebsame Nebenwirkungen zu vermeiden. Aber Achtung, hier geht es nur um Netzwerklaufwerke, nicht um die eingebauten Platten. Bitte nicht den gesamten Inhalt der /etc/fstab löschen!

Dann gilt es SystemD mitzuteilen, was Sache ist.

sudo systemctl enable mnt-nas.mount 

Durch die obige Konfiguration wird das Share automatisch beim Systemstart eingebunden. Auch hierbei muss wie zuvor beschrieben der NetworkManager-wait-online.service aktiviert werden.

Alternativ kann automount genutzt werden, wobei das Share dann nur eingebunden wird, sobald darauf zugegriffen wird.

Dazu erstellt man zusätzlich zu der SystemD-Mount-Unit eine automount Definition in /etc/systemd/system

Der Dateiname muss ebenfalls dem Mount-Pfad entsprechen, in meinem Fall mnt-nas.automount

[Unit]
Description=Raspi4 M2 SSD Automount

[Automount]
Where=/mnt/nas
TimeoutIdleSec=15

[Install]
WantedBy=multi-user.target

Daraufhin muss die möglicherweise zuvor aktivierte mount Definition deaktiviert werden und die obige automount Unit aktiviert werden:

sudo systemctl disable mnt-nas.mount
sudo systemctl enable mnt-nas.automount

Auch auf einem Notebook, welches zur Bootzeit nicht direkt eine WLAN-Verbindung zum Netzwerk aufbauen kann, funktioniert die automount Methode mit den zwei SystemD-Unit-Dateien einwandfrei.

Ein herzlicher Dank geht an Lioh für ihre unschätzbare Hilfe beim Ausprobieren der verschiedenen Möglichkeiten.

Quelle: https://wiki.archlinux.org/title/NFS#As_systemd_unit

UbIx
Geschrieben von UbIx am 17. Mai 2021

Hi Ralf, tipp von mir (Tumbleweed), es funktioniert bei zuverlässiger seit ich nach dem Tipp aus dem Manjaro Forum: https://forum.manjaro.org/t/root-tip-systemd-mount-unit-samples/1191 in der *.mount im Abschnitt [Unit], die folgenden Abhängigkeiten eingefügt habe: After=network-online.target Wants=network-online.target

Dito gilt auch bei davfs2 mounts.

Ralf Admin
Geschrieben von Ralf am 17. Mai 2021

Danke Ubix. Ich notiere mir das. Bisher hatte ich keine Probleme mit der im Artikel beschriebenen Konfiguration. Die M2-SSD an meinem Raspi4 mounted hyperschnell und sehr zuverlässig.