尝试在 XFS 文件系统上运行时,RHEL7 引导日志显示引用 fsck.ext2 的 systemd-fsck 错误

尝试在 XFS 文件系统上运行时,RHEL7 引导日志显示引用 fsck.ext2 的 systemd-fsck 错误

尝试启动 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

相关内容