systemd mount 仅在启动时挂载,之后无法重新挂载

systemd mount 仅在启动时挂载,之后无法重新挂载

我创建了一个安装座,mnt-stoneshare.mount放置在/etc/systemd/system

[Unit]
Description=StoneOS Storage Mount

[Mount]
What=/dev/disk/by-uuid/62721034-29ee-4894-a19e-905bcbb20c7c
Where=/mnt/stoneshare

[Install]
WantedBy=local-fs.target

该文件是由我正在开发的软件的安装程序自动生成的。

显然,在生成后(系统正在运行),如果我尝试通过systemctl start /mnt/stoneshare或等效方式启动安装systemctl start mnt-stoneshare.mount,该单元不会失败,但安装不会发生。查了一下journalctl,有一些奇怪的地方:

Nov 22 20:28:12 stone-development-arch systemd[367]: Unmounted /mnt/stoneshare.
Nov 22 20:28:12 stone-development-arch systemd[367]: Unmounting /mnt/stoneshare...
Nov 22 20:28:12 stone-development-arch systemd[367]: Unit mnt-stoneshare.mount is bound to inactive service. Stopping, too.
Nov 22 20:28:12 stone-development-arch kernel: EXT4-fs (md127): mounted filesystem with ordered data mode. Opts: (null)

首先,它说它已安装(因此,我假设退出代码为 0 on mount),但紧接着,它就被卸载了。

并检查systemctl status /mnt/stoneshare,也没有错误:

[root@stone-development-arch StoneOS.RaidProcess]# systemctl status /mnt/stoneshare/
● mnt-stoneshare.mount - StoneOS Storage Mount
   Loaded: loaded (/etc/systemd/system/mnt-stoneshare.mount; enabled)
   Active: inactive (dead) since Sat 2014-11-22 20:28:12 EET; 4min 11s ago
    Where: /mnt/stoneshare
     What: /dev/disk/by-uuid/62721034-29ee-4894-a19e-905bcbb20c7c
  Process: 855 ExecMount=/bin/mount -n /dev/disk/by-uuid/62721034-29ee-4894-a19e-905bcbb20c7c /mnt/stoneshare -t auto (code=exited, status=0/SUCCESS)

systemctl enable /mnt/stoneshare我的安装程序还在尝试启动设备后启用 ( )。如果我重新启动系统,设备就会正确安装。如果我要卸载(通过停止设备)并尝试重新安装(通过启动设备),我会得到相同的错误。

我认为问题在于我的设备的配置,但是,作为systemd新手,我似乎找不到解决方案。

我已读完问题在这里,但似乎并非如此。
另外,我还走过RedHat 上的这个错误但 UUID 和其他所有内容都是正确的,此外,如果在启动时执行安装,则会发生安装。已经经历过其他 帖子也无济于事。

如果手动执行挂载,是什么导致挂载立即被卸载?

答案1

哦,天哪,真是失败了,我在之前的测试中留下了/etc/systemd/user冲突的结果。

显然,当从登录的用户上下文中运行 systemd 单元时,它将偏向于/etc/systemd/user目录 - 这就是为什么它在手动挂载时失败,但在启动时有效。

从用户命名空间中删除该单元,也解决了手动安装的问题。

相关内容