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