this post was submitted on 06 Aug 2023
476 points (97.0% liked)

linuxmemes

20703 readers
1908 users here now

I use Arch btw


Sister communities:

Community rules

  1. Follow the site-wide rules and code of conduct
  2. Be civil
  3. Post Linux-related content
  4. No recent reposts

Please report posts and comments that break these rules!

founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 37 points 1 year ago* (last edited 1 year ago) (6 children)

Here's how to mount an nfs share:

#cat /etc/systemd/system/mnt.data.mount

[Unit]
Description=nfs mount script

[Mount]
What=192.168.0.30:/mnt/tank/Media
Where=/mnt/data
Type=nfs4

[Install]
WantedBy=remote-fs.target
[–] [email protected] 15 points 1 year ago* (last edited 1 year ago) (4 children)

I’ve always mounted network shares in fstab, what’s the benefit to doing it with systemd?

(Also, for those of you learning, this method only works on systemd-based distros)

[–] Still 8 points 1 year ago

you can stop and start it via systemctl and systemd is going to make mounts for fstab entries automatically, I just put local drives in my fstab so that way I can copy mount files between machines

[–] [email protected] 5 points 1 year ago

With these systemd mount files I don't need to touch the fstab, I can use ansible to copy the file, enable the service then start it. I can also have other services like Docker, Jellyfin or whatever to depend on that service. If the nfs share can't be mounted then systemd won't try to start docker.

[–] [email protected] 2 points 1 year ago

Systemd can retry mounting based on the restart policy in case you have an interruption.

[–] [email protected] 6 points 1 year ago (2 children)

Kinda interested now, why would you use systemd script for this instead of fstab ?

[–] [email protected] 2 points 1 year ago

So you can easily start and stop it as a service and you get your logging easily accessible via journalctl as a unit. But practically speaking there's not much difference.

[–] [email protected] 2 points 1 year ago (1 children)

With these systemd mount files I don't need to touch the fstab, I can use ansible to copy the file, enable the service then start it. I can also have other services like Docker, Jellyfin or whatever to depend on that service. If the nfs share can't be mounted then systemd won't try to start docker.

[–] [email protected] 2 points 1 year ago

Oh that's actually really good reason with docker containers that rely on the NFS share. Thanks, I'm gonna steal this

[–] [email protected] 6 points 1 year ago

Yeap! You can even make an automount unit too! That way it’s mounted on demand! Makes life sooo much easier. I even do it for my external drives I use for backups

[–] [email protected] 3 points 1 year ago (1 children)

Meanwhile I found a solution using fstab.

What's the advantage of using a systemd script?

I'll probably switch to simple script, since I don't like the idea of my laptop shouting my NAS access credentials into any available random network on startup.

[–] [email protected] 3 points 1 year ago (1 children)

How would you do this with fstab? (Working with an smb share which I'm assuming is standard)

[–] [email protected] 1 points 1 year ago (1 children)
[–] [email protected] 3 points 1 year ago (1 children)

You may want to consider adding nofail and x-systemd.device-timeout opinions on the mount as well if the NFS isn't critical to the device booting, and speed up your boot process a bit.

[–] [email protected] 3 points 1 year ago

That sounds useful, thank you very much.

[–] [email protected] 3 points 1 year ago (3 children)

An now explain how to setup Kerberos

[–] [email protected] 1 points 1 year ago

No idea, I don't use Kerberos.

[–] [email protected] 1 points 1 year ago
What=Kerberos
Where=pam
[–] [email protected] 0 points 1 year ago

Oh that's easy! I have this friendly multi-page PDF that assumes you have an active directory domain already (god rest your soul if you're raw dogging kerberos and ldap raw) that walks you through the instructions step by step and...

mount.nfs4: access denied by server