我一直在互联网上寻找有关此内容的资源,但一直无法找到有关 Badblocks(标准 e2fsprogs 的一部分)的任何官方文档。
我正在使用 Badblocks 来验证我购买的新驱动器,并且输出始终如下:
- 读取错误
- 写入错误
- 比较错误
Badblocks 将数据写入扇区,然后返回并检查以确保数据写入正确,这是对所涉及的所有内容的测试。当写入的数据与读回的数据不匹配时,会弹出比较错误。
我的问题是 - “读取错误”到底是什么?“写入错误”到底是什么?Badblocks 如何确定这些故障?新驱动器和二手驱动器的可接受阈值是多少?
答案1
如果驱动器在操作期间返回错误,则内核块层可以从驱动器返回写入或读取错误。损坏错误是指驱动器未返回任何错误,但写入和读取的数据不匹配。
后一种错误仅发生在写入破坏性或非破坏性坏块测试中,否则就没有任何内容可以比较。
您不应保留任何有坏块的驱动器,除非用于测试和临时数据或至少可以轻松恢复的数据。一些制造商还会更换坏块为 0 但 SMART 显示有部分重新分配扇区的驱动器。请参阅smartctl -a <dev>
。
答案2
我会担心 badblocks 是否会输出以下以外的内容:
Pass completed, 0 bad blocks found (0/0/0 errors)
适用于全新驱动器。
对于二手驱动器,情况就不同了。您可能可以忍受一些坏块,但如果驱动器在保修期内,则应该更换。请注意,大多数制造商都要求您使用他们的工具进行测试并提供“故障代码”。
如果你无法让硬盘通过他们的测试,你可能不得不与他们争辩更换硬盘。你可以先获取 SMART 摘要并将其发送给他们