1TB驱动器上的坏块需要多长时间?


29

我正在1TB驱动器上运行badblocks(或者更确切地说是“ e2fsck -c”),如果进度指示器有任何指示(没有双关语),它将几乎永远需要完成。

现在它说0.01% done, 30:20 elapsed这意味着要花17周左右的时间才能完成,这在我的书中似乎太过分了。

是进行这种检查的正常时间,还是仅仅因为驱动器故障我的怀疑是正确的,从而使检查所需的时间比永恒的时间短?

我在这里找到了这个问题,但这与通过次数有关。


2
几乎可以肯定,这取决于接口,驱动器以及驱动器的损坏程度(如果实际上有任何故障)。我可以告诉您,在我的一台计算机上,通过SATA连接的1.5TB驱动器进行的误区扫描大约需要70个小时。如果您是通过USB2.0或1.0连接的,那将更长。
Zoredache

它使用e-SATA连接。我想我要花一会儿,看看一夜安眠后它走了多远。
史蒂文·唐

@Zoredache-我认为您的评论应该是答案。
Nifle

除了以上Zoredache的注释之外,还会使用不同的开关来badblocks使其执行不同的任务,例如-w开关,这也会影响运行时间。
JeffG 2011年

1
所需时间(也)将取决于badblocks运行模式:只读,非破坏性读写或破坏性读写。话虽如此,0.1%的30分钟似乎确实很长。
SabreWolfy 2012年

Answers:


20

为了回答您的问题,我能提供的最接近的是经过测试的3TB。这是我进行的3次测试,仅更改了参数值,-c并且最多进行了10%的测试,因为它们花费了大量时间。每次进行3次以获得平均值。

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硬盘驱动器,假设它与3 TB保持相同的时间范围,则将是此处提到的时间的1/3,因此要达到使用-c 655361 TB HDD的10%的时间,大约50分钟


5

Badblocks运行4次。在1 TB的外部HD上,通常需要70个小时左右。


4
为了完整起见,badblocks(仅)默认使用具有-w破坏性写标志的四次运行。
SabreWolfy 2012年

@SabreWolfy您在哪里读到了-w运行badblocks的情况?我找不到此信息。
艾伦·弗朗佐尼

1
-w的手册页显示了它使用的四种写模式。
SabreWolfy

3

尝试增加一起处理的块数,例如中的badblocks -svn -b 512 -c 65536 /dev/sda。这样,我可以在8小时内检查完1 TB硬盘驱动器。


2

我在WD Red 4TB驱动器上运行坏块。由于它们是4k扇区驱动器(已使用选中lsblk -o NAME,PHY-SeC),因此我使用来运行它-b 4096。我想给每个坏块实例提供〜800Mb的RAM,所以我用-c 200000它来给你4096 bytes * 200,000 blocks = 800,000 Kb。他们最初的传输速率为800Mb,但随着时间的流逝而逐渐普及。这些设置确实比标准设置提供了明显的加速。

在3分56秒内运行了1%,但这是4种模式的1%。越接近运行结束,似乎还需要花费更多时间。它在大约17小时内检查了具有第一个模式的磁盘,因此应在68小时内完成4TB的存储

下面的命令运行破坏性写入

我正在使用的命令是: badblocks -svw -b 4096 -c 200000 /dev/sdc -o bb_sdc.txt


0

前天在我的6TB RAID 6中发生故障的1 TB驱动器上运行(破坏性写入模式!):

# badblocks -svw -b 4096 -c 65536 /dev/sdb

主板是华擎机架C2550D4I(我知道...),其8个Samsung SpinPoint M8 HN-M101MBB(我知道...)连接到SATA3端口。这些驱动器是4K“高级格式”驱动器,因此是4K块大小。

badblocks 大约花了28个小时才完成,没有错误。

hdparm -tT测试整个阵列时,单个驱动器的速度约为105 MB /秒(平均缓冲读取时序),而速度为200–230 MB /秒。如今,没有什么比这更好的了,但是对于一堆旧的笔记本电脑驱动器来说却很不错。

希望这对我有帮助,就像该线程帮助我找到一种在磁盘上运行坏块的快速方法一样。我知道这些天的用途令人怀疑,但是当以前的一次smartctl -t long由于读取失败而失败时,我决定让所有扇区都被接触并重写几次,以查看SMART值将如何变化。另一个smartctl测试正在等待中,如果再次失败,我将购买新的驱动器。


-1

一些性能观察:

我正在运行e2fsck -c -c -v /dev/sda2,它位于此设备上:

/dev/sda2  77056 976754431 976677376  3.7T Linux filesystem

当前63.5%的运行时间是53:28:40;53.5小时。进度为1.186%/小时。以这种速度,将需要额外的31个小时来完成,估计总运行时间为85个小时。这是一个USB 3.0设备。iotop表示平均读写速度约为25MB / s。到目前为止,已发现零坏块。

运行的基础命令行为e2fsck

sh -c badblocks -b 4096 -X -s -n /dev/sda2 976677375

发布到StackOverflow状态可以安全地用^ C(SIGTERM)中断坏块。我应该这样做,我看不到停止此测试并在以后再恢复它的不利方面,因为这是磁盘块级操作。在完成扫描百分比之前,我必须先卸载此文件系统。


3
这是一个问题还是答案?
Pierre.Vriens
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.