![e2fsck:坏块消失!](https://linux22.com/image/100636/e2fsck%EF%BC%9A%E5%9D%8F%E5%9D%97%E6%B6%88%E5%A4%B1%EF%BC%81.png)
先生们,
我需要一些关于 e2fsck 的慈父般的建议:我的磁盘变得越来越不稳定,并且“e2fsck -ccv”确实显示了坏块。但是,我对磁盘进行了重新分区,现在相同的命令报告磁盘状况良好!我的坏块怎么了?当然现在分区都是空的,但是坏块肯定还是坏块吗?磁盘的内部管理是否以某种方式标记了这些块,以至于甚至 e2fsck 也看不到它们?或者 e2fsck 不适用于空分区?或者已经以某种方式进行了修复?我怎样才能找到答案?
并且:使用“-c”与“-cc”的实用性是什么,即我想要何时何地进行读写测试与只读测试?
并且:重新分区后,我尝试了以下操作:“mkfs.ext4 -vcc ...”,希望在创建文件系统的同时检查磁盘,但花了好几个小时。相比之下:创建 FS 后的“e2fsck -ccvy ...”要快得多,对于具有 12 个分区的 500GB 磁盘来说不到一个小时。为什么?在开始做爱之前,我们需要了解生活的真相。
答案1
文件系统坏块列表已过时(忽略闪存文件系统,因为您正在谈论 ext4)。坏块由驱动器重新映射。查找错误 - SMART 计数器中应该有这些错误的永久日志。如果您看到一个或多个错误/“坏块”/“坏扇区”,您应该认为该磁盘不可信。
如果您的重要数据被冗余保存(RAID、备份),有些人会开发一些方法来在测试期间重新建立对驱动器的信任。[*] 您一开始就没有使用 RAID,所以我无法推荐这个。
这些都是生活的事实。 mkfs 与 fsck 的行为是不幸的。依然是读写测试潜在地对于对新购买的驱动器进行压力测试很有用。应该需要一个多小时,因为磁盘 IO 速度约为 100MB/s,并且您要同时写入和读取整个磁盘。 (现代磁盘的相对性能也会影响某些 RAID 模式的可行性)。我还注意到badblocks -w
以不同的模式运行多次传递,这可以解释为什么需要这么长时间。由于坏块列表已过时,您可以直接运行坏块并查找任何错误。
然而,考虑到这需要多长时间以及您在此期间无法使用磁盘,您可能更愿意使用最长的可用 SMART 测试,或者只是dd if=/dev/sdX bs=10M of=/dev/null
看看是否出现任何读取错误。
GNOME 磁盘中提供了 SMART 功能。 (它还有一个基准功能)。错误计数器以扇区为单位进行测量;您可以查看所有标有“扇区”的计数器并检查它们是否全部为零。听起来您可能在“重新分配的扇区”下有一些。
[*] 将新数据写入坏扇区将清除错误。这是通过将逻辑扇区写入“备用区域”中的不同物理扇区来实现的,并且驱动器将确保重新映射逻辑扇区的未来读取。