我有一台机器,它有一个ext4分区作为rootfs。内核放在另一个分区中。一段时间后,内核打印了一个恐慌,因为rootfs被破坏了。运行fsck之后,它按预期引导。我的问题是为什么内核没有尝试恢复文件系统,以及为什么会发生这种错误,尽管ext4具有很强的恢复能力。ext4损坏的原因是什么,它使内核无法挂载rootfs。
谢谢!
发布于 2020-06-08 21:31:03
内核没有尝试恢复文件系统,因为必须为此配置系统。在类似于raid的系统上,用户可能有不同的文件系统(luks、raid、btrfs、zfs等),它们的配置和行为有很大的不同。因此,许多发行版中的默认行为被配置为对存储在磁盘上的数据无害。文件系统损坏的原因可能不同。最坏的情况是硬件故障。
在您的系统中,tune2fs命令可以使用-c (最大挂载计数)选项在每次重新引导时触发强制fsck。此选项设置将检查文件系统的挂载数量,因此每次计算机启动时,将其设置为1将运行fsck。将其设置为-1或0将重置此设置( e2fsck和内核将忽略安装文件系统的次数)。
sudo tune2fs -c 1 /dev/sdXY为此,您需要确保要使用fsck检查和修复的分区在/etc/fstab中设置的pass号大于0(/etc/fstab中的最后一列)。根分区应该设置为1(首先要检查),而其他要检查的分区应该设置为2。
# /etc/fstab: static file system information.
/dev/sda1 / ext4 errors=remount-ro 0 1
/dev/sda5 /home ext4 defaults 0 2此外,您还需要将fsck.repair=yes作为内核参数添加到引导加载器配置中,以便在不受用户干预的情况下启用自动fs修复。
https://unix.stackexchange.com/questions/591678
复制相似问题