我想在运行 systemd 的 Gentoo 系统上的根文件系统上强制运行 fsck。
我试过了
forcefsck
在我想检查的文件系统的根目录添加一个空文件,例如touch /forcefsck
- 添加
fsck.mode=force
为内核启动参数
到目前为止没有任何效果。正确的做法是什么?
答案1
后者(fsck.mode=force
)是正确的做法。但是,要 fsck 根目录,您必须:
- 有一个由 systemd 控制的 initramfs (以便它可以解析
fsck.mode=force
),并内置相应的 fsck 二进制文件; - 有一个以只读方式挂载rootfs的initramfs(这样从rootfs启动的systemd仍然可以检查它——检查读写挂载的文件系统是不可能的);
- 没有 initramfs 并告诉内核以只读方式挂载 rootfs(通过
ro
内核命令行参数)。
答案2
我遇到了同样的问题,对我有用的是忽略博客上写的内容并阅读手册页。为了简单地强制检查根分区而必须更改引导配置两次听起来不太正确。
passno=1
您在文件系统中指定/etc/fstab
要检查和重新启动的文件系统。只需在重新启动后删除该条目即可。
这手册页