我刚刚启动我的 Linux 机器,发现我的一个文件系统有错误:我必须以 root 身份登录才能运行fsck
并y
重复点击。有一个很多的错误。太多了,我使用橡皮泥和魔方来按住按键y
(在这种情况下不允许使用自动是选项)。即使按住该y
键,它也需要几个小时才能完成检查,但是当它完成时,系统启动了,我能够访问该文件系统。
因此,就计算机而言,所讨论的文件系统是好的。但我想知道的是我的所有文件是否都很好。这个特定的文件系统上有几千个图像,我做了一个快速的完整性检查,我可以查看其中的一些图像,但我无法手动检查每个文件以确保其完好无损。
有没有某种方法,无论是一般的还是特定的,我可以验证我的文件系统上的文件没有被损坏?文件系统是ext3。
答案1
有没有某种方法,无论是一般的还是特定的,我可以验证我的文件系统上的文件没有被损坏?
如果没有可供参考的文件副本,我认为这是不可能的。你进去看过了/lost+found
吗?如果有什么东西被腐蚀成碎片,那些碎片就会被留在那里fsck
。
我以前也见过这种情况,据我所知,文件系统确实看起来没问题。最终的原因是磁盘出现故障——e2fsck -c
创建了一个大量的坏块列表。如果您遇到系统无响应且平均负载飙升的问题(由于“D”,不间断的睡眠存在 I/O 问题且忙于循环内核的进程),那么这就是您的问题。
不久之后我更换了该磁盘,但它继续工作了几个月(如果我将其插入,可能仍然可以)。你只需要确保使用e2fsck -c
- 看man e2fsck
- 如果你重新格式化,因为不可用的块仍然存在。
如果再次发生这种情况,请使用-c
开关。
答案2
但我想知道的是我的所有文件是否都很好。
Ext3 没有这方面的功能,但 IT 安全中也会出现类似的问题。解决方案是在文件及其元数据上创建哈希和列表(即实际上不可伪造的校验和),并在文件完整性(或可能)有问题时将这些存储的总和与实际总和进行比较。 Tripwire 和 AIDE 等基于主机的入侵检测系统可以在复杂的水平上做到这一点。
据我了解,您希望防止操作错误,在这种情况下,重量级 HIDS 就显得矫枉过正了。
对于您的问题,收集您感兴趣的文件的 SHA-1 和就足够了。
这个特定的文件系统上有几千个图像,我做了一个快速的完整性检查,我可以查看其中的一些图像,但我无法手动检查每个文件以确保其完好无损。
例如,如果您的图像位于 /images 下方,则类似
find /images -type f -exec sha1sum {} \; > images.sha1sums
将创建校验和(需要一段时间),同时
sha1sum -c images.sha1sums
将验证实际文件是否符合存储的校验和。
答案3
我无法添加评论。所以我把它放在这里。除了文件系统测试之外,您还可以使用磁盘工具在磁盘上运行 SMART 测试并验证磁盘的运行状况。