文件系统很复杂,因此易于发生错误。可以用fsck 命令 检查文件系统是否正确和有效。它可以根据指令修复找到的小错误,并将未修复错误报告用户。 幸运的是,文件系统的代码非常有效,所以根本极少出现问题,并且问题通常原因是电源失败、硬件失败、 或操作错误,例如没有正常关闭系统。
大多数系统设置为启动时自动运行fsck , 因此任何错误将在系统使用前被检测到(并根据希望修正)。使用有错误的文件系统可能使问题变得更坏: 如果数据结构有问题,使用这个文件系统可能使之更糟,导致更多的数据丢失。 当然,在大的文件系统上运行fsck 会花一定的时间,如果系统正常 关闭,几乎从不发生错误,因此有一些方法可以不进行检查。如果文件/etc/fastboot 存在,就不检查。另外,如果ext2文件系统在超级快中有一个特定的标记告知该文件系统在上次mount后没有正常unmount. 如果标记指出unmount正常完成(假设正常unmount指出没问题),e2fsck (fsck 的ext2文件系统版) 就不检查系统。/etc/fastboot 是否影响系统依赖于你的启动手稿, 但ext2标记则在你使用e2fsck 时发生作用--基于一个e2fsck 选项(参阅e2fsck 手册页)
自动检查只对启动时自动mount的文件系统发生作用。 使用fsck 手工检查其他文件系统,比如软盘。
如果fsck 发现为修复的问题,你需要深入了解文件系统的一般工作原理和有问题的文件系统的细节, 或好的备份。最后一个办法容易(虽然冗长)安排,如果你自己不知道,有时可以通过朋友、Linux新闻组、电子邮件列表或其他支持源安排。 我很想告诉你更多,但我对这的学习和实践也并不多。Theodore T'so的debugfs 程序应该有用。
fsck 只能运行于未mount的文件系统,不要用于已mount的文件系统(除了启动时的只读根文件系统)。 这是因为它存取原始磁盘,在操作系统不知道的情况下修改文件系统。 There will be trouble, if the operating system is confused.