Systemd can be used to mount filesystems not only on boot (simple .mount
file), but also on request by any process. (.automount
file)
The .mount
file should be placed in /etc/systemd/system
NOTE: The filename must be (mountpoint).mount with slashes /
being replaced with dashes -
Example: /mnt/target
--> mnt-target.mount
Here's an example .mount
file for a CIFS share
[Unit]
Description=cifs mount
[Mount]
What=//(url/ip)/(sharename)
Where=/(target mountpoint)
Type=cifs
Options=defaults,username=(user),password=(password),file_mode=0640,dir_mode=0750,iocharset=utf8,uid=(local uid),gid=(local gid)
[Install]
WantedBy=multi-user.target
The corresponding .automount
file needs to have the same name as its .mount
file
Example: mnt-target.mount
and mnt-target.automount
[Unit]
Description=cifs automount
[Automount]
Where=/(target mountpoint)
[Install]
WantedBy=multi-user.target
Enable the .automount
file to mount the filesystem when necessary
# systemctl enable (target-mount).automount
Other services that depend on the filesystem being mounted might have issues with the built-in automounting.
In these cases, the option RequiresMountsFor=
can be set under the [Unit]
configuration to ensure a path is mounted.
Paths are space separated
[Unit]
...
RequiresMountsFor=[PATH 1] [PATH 2]