我有一系列新驱动器,一位朋友建议我在使用新驱动器之前先运行坏块。在对一些新驱动器进行成像之前,我在一些新驱动器上运行了坏块badblocks -v -s -w -b 4096 -o ./sda.log /dev/sda
,而我想象的其他驱动器没有坏块。 ps我还在坏块驱动器上运行了传输智能测试,通过了。
对于我运行坏块的驱动器,映像后的读取吞吐量非常低dd if=/dev/sda bs=4096 of=/dev/null count=1M
,缓存平均下降到 71.1MB/s。对于刚刚刻录磁盘映像的驱动器,平均读取速率为 195MB/s。
我是否通过运行坏块“破坏”了这些驱动器?我可以恢复/重置它们吗?
智能显示
- 坏块的高旋转时间大约为 3000(新驱动器为 0)
- 所有驱动器上的零读取错误和零扇区重定位。
- 所有驱动器自检均通过
- 其他方面几乎相同的
smartctl -a
报告
答案1
部分答案:
badblock -w
实际上写入每个块而不是仅仅读取它,因此您已经完成了“破坏性”测试而不是正常的“非破坏性”测试。
那可以会有差异,特别是如果您写入的映像小于硬盘驱动器的总容量。仅具有图像的硬盘驱动器具有未受影响的较高编号的块,具有坏块的硬盘驱动器在较高编号的块中具有模式。
但我不明白这会如何影响吞吐量。
坏块的高旋转时间大约为 3000(新驱动器为 0)
Spin-up 0 听起来好像该值尚未设置 - 没有硬盘驱动器可以立即旋转。即使重新启动几次后,该值是否仍为 0?
在问题中包含一些实际的 SMART 报告可能会有所帮助。
所有驱动器上的零读取错误和零扇区重定位。
查找错误怎么办?它们实际上会对吞吐量产生影响。
如果您想尝试(这是在黑暗中尝试):取一个或两个坏块硬盘,将零写入所有块dd
(这将覆盖使用的模式badblk
),重新映像硬盘,看看它是否使一个区别。
如果是,则固件以某种方式对待“零”块与“数据”块不同。无论出于何种原因。
另一个想法是硬盘可能有一些快速缓存,可能是闪存,这将使硬盘在以简单方式测量读写速度的测试中看起来不错。因此,他们可以在数据表中写入大量数字来提高实际操作中无法实现的销量。并且执行badblk
写入操作会“溢出”缓存,因此固件决定不再使用它。