Answers:
badblocks 读取,写入和比较(不一定按该顺序)。
随后badblocks -v将输出如下消息:
Pass completed, n bad blocks found (x/y/z errors)
这意味着它发现了n坏块,包括x读错误,y写错误和z损坏错误。它考虑读取和写入时发生的读取错误和写入错误(由内核报告)。这些错误也可能是由于电缆/控制器/驱动程序问题引起的。
损坏错误是比较数据并发现与预期的数据不同的地方(即,读取的数据与先前已知/写入的数据有偏差)。特别是badblocks可能会写入各种数据模式(由一个或多个-t pattern选项指定),并检查每个模式是否正确写入。
如果您有另一个程序在badblocks运行时进行自己的写操作,则可能会得到错误的误报。如果有另一个程序写入,则表明磁盘运行正常,但是badblocks不会知道,只是看到了认为错误的数据。
这也就是为什么永远不要badblocks在正在使用的驱动器上运行,在文件系统已经不知不觉地自动挂载的驱动器上运行,或者在怀疑已损坏但仍希望恢复数据的驱动器上运行的原因。
在数据恢复方面,您应始终选择ddrescue而不是badblocks。(读取模式)执行的操作ddrescue几乎相同badblocks,它读取整个驱动器并记下无法读取的扇区;但同时会产生有用的副本,而badblocks只是完全丢弃数据。
值得信赖吗?
badblocks是与其他工具一样的工具,它的功能与手册页中所说的完全相同-在设备上搜索错误的块。无论您要做什么,它可能都不是正确的工具。
如果使用不当,则可能是导致数据损坏的原因。所谓的non-destructive模式是一个虚假的朋友,根本不意味着您的数据安全。
badblocks (写入模式)主要用于在将新的空驱动器与数据信任之前通过绞拧器。
对于只读测试,通常最好使用SMART自测(smartctl -t long或smartctl -t select)。比badblocks其他I / O 更安全,更友好。
badblocks -o成为真假的可能性有多大?在磁盘的最后一块上,我的磁盘上只有一个-这是真实的还是假阳性的?