ede*_*881 4 performance filesystems badblocks block-device disk
我badblocks
用来测试我用来启动 RPi 的 32GB class-10 microSD 卡。我已经有一个正常运行的文件系统,所以我不想用-w
选项(破坏性读写测试)扫描它。
我有两个选择:我可以使用默认的只读测试,或者我可以使用非破坏性读写测试(通过备份扇区,破坏性地测试它,然后恢复扇区的原始内容来完成)。
选择测试类型时应该考虑什么?我希望它尽可能快,但我也需要准确的结果。
只读测试只读取。这基本上是几乎所有事情的默认测试方法,与磁盘用于 SMART 自检的方法几乎相同。
无损读写测试的工作原理是覆盖数据,然后读取验证,然后再写回原始数据。验证写入数据是否有效的唯一方法是实际写入数据,没有只读测试会为您做到这一点。
只做读测试的人(大多数,仅仅是因为写测试需要至少两倍的时间)只是真诚地相信,当阅读有效时,写作(以及能够读取后来写入的数据)可能也会有效.
但是,非破坏性是相对的......毕竟,写入本身可能会破坏它(在写入周期有限的介质上),一旦损坏,也无法将原始数据写回,因此即使测试是非破坏性的,如果您的硬件出现故障,它可能仍会丢失一些额外的数据。
因此,如果您希望恢复介质上的数据,则不应使用坏块。尤其是如果您已经知道它会变坏……如果您还没有备份,请ddrescue
直接执行。这也恰好是一个只读测试,日志文件会告诉你错误区域在哪里......