Systemd:挂载点中的连字符

Systemd:挂载点中的连字符

默认情况下,udisks2 将可移动驱动器挂载在/运行/媒体/$USER/[UUID]。UUID 包含连字符。

我想在 systemd 服务中使用此挂载点。但 systemd 使用连字符而不是正斜杠。

man systemd.mount 告诉我:

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

/运行/媒体/丹尼尔/76ya27o9-abce-81fv-8j2hj-casjkdjhhlasfd/是否因为有连字符而在 systemd 服务中使用?如果是,该怎么做?

答案1

那么在创建单元时连字符将被转义:

[tom@localhost ~]$ udisksctl mount -b /dev/sdb1 
Mounted /dev/sdb1 at /run/media/tom/A942-EE49.

[tom@localhost ~]$ systemctl --type mount
UNIT                             LOAD   ACTIVE SUB     DESCRIPTION
...
run-media-tom-A942\x2dEE49.mount loaded active mounted /run/media/tom/A942-EE49
...

对于某些较旧版本的 systemd,您可能需要对转义连字符的反斜杠进行转义

[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\\x2dEE49.mount

然而,当我再次使用 systemd 230 进行测试时,显然你不再需要这样做了。所以:

[Unit]
...
[Service]
...
[Install]
WantedBy=run-media-tom-A942\x2dEE49.mount

应该做。

值得一提的是,我认为如果设置的话,udisks2 更喜欢文件系统标签而不是 UUID。

PS 上面的情况(WantedBy=)只是一个例子。它用于使服务(如果已启用)随挂载一起启动。

相关内容