NFS Automount funktioniert einfach nicht

meph!sto

Vice Admiral
Registriert
Nov. 2003
Beiträge
6.657
Hi,
ich nutze Debian mit KDE Plasma und möchte einfach nur, dass mein NFS Laufwerk automatisch beim Start in Dolphin gemounted wird.
Code:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
NAME="Debian GNU/Linux"
VERSION_ID="13"
VERSION="13 (trixie)"
VERSION_CODENAME=trixie
DEBIAN_VERSION_FULL=13.6
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Warum ? Weil da meine Kee2pass Datenbank Datei drauf ist, die ich mit Kee2pass öffnen will.
In dem Auswahldialog von Kee2pass tauchen nicht alle NFS Laufwerke auf, die in Dolphin gelistet sind.
Dolphin:
Screenshot_20260827_212913.png


Kee2pass Auswahldialog:
Screenshot_20260827_212955.png


Wie ihr seht: "01_Files" und "04_GoogleDrive" fehlen im Kee2pass Fenster. Warum ? Keine Ahnung.
Im Kee2pass Fenster tauchen nur per fstab hinzugefügte Laufwerke auf.

Der Eintrag in der /etc/fstab ist
Code:
192.168.1.6:/volume2/web /home/<user>/DISKSTATION nfs nofail,_netdev,x-systemd.automount,nfsvers=3,bg,soft,timeo=150,retrans=3 0 0
Das absurde: wenn ich ein manuelles
Code:
sudo mount -a
mache, wird das LW wie gewollt gemounted.
Nun dachte ich, ich sei schlau und füge unter
Code:
sudo crontab -e
ein
Code:
mount -a
.
Das hat aber nicht funktioniert.

Ich bin mit meinem Latein und Googlen am Ende und wende mich an euch.
Verweise auf "hast du mal ein LLM gefragt" bitte für euch behalten, danke.
 
Zuletzt bearbeitet:
Nutz doch beser systemd anstatt eines cronjobs.

Code:
sudo nano /etc/systemd/system/nas-mount.service

---

[Unit]
Description=NFS Mount DiskStation
After=network-online.target
Wants=network-online.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/mount -t nfs -o nfsvers=3,soft,timeo=150,retrans=3 192.168.1.6:/volume2/web /home/<user>/DISKSTATION
ExecStop=/usr/bin/umount /home/<user>/DISKSTATION

[Install]
WantedBy=multi-user.target

----

sudo systemctl daemon-reload
sudo systemctl enable --now nas-mount.service
 
  • Gefällt mir
Reaktionen: phillow und CoMo
Ich habe zwar nicht viel Ahnung von NFS, aber eine Sache habe ich mir vor 256 Jahren mit Debian 3/Woody gemerkt: in cronjobs/tabs immer den vollen Pfad nutzen.

Auch wenn dein "mount -a" je nur ein Workaround sein soll, trotzdem den vollen Pfad von mount angeben.
 
Danke für den systemd Hinweis.
Ich habe das o.g. einfach kopiert (den <user> natürlich angepasst). Klappt leider nicht.
Ich habe mit systemd leider keine Erfahrung, habe da bisher noch nie was selbst erstellt.

Edit: den "weniger-ist-mehr" Tipp habe ich gestestet: hat nicht funktioniert.

Ich habe nun selbst ChatGPT gefragt und die Lösung scheint tatsächlich zu funktionieren:
Code:
192.168.1.6:/volume2/web /home/<user>/DISKSTATION nfs nofail,_netdev,x-systemd.automount,nfsvers=3,hard,timeo=150,retrans=3 0 0
 
Zuletzt bearbeitet:
Hab mich jetzt ein bisschen schlau gemacht mit NFS (da ich persönlich bis dato nur samba verwendet habe auch bei linux clients), liegt wohl daran ob es ein soft/hard mount is. Bei "soft" wartet nfs nicht ob der server reagiert und überspringt den mount falls keine antwort kommt, was genau das gegenteil bei "hard" ist.

Aber dann hätte normalerweise auch "defaults,nofail_netdev" auch funktionieren müssen da "hard" der standardparameter ist.

Egal, wenigstens läufts jetzt :)
 
Da ist noch ein "bg". Eventuell reagiert das ähnlich wie ein lazy mount und muss explizit aufgerufen werden.
 
meph!sto schrieb:
x-systemd.automount
Der Parameter sorgt dafür, das erst beim Versuch eines Zugriffes der Mount erfolgt.

Keine Ahnung ob das reine Anzeigen der Liste im Keepass das auslöst.

Das sollte funktionieren.

xxx.yyy.zzz.aaa:/srv/export /mnt/nfs-share nfs defaults,nofail,_netdev,nfsvers=4 0 0
 
fehlen die eintraege nur in Keepass?
In dolphin sind die doch vorhanden also ist nfs doch gemountet

poste mal die Ausgabe von df -h
 
Die Einträge fehlen in keepass.
Ob die in anderen Programmen auch fehlen , weiß ich nicht.

Die Einträge "01_Files" und ”04_GoogleDrive" sind per Dolphins GUI eingebunden und nicht per fstab.
Warum die 2 Eintrage nicht in keepass's Auswahldialog auftauchen weiß ich nicht, aber das ist genau der Grund warum ich das Netzlaufwerk zusätzlich per fstab einbinden will/muss

Hier der df -h Auszug

Code:
<user>@Thinkpad-Debian:~$ df -h
Filesystem                Size  Used Avail Use% Mounted on
udev                      7,2G     0  7,2G   0% /dev
tmpfs                     1,5G  1,9M  1,5G   1% /run
efivarfs                  248K   82K  162K  34% /sys/firmware/efi/efivars
/dev/nvme0n1p2            453G   14G  416G   4% /
tmpfs                     7,3G     0  7,3G   0% /dev/shm
tmpfs                     5,0M   16K  5,0M   1% /run/lock
tmpfs                     1,0M     0  1,0M   0% /run/credentials/systemd-journald.service
tmpfs                     7,3G  8,0K  7,3G   1% /tmp
/dev/nvme0n1p1            300M  7,1M  293M   3% /boot/efi
tmpfs                     1,5G  104K  1,5G   1% /run/user/1000
192.168.1.6:/volume2/web  913G  201G  713G  22% /home/<user>/DISKSTATION

Wie man sieht, die Einträge "01_Files" und "04_GoogleDrive" sind nicht aufgeführt.
Ich muss aber auch zu meiner Schande gestehen, dass die beiden Einträge per SMB (via Dolphins GUI) und NICHT per NFS eingebunden sind.
1787891422780.png


Ändert aber dennoch nix daran, dass ich die Netzlaufwerke in KeePass's Auswahldialog nicht angezeigt bekomme.
 
Zuletzt bearbeitet:
So, dein NFS ist gemountet. Was du in Dolphin einbindest interessiert dein Keepass nicht.

Wie sieht es mit den Rechten auf deinen Share aus?

ls -l /home/<user>/DISKSTATION

Kannst du in das Verzeichnis schreiben?

In dem Keepass sehe ich meine NFS hier:


1787893395565.png
 
Danke für deine Geduld.
Ich nutze KeePassXC 2.7.10 und da gibt es keinen Punkt "Netzwerk" (o.ä.).
S. Screenshot:

1787894578959.png


Rechte dürften auch nicht das Problem sein:
Code:
<user>@Thinkpad-Debian:~$ ls -l /home/<user>/DISKSTATION/
total 32
drwxrwxrwx 22 <user> <user>  4096 23. Aug 15:53 01_Files
drwxrwxrwx  3    1024 users    4096  7. Apr 2021  02_Box.com
drwxrwxrwx 18    1024 users    4096 21. Aug 23:06 04_GoogleDrive
-rwxrwxrwx  1    1025 users   16896 14. Feb 2017  Thumbs.db
 
mytosh schrieb:
Nutz doch beser systemd anstatt eines cronjobs.
Nutz doch besser das Systemd-Automount-Feature anstatt einer Systemd-Unit, die eigentlich nur alles manuell macht.

https://linuxbash.sh/post/automounting-with-systemdautomount

Alternativ die alte Lösung:
https://wiki.ubuntuusers.de/Autofs/

meph!sto schrieb:
NFS Automount funktioniert einfach nicht
Das, was du im Startbeitrag beschrieben hast, ist auch kein Automount sondern irgendwas, was man definitiv so nicht umsetzen will. mount per Cronjob ist schon ziemlich krank. Ich erklär Dir jetzt auch gar nicht, wie du das debuggen kannst, weil ich Dich gar nicht darin bestärken will, diese "Lösung" zum Laufen zu kriegen. Das ist "von hinten durch die Brust ins Auge". Vergiss diesen Versuch einfach ganz schnell.

Wenn der Eintrag in der fstab korrekt ist und als Mount-Parameter users angegeben ist, dann kann Dolphin übrigens die Laufwerke auch per Klick einhängen. Das ist natürlich kein Automount im klassischen Sinne. Dolphin nimmt Dir hier nur den Mountbefehl ab.

Sofern du einen wirklichen Automount und keinen statischen Mount haben willst, ist in Deinem Fall systemd-Automount (1. Link) die Lösung, die du willst.

meph!sto schrieb:
Ich habe nun selbst ChatGPT gefragt und die Lösung scheint tatsächlich zu funktionieren:
Die Hälfte der Parameter kannst du Dir sparen. Außerdem würde ich Dir empfehlen, NFSv4 anstatt NFSv3 zu verwenden. Ist noch etwas performanter und braucht auch nur noch einen Port.

Jokeboy schrieb:
Bei "soft" wartet nfs nicht ob der server reagiert und überspringt den mount falls keine antwort kommt, was genau das gegenteil bei "hard" ist.
Bei hard wartet der Client z.B. beim ausschalten solange, bis der Server wieder verfügbar ist. D.h. Dein Client hängt dann beim Runterfahren. Das kann sehr unschön werden.

Jokeboy schrieb:
da ich persönlich bis dato nur samba verwendet habe auch bei linux clients
NFS ist einfacher, performanter und stabiler als Samba. Außerdem ist der NFS-Server schon im Kernel drin.

Wird man nicht zu Samba gezwungen, gibt's bei der Entscheidung zwischen Samba und NFS eigentlich kein Argument für Samba. Windows kann übrigens auch NFS.
 
Zuletzt bearbeitet:
Edit: habe es nun doch mit systemd hinbekommen.
Danke

Ich habe deinen Link befolgt und versucht für mich anzuwenden - Ohne Erfolg.
Hier mal meine *.mount und *.automount Datei
mount-nas.mount:
Code:
[Unit]
Description=Mount NAS NFS Share
After=network.target

[Mount]
What=192.168.1.6:/volume2/web
Where=/home/<user>/DISKSTATION
Type=nfs
Options=defaults

[Install]
WantedBy=multi-user.target

mount-nas.automount:
Code:
[Unit]
Description=Automount NAS NFS Share
Requires=mount-nas.mount
After=network.target

[Automount]
Where=/home/<user>/DISKSTATION
TimeoutIdleSec=0

[Install]
WantedBy=multi-user.target

Die Fehlermeldung die dann immer erscheint:
Code:
Aug 28 13:23:47 Thinkpad-Debian systemd[1]: mount-nas.automount: Where= setting doesn't match unit name. Refusing.

Ich bin gewillt mein Vorhaben mit dem modernen systemd zu realisieren, aber fstab-Eintrag funktioniert bei mir halt auch.

Mein NAS kann kein NFSv4, es kann nur max. NFSv3.

Edit:
habe die Option=defaults,vers=3 hinzugefügt:
Code:
[Unit]
Description=Mount NAS NFS Share
After=network.target

[Mount]
What=192.168.1.6:/volume2/web
Where=/home/<user>/DISKSTATION
Type=nfs
Options=defaults,vers=3

[Install]
WantedBy=multi-user.target

und erhalte eine Fehlermeldung, die mir nix sagt
Code:
<user>@Thinkpad-Debian:/etc/systemd/system$ systemctl status mount-nas.automount
○ mount-nas.automount - Automount NAS NFS Share
     Loaded: bad-setting (Reason: Unit mount-nas.automount has a bad unit file setting.)
     Active: inactive (dead)
   Triggers: ● mount-nas.mount
      Where: /home/<user>/DISKSTATION
 
Zuletzt bearbeitet:
Hier ist mir ein bissel viel Durcheinander.
Vorschlag für Keepass
1. NFS-Share
2. einbinden nur über fstab

Deine anderen Shares sind nur im Dolphin aber nicht im OS eingebunden, deshalb kann keepass sie nicht sehen, wenn dann müsstest du sie auch in fstab eintragen.

Bitte aber die Reihenfolge der Mounts beachten wenn sie unter /home/<user>/DISKSTATION/ liegen sollen

1. muss /home/<user>/DISKSTATION/ angelegt werden
2. dann der NFS mount erfolgen
3. dann deine nachfolgenden Verzeichnisse anlegen, an die deine nachfolgenden Mounts hängen sollen
4. deine zusätzlichen Mounts anhängen
 
Ok, das ist schon mal ein Schritt in die richtige Richtung.

1. Where-Parameter
Den brauchst du nur, wenn die Unit anders heißt als der Mountpoint.
Code:
home-<user>-DISKSTATION.mount
würde den Where-Parameter ersetzen.

/etc/systemd/system/home-<user>-DISKSTATION.mount
INI:
[Unit]
Description=Mount NAS NFS Share

[Mount]
What=192.168.1.6:/volume2/web
Type=nfs
Options=defaults,vers=3

[Install]
WantedBy=multi-user.target

2. Bad Unit File Setting
Probier mal stattdessen: für /etc/systemd/system/home-<user>-DISKSTATION.automount
INI:
[Unit]
Description=Automount NAS NFS Share

[Automount]
What=192.168.1.6:/volume2/web

[Install]
WantedBy=multi-user.target
(Where raus, What rein)

3. Anmerkungen
  • Für <user> setzt du bei Dir auch den tatsächlichen User ein, oder?
  • Und die Freigabe ist auch korrekt: /volume2/web auf dem NAS?
  • Der Mountpoint /home/<user>/DISKSTATION existiert?
  • Nach dem Editieren der Systemd-Units noch ein: systemctl daemon-reload (als Root) ausführen, sonst meckert Systemd.

Ansonsten sieht das soweit gut aus.
 
Zuletzt bearbeitet:
Habe genau deine Anmerkungen so umgesetzt und es funktioniert.
War viel Googlen und trial-and-error, aber ich hab es ohne LLM hinbekommen.
Zu 3.: alles ja, korrekt
 
  • Gefällt mir
Reaktionen: Pummeluff
Zurück
Oben