多年来,我一直在使用 systemd 服务来自动安装我的 windows raid。因为我有一个新的计算机系统,所以我的服务文件不再正常工作。
这是我的 ldmtool.service:
[Unit]
Description=Windows Dynamic Disk Mount
After=local-fs-pre.target
Before=local-fs.target media-LDM.mount
DefaultDependencies=no
[Service]
Type=simple
User=root
ExecStart=/usr/bin/ldmtool create all
[Install]
WantedBy=local-fs.target
如果我现在正在启动我的系统,fstab 安装将找不到映射器设备,我被连接到一个控制台,但可以通过按 strg+D 以默认设置启动 - 之后我的 LDM 卷被正确安装(ldmtool.service 是重新开始并找到卷)。journalctl 显示 ldmtool.service 启动了两次
- 有一个空字符串
Mar 28 11:40:42 user systemd[1]: ldmtool.service: Succeeded.
Mar 28 11:40:43 user ldmtool[960]: []
- 正确地
Mar 28 11:43:18 user systemd[1]: ldmtool.service: Succeeded.
Mar 28 11:43:18 user ldmtool[1093]: [
Mar 28 11:43:18 user ldmtool[1093]: "ldm_vol_DESKTOP-KQMKD2B-Dg0_Volume1"
Mar 28 11:43:18 user ldmtool[1093]: ]
所以它看起来像在第一次 ldmtool 启动时硬盘驱动器没有正确初始化,这就是为什么它没有找到任何卷。我的假设是,我的新系统的启动速度比我多年前的系统快得多。如果我重新启动我的系统(热重启),它会在 50% 的情况下正常启动,甚至在冷“正常”启动时,它也会不时正常启动(很可能是当 HDD 足够快地初始化时)我尝试了很多不同的 After/Before/WantedBy 组合,但没有任何帮助。
我在Debian Bullseye 5.10.0-5-amd64
并且ldmtool 0.2.4-3 adm64
(我的新系统在 Debian Buster(内核 4x)上也发生了同样的事情,之后我升级到了靶心)
我如何编写它实际上正在等待 ldmtool 找到我的卷的服务文件?