尝试启动 CentOS 7 时出现以下错误:
Jul 6 13:20:15 systemd-fsck: fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/disk/by-uuid/45544ef5-118c-478f-a3e8-a4953b3fe71b
Jul 6 13:20:15 systemd-fsck: fsck failed with error code 8.
Jul 6 13:20:15 systemd-fsck: Ignoring error.
Jul 6 13:33:17 systemd-fsck: fsck: error 2 (No such file or directory) while executing fsck.ext2 for /dev/disk/by-uuid/45544ef5-118c-478f-a3e8-a4953b3fe71b
Jul 6 13:33:17 systemd-fsck: fsck failed with error code 8.
Jul 6 13:33:17 systemd-fsck: Ignoring error.
这是一个引导分区 XFS。我发现这是一个已知问题在 RHEL 7 中,但我无权访问它们。我怎样才能解决这个问题?
答案1
我在 LVM 上也遇到过类似的问题。问题的关键在于 systemd 在 initrd switch_root 之后立即运行其 systems-fsck,因此文件系统尚未解决。在源代码中,systems-fsck 查询 udev 的文件系统类型,如果在 switch_root 之后运行得太快,udev 将返回 NULL。一个非常简单的解决方案是向服务添加一行,在运行 fsck 之前暂停 3 秒。这是一个差异:
root@localhost:/usr/lib/systemd/system$ diff -u systemd-fsck-root.service.orig systemd-fsck-root.service
--- systemd-fsck-root.service.orig 2015-11-24 23:15:22.593388104 +0000
+++ systemd-fsck-root.service 2015-11-24 21:52:13.489345153 +0000
@@ -17,6 +17,7 @@
[Service]
Type=oneshot
RemainAfterExit=yes
+ExecStart=/bin/sleep 3
ExecStart=/usr/lib/systemd/systemd-fsck
StandardOutput=journal+console
FsckPassNo=1