![如何在每次启动时强制进行 fsck - 所有(相关)文件系统?](https://linux22.com/image/52843/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%AF%8F%E6%AC%A1%E5%90%AF%E5%8A%A8%E6%97%B6%E5%BC%BA%E5%88%B6%E8%BF%9B%E8%A1%8C%20fsck%20-%20%E6%89%80%E6%9C%89%EF%BC%88%E7%9B%B8%E5%85%B3%EF%BC%89%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
我正在使用一台无风扇 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。