smartctl 的输出令人困惑

smartctl 的输出令人困惑

我看见SmartMonTools:我如何知道我的硬盘上是否有 smartctl 测试正在运行?然后跑了——

$ sudo smartctl -a /dev/sdb | grep "progress" -i -A 1
# 3  Extended captive    Self-test routine in progress 90%       216         -
# 4  Offline             Interrupted (host reset)      60%       215         -
# 5  Short captive       Self-test routine in progress 60%       215         -
# 6  Offline             Interrupted (host reset)      60%       215         -
# 7  Short captive       Self-test routine in progress 60%       215         -
# 8  Short offline       Completed without error       00%       215         

我正在进行一项长时间的扩展测试。

现在要找出状态是什么是非常棘手的,因为我也中断了第一个状态,但它仍然显示了上面的内容 -

并将其运行为 -

$ sudo smartctl -a /dev/sdb | tail
 SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
    1        0        0  Aborted_by_host [90% left] (0-65535)
    2        0        0  Not_testing
    3        0        0  Not_testing
    4        0        0  Not_testing
    5        0        0  Not_testing
Selective self-test flags (0x0):
  After scanning selected spans, do NOT read-scan remainder of disk.
If Selective self-test is pending on power-up, resume after 0 minute delay.

那么这是否意味着没有测试正在运行 atm 或者什么?

另一个问题是在运行测试之前如何确保根本没有测试正在运行。

应该有——

$ sudo smartctl -X /dev/sdb

需要某种方法来确认没有测试在后台运行。

答案1

您的所有自检日志数据结构条目要么是“未测试”,要么是“已中止”,因此没有自检运行(或者更确切地说,当您运行时没有自检运行smartctl)。这就是您验证没有测试正在运行的方法。在您的输出中,跨度 1 的信息与日志条目 #3 匹配,两者都表明中止时还有 90% 的测试需要运行。日志条目 #1 和 #2 可能有更多信息...

正如您所指出的,smartctl -X可用于中止非强制(后台)自检。

在实践中,我发现处理所有这些问题的最简单方法就是使用smartd并定期运行后台测试;那么就无需担心停止测试或查明是否有任何后台测试正在运行。显然,如果您要在新驱动器上快速查找强制测试结果,那么这并不适用!

答案2

对于仍在运行的离线测试,您可能会在-a输出中看到

Offline data collection status:  (0x03)   Offline data collection activity
                                          is in progress.

Total time to complete Offline 
data collection:               (   35) seconds.

相关内容