我想使用来测试我的硬盘badblocks
,但是我不知道应该为块大小(-b
选项)和块编号(-c
选项)使用哪个值。我随机尝试了一些值,看来它们可以显着改变过程的速度。但是,如何选择最佳值?
这是同一问题的相关摘录,已经在使用坏块时如何选择正确的参数上得到了解答。和在现代磁盘上使用badblocks
。
有一个badblocks基准脚本可以满足您的目的。
关于-b
选项:这取决于您的磁盘。现代的大磁盘有4KB的块,在这种情况下,您应该设置-b 4096
。您可以从操作系统(例如lsblk -o NAME,PHY-SeC /dev/sdX
)获取块大小,通常也可以通过从标签上读取磁盘信息或通过查询磁盘的型号来获得块大小。如果-b
将其设置为大于块大小的值,则badblocks
可能会损害结果的完整性(即,您可能会得到假阴性结果:当坏块可能仍然存在时,找不到坏块)。如果-b
将其设置为小于驱动器的块大小,则badblocks
运行速度可能会受到影响。我不确定,但是设置可能还会有其他问题-b
小于您块的大小,因为它无法验证整个块的完整性,因此,如果将其设置得太小,可能仍然会得到假阴性。
该-c
选项对应于应一次检查多少个块。基本上是批量读取/写入。此选项不会影响结果的完整性,但会影响badblocks
运行速度。badblocks
将(可选)对N指定的每N个块进行写入,然后读取,缓冲,检查和重复-c
。如果-c
设置得太低,这将使您的badblocks
运行时间比普通的要长得多,因为排队和处理单独的IO请求会产生开销,并且磁盘可能还会为每个请求带来额外的开销。如果-c
设置得太高,badblocks
可能会耗尽内存。如果发生这种情况,badblocks
它将在启动后很快失效。此处的其他注意事项包括并行badblocks
运行:如果正在运行badblocks
针对同一磁盘上的多个分区(不好的主意),或者针对同一IO通道上的多个磁盘,您可能想要调整-c
到合理的高容量(给定可用内存),badblocks
以便并行运行不会争夺IO带宽并可以理智地并行化。
我将这个答案作为社区Wiki进行进一步的改进
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句