![1TB 硬盘上的坏块会持续多长时间?](https://linux22.com/image/1264012/1TB%20%E7%A1%AC%E7%9B%98%E4%B8%8A%E7%9A%84%E5%9D%8F%E5%9D%97%E4%BC%9A%E6%8C%81%E7%BB%AD%E5%A4%9A%E9%95%BF%E6%97%B6%E9%97%B4%EF%BC%9F.png)
我正在 1TB 驱动器上运行 badblocks(或者更确切地说是“e2fsck -c”),如果进度指示器有任何指示(没有双关语),它将需要几乎永远才能完成。
现在它说0.01% done, 30:20 elapsed
这意味着这件事需要大约 17 周才能完成,在我看来这似乎有点过长。
这是进行此类检查的正常时间吗,还是仅仅是因为我的怀疑是正确的,因为驱动器出现了故障,所以导致检查时间只比永恒短一点点?
我发现这个问题这里,但这与完成的传球次数有关。
答案1
回答你的问题,我能给出的最接近的答案是我测试过的 3TB。以下是我做的 3 次测试,只更改了参数值,-c
并且只做了 10% 的测试,因为它们花费了大量时间。每个测试都做了 3 次,取平均值。
请注意,“n”是一个-n
选项,非破坏性写入测试。您可以将其删除以进行只读测试。也是-s
为了更好进步信息和-v
代表冗长。
badblocks -svn /dev/sdb
达到 1%:1 小时
达到 10%:8 小时 40 分钟
badblocks -svn -b 512 -c 32768 /dev/sda
达到 1%:35 分钟
达到 10%:4 小时 10 分钟
badblocks -svn -b 512 -c 65536 /dev/sda
达到 1%:16 分钟
达到 10%:2 小时 35 分钟
所以是的,该-c
参数对检查驱动器所需的时间有很大影响。我猜对于 1 TB 硬盘,假设它保持与 3TB 相同的时间范围,它将是此处提到的时间的 1/3,因此要使用-c 65536
1 TB HDD 达到 10%,大约需要 50 分钟。
答案2
Badblocks 运行了 4 次。在 1 TB 外部硬盘上,通常需要大约 70 小时。
答案3
尝试增加一起处理的块数量,如badblocks -svn -b 512 -c 65536 /dev/sda
。这样,我可以在 8 小时内检查 1 TB 的硬盘驱动器。
答案4
前天在我的 6TB RAID 6(破坏性写入模式!)中一个发生故障的 1TB 硬盘上运行了这个程序:
# badblocks -svw -b 4096 -c 65536 /dev/sdb
主板是 ASRock Rack C2550D4I(我知道……),配有 8 个 Samsung SpinPoint M8 HN-M101MBB(我知道……)连接到 SATA3 端口。驱动器是 4K“高级格式”驱动器,因此块大小为 4K。
badblocks
大约需要 28 小时才能完成,并且没有错误。
单个驱动器的读取速度约为 105 MB/秒(平均hdparm -tT
缓冲读取时间),测试整个阵列时为 200–230 MB/秒。现在没有什么更好的了,但对于一堆旧的笔记本电脑驱动器来说还不错。
希望这能有所帮助,就像这个帖子帮助我找到一种在磁盘上运行坏块的快速方法一样。我知道现在它的用途令人生疑,但是当上一次smartctl -t long
由于读取失败而失败时,我决定接触并重写所有扇区几次,以查看 SMART 值会如何变化。另一项smartctl
测试正在进行中,如果再次失败,我将购买新驱动器。