我在 CentOS 7 上使用 mdadm 设置了 RAID1 设备。当插入两个磁盘时系统可以正常启动,但当只有一个磁盘时系统会挂起。
启动时发生错误,并显示来自 systemd 的以下消息:
dev-md125.device 的启动作业正在运行(54 秒/无限制)
这里的问题是“无限制”部分。如何添加限制以便允许系统启动?
我在 mdadm.conf 中看不到任何内容:
$cat /etc/mdadm.conf
MAILADDR root
AUTO +imsm +1.x -all
ARRAY /dev/md/archive:boot level=raid1 num-devices=2 UUID=1104ad14:c378ffcd:5d2c92be:ffaace05
ARRAY /dev/md/archive:root level=raid1 num-devices=2 UUID=f30b5fcf:d194f469:404a464f:c1b0ba0a
ARRAY /dev/md/archive:swap level=raid1 num-devices=2 UUID=d6490a08:3c6a7311:cb7ddd3f:9eac77ff
我尝试向 fstab 添加超时:
$cat /etc/fstab
UUID=309bc32c-d75b-4ddb-9141-f234be9b72ca / xfs defaults,x-systemd.device-timeout=5 1 1
UUID=b336e2bb-f5d2-4065-9aed-9de77c02c0e2 /boot xfs defaults,x-systemd.device-timeout=5 1 2
UUID=93434118-d16e-4cc7-8ff0-c0891bcbcb72 swap swap defaults,x-systemd.device-timeout=5 0 0
我认为这/etc/systemd/system/sysinit.target.wants/dmraid-activation.service
可能是负责任的,但添加超时并没有改变行为(仍然没有限制):
$cat /etc/systemd/system/sysinit.target.wants/dmraid-activation.service
[Unit]
Description=Activation of DM RAID sets
DefaultDependencies=no
Conflicts=shutdown.target
After=systemd-udev-settle.service
Before=lvm2-activation-early.service cryptsetup.target local-fs.target shutdown.target
Wants=systemd-udev-settle.service
[Service]
ExecStart=/lib/systemd/rhel-dmraid-activation
Type=oneshot
TimeoutSec=5
[Install]
WantedBy=sysinit.target
答案1
我自己没有尝试过,但根据 RedHat 官方网站,您需要按以下步骤操作:
假设您想为 httpd.service 指定超时。
- 复制文件:
cp /usr/lib/systemd/system/httpd.service /etc/systemd/system/httpd.service
- 打开文件并将
TimeoutStartSec=10
参数放在该[service]
部分下。 - 重新加载配置。
systemctl daemon-reload
请参阅这里了解更多信息。