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
成为真假的可能性有多大?在磁盘的最后一块上,我的磁盘上只有一个-这是真实的还是假阳性的?