How To Mount a NAS Server by systemd
Create a systemd mount unit file
This unit file MUST contain the path within the name using hyphens(-) instead of slashes(/). In my case, I will be mounting the NFS export at /mnt/things
so my file name will be mnt-things.mount. The mount file itself will be stored at /etc/systemd/system/
here's the full path to the file /etc/systemd/system/mnt-things.mount
.
/etc/systemd/system/mnt-things.mount
[Unit]
Description=Things devices
After=network.target
[Mount]
What=172.16.1.1:/mnt/things
Where=/mnt/things
Type=nfs
Options=_netdev,auto
[Install]
WantedBy=multi-user.target
Start a mount
Reload the daemon:
systemctl daemon-reload
Start the mount:
systemctl start mnt-things.mount
Validate that it all works
If everything is working you should be able to begin using the mount at /mnt/things
and browsing the filesystem. You can also check the status of the mount using the following:
systemctl status mnt-things.mount
> systemctl status mnt-things.mount
● mnt-things.mount - /mnt/things
Loaded: loaded
Active: active (mounted) since Sun 2017-05-21 20:56:44 CDT; 22h ago
Where: /mnt/things
What: 172.16.1.1:/mnt/things
May 21 20:56:44 carterhousekodi systemd[1]: Mounting Things devices...
You'll notice that I omitted the directory creation command (mkdir -p /mnt/things
) for the mount point on the client node, this was intentional. There's no need to create the path when mounting filesystems using systemd, if the Where
path defined in the mount unit file does not exist systemd will create it Automagically.