如何在每次启动时强制进行 fsck - 所有(相关)文件系统?

如何在每次启动时强制进行 fsck - 所有(相关)文件系统?

我正在使用一台无风扇 PC(实际上有数百台),它有 debian 6 和 3 个分区(FAT 和 2x ext2)。该系统没有电源按钮,因此大多数人倾向于拔掉插头来“关闭它”,而不是 init 0 (或等效的)。结果,文件系统很快就会产生错误。

我尝试过使用“shutdown -rF”强制进行 fsck,但这似乎不起作用。我想知道是否有某种方法可以告诉系统在安装之前检查每个安装点/FS。

我尝试在 /etc/fstab 中设置 fsck 参数。这通常会给我一个“发现错误”。手动运行 fsck' 消息。

还有其他选择可以尝试吗?

答案1

In/etc/init.d/checkfs.sh是该行,因此在内核命令行上if [ -f /forcefsck ] || grep -s -w -i "forcefsck" /proc/cmdline提供或在关闭时生成文件应该会在下次重新启动时导致 fsck。forcefsck/forcefsck

为了防止手动 fsck 运行,请fsck尝试通过在以下 /etc/default/rcS 条目中-y取消注释并将 no 更改为来尝试自动修复该选项的错误,编辑后它应如下所示:yes

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=yes

一个选项(forcefsck 或 FSCKFIX)并不意味着另一个。

答案2

fsck.mode=force在引导加载程序上添加内核参数。将此选项附加到GRUB_CMDLINE_LINUX_DEFAULT=内部的变量/etc/default/grub。以 root 身份生成一个新的 grub 配置文件:

[root@host]# grub-mkconfig -o /boot/grub/grub.cfg

forcefsck此参数与在安装点的根目录中创建文件具有相同的效果。

使用脚本的解决方案checkfs.sh更适合 Debian,但不适用于其他发行版

答案3

我正在编辑我的答案:

命令是:

sudo tune2fs -c 1 /dev/sdX

根据 manpages -c 参数,tune2fs 计算分区挂载实例的数量。因此,1 强制在每次安装实例后检查 fs。

http://man7.org/linux/man-pages/man8/tune2fs.8.html

相关内容