badblocks 可信吗?

Cla*_*ray 9 hardware badblocks hard-disk

我找不到任何关于坏块实际上认为坏块的信息。我已阅读手册页并查看了此处的一堆问题,但找不到具体内容。另外,坏块有多好?我应该相信它的结果吗?我的公司历来在 Hirens Boot CD 上使用 Victoria 来测试硬盘,但这在较新的计算机上并不总是一个好的选择。

fro*_*utz 8

badblocks 读取、写入和比较(不一定按此顺序)。

随后badblocks -v将输出如下消息:

Pass completed, n bad blocks found (x/y/z errors)
Run Code Online (Sandbox Code Playgroud)

这意味着它发现了n坏块,包括x读错误、y写错误和z损坏错误。它考虑读取和写入时发生的读取错误和写入错误(由内核报告)。这些错误也可能是由于电缆/控制器/驱动程序问题引起的。

损坏错误是数据被比较并发现与预期不同的地方(即它读取的数据偏离了先前已知/写入的数据)。特别是badblocks可能会写入各种数据模式(由一个或多个-t pattern选项指定)并检查每个模式是否正确写入。

如果您有另一个程序在badblocks运行时进行自己的写入,则可能会出现损坏错误的误报。如果另一个程序写入,磁盘运行正常,但badblocks不会知道这一点,它只会看到它认为错误的数据。

这也是为什么你永远不应该badblocks在正在使用的驱动器上运行,在已经有一个可以在你不知道的情况下自动挂载的文件系统的驱动器上,或者在你已经怀疑是坏的但你仍然希望恢复数据的驱动器上运行。

在数据恢复方面,您应该始终使用ddrescue而不是badblocks. ddrescue做非常相同的事情badblocks(读取模式),它读取整个驱动器并记录它无法读取的扇区;但同时它会生成一个有用的副本,而badblocks只是完全丢弃数据。


它值得信赖吗?

badblocks是一个和其他任何工具一样的工具,它完全按照手册页中的说明执行 - 在设备中搜索坏块。无论您想做什么,它可能是也可能不是正确的工具。

如果落入坏人之手,这可能是导致数据损坏的原因。所谓的non-destructive模式是虚假的朋友,根本不意味着您的数据安全。

badblocks (写入模式)主要用于在信任数据之前将新的空驱动器通过绞拧器。

对于只读测试,通常最好使用 SMART 自测(smartctl -t longsmartctl -t select)。比badblocks其他 I/O更安全和友好。

  • 值得信赖,我的意思是 __results__ 值得信赖。比如,如果它说有 0 个坏块,那么真的有可能有 0 个坏块吗?我更关心腐败错误的漏报 (3认同)
  • 好吧,这是一个不同的角度,很难真正回答。从表面上看,确实有0个坏块。但硬盘驱动器毕竟喜欢通过重新分配扇区来消除无法纠正的错误。badblocks 看不到这些错误。因此,故障硬盘也有可能出现 0 个错误。它适用于坏块(它重新分配为坏块正在编写测试模式)但驱动器已经在幕后分崩离析。 (2认同)