如何正确命名 systemd 挂载单元?

如何正确命名 systemd 挂载单元?

我正在尝试通过 systemd 在启动后自动挂载 CephFS

我有下一个单元:

[Unit]
SourcePath=/etc/fstab
DefaultDependencies=no
After=remote-fs-pre.target
After=network.target
Wants=network.target
After=network-online.target
Wants=network-online.target
Conflicts=umount.target
Before=umount.target

[Mount]
What=ceph-node1:6789,ceph-node2:6789,ceph-node3:6789:/dev
Where=/mnt/cephfs-dev
Type=ceph
Options=name=devuser,secretfile=/etc/ceph/cephuser.secret

[Install]
WantedBy=remote-fs.target

据我所知,Where=设置必须与单位名称匹配。我接下来会这样做:

[root@centos system]# systemd-escape -p --suffix=mount '/mnt/cephfs-dev'
mnt-cephfs\x2ddev.mount
[root@centos system]# vi /etc/systemd/system/mnt-cephfs\\x2ddev.mount

但有些事情出了问题:

[root@centos system]# systemctl status mnt-ceph\\x2ddev.mount
● mnt-ceph\x2ddev.mount - /mnt/cephfs-dev
   Loaded: error (Reason: Invalid argument)
   Active: inactive (dead)
    Where: /mnt/cephfs-dev
     What: ceph-node1:6789,ceph-node2:6789,ceph-node3:6789:/dev

May 05 10:07:12 centos.imoldovan-lpt systemd[1]: mnt-ceph\x2ddev.mount's Where= setting doesn't match unit name. Refusing.

如何正确命名单元?显然,挂载点中的破折号存在问题/mnt/cephfs-dev,但我需要的正是这个挂载点。

答案1

最后再来总结一下:

问题是那mnt-ceph\x2ddev.mount是一个打字错误。应该是mnt-cephfs\x2ddev.mount这样的。

答案2

挂载单元必须以其控制的挂载点目录命名。例如:挂载点 /home/lennart 必须在单元文件 home-lennart.mount 中配置。

Mount] What=/dev/vdc Where=/a/b/c Type=xfs 单元文件名必须为“abc.mount”,/usr/lib/systemd/system/abc.mount

相关内容