SMART-Test永不结束


17

使用smartmontools运行SMART-Test时,它们永远不会完成。在各种不同的系统和磁盘上,包括在x86和ARM上的Debian,在x64上带有外部和内部驱动器的OS X上,我总是会收到“中断(主机重置。)”消息。即使在所有磁盘都为空的捕获模式下运行(用dd归零)。

我究竟做错了什么?


你没有做错任何事。它不工作的硬件
Ramhound

它是要工作吗?
bot47 2014年

是的,它应该正常工作
Ramhound 2014年

@MaxRied,您是说您已经在许多具有不同磁盘日志的不同计算机上尝试过此操作,但即使对于您知道使用其他SMART分析工具运行良好的磁盘,也从未见过完成?
Frank Thomas

@FrankThomas是的。
bot47 2014年

Answers:


14

当驱动器在测试期间不处理任何输入/输出活动时,它可能进入待机状态,这会增加Interrupted (host reset)条件。尝试以适当的时间间隔从磁盘读取:

while true; do dd if=/dev/disk1 of=/dev/null count=1; sleep 60; done

(替换/dev/disk1为适当的设备;每60秒从该设备读取一个扇区,直到您点击为止ctrl-c

这对我的环境有所帮助:OS X 10.6.8,WD Elements USB连接的驱动器,SAT-SMART驱动程序0.8。

从理论上讲,强制测试应使驱动器保持在线状态。然而,发送的硬件命令smartctl在测试完成之前可能会超时,从而导致内核重置链接并最终导致与上述相同的情况(错误#303)。

有关更多详细信息,请参阅smartmontools-support邮件列表上的此线程。我感谢克里斯蒂安·弗兰克(Christian Franke)的见解。


其他可能的中断(serverfault.com/a/584055):错误的电缆可能导致超时,并且内核将触发重置。我不太确定有必要停止聪明。任何超时和中断都将出现在dmesg / kern.log /中journalctl -fk
东武2014年

哇,真疯了!确认-从zpool反射镜上放下HGST HDN726060ALE610之后,它在10%的速度下停留了36小时(如果没有其他活动,它的完成速度会更快,对吗?)。这些微小的dd读取中有五分钟使它结束。怀疑主义消除了。
Bill McGonigle

/dev/disk1认为是设备或分区,即像/dev/sda/dev/sda1
Merchako

@Merchako这实际上与Mac OS有关。
bot47

5

我尝试了Tobu的解决方案,就我而言,无论在开始测试并中断测试后的某个时候,我一直都在睡眠模式下找到外部USB驱动器,看来dd最终从内核缓存中读取了,并且缓存足够大,可以容纳磁盘进入睡眠模式。我注意到,调用smartctl询问状态始终可以“唤醒”磁盘。所以:这个想法的这个版本对我有用:

sudo bash -c 'while true; do smartctl -a /dev/sdb > /dev/null; sleep 60; done'

5小时后,外部USB磁盘仍在旋转。我第一次可以在外部磁盘上看到smartctl长时间测试完成。

我相信该解决方案还具有磁盘头不会每分钟不必要地移动的优点。长期运行几乎完全在预期的时间完成(keep-awake脚本没有增加运行时间)


3

Ari答案的一种变化是使用watch,因为smartctl实际上跟踪状态可能很有趣:

sudo watch -d -n 60 smartctl -a /dev/sdx

这将smartctl -a每60秒自动更新一次输出,因此您可以看到还剩下多少自检时间,并突出显示更改(因此更容易发现测试确实在进行中)。


+1,从未见过watch
Hashim

1

如果持续时间超过20秒,则强制测试可能无法正常工作。

来源:票证编号303,标题为“在智能测试强制模式下,如ATA设备所描述的那样延长超时时间”。

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.