当我们在磁盘上运行 smartctl -a 时,我们会得到很多输出
指示磁盘好坏的最终状态是什么?
smartctl -a /dev/sdb
smartctl 6.2 2013-07-26 r3841 [x86_64-linux-3.10.0-327.el7.x86_64] (local build)
Copyright (C) 2002-13, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Vendor: SEAGATE
Product: ST2000NX0433
Revision: NS02
User Capacity: 2,000,398,934,016 bytes [2.00 TB]
Logical block size: 512 bytes
Formatted with type 2 protection
Logical block provisioning type unreported, LBPME=0, LBPRZ=0
Rotation Rate: 7200 rpm
Form Factor: 2.5 inches
Logical Unit id: 0x5000c5009eaededf
Serial number: W46064KW
Device type: disk
Transport protocol: SAS
Local Time is: Thu Nov 22 10:38:35 2018 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
Temperature Warning: Disabled or Not Supported
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK
Current Drive Temperature: 23 C
Drive Trip Temperature: 60 C
Manufactured in week 06 of year 2017
Specified cycle count over device lifetime: 10000
Accumulated start-stop cycles: 49
Specified load-unload count over device lifetime: 300000
Accumulated load-unload cycles: 550
Elements in grown defect list: 0
Vendor (Seagate) cache information
Blocks sent to initiator = 1986603075
Blocks received from initiator = 2165723528
Blocks read from cache and sent to initiator = 1298028358
Number of read and write commands whose size <= segment size = 201615101
Number of read and write commands whose size > segment size = 0
Vendor (Seagate/Hitachi) factory information
number of hours powered up = 12335.38
number of minutes until next internal SMART test = 26
Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 26648753 0 0 26648753 0 83475.092 0
write: 0 0 2 2 2 135145.593 0
verify: 3914513941 0 0 3914513941 0 109628.879 0
Non-medium error count: 14
SMART Self-test log
Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ]
Description number (hours)
# 1 Background short Completed 96 2 - [- - -]
Long (extended) Self Test duration: 20400 seconds [340.0 minutes]
以下剂量是良好的适应症吗?
smartctl -a /dev/sda | grep Completed
或者
smartctl -a /dev/sda
echo $?
答案1
smartctl -a
总体健康状况是解决全球问题的产出的一部分
驱动是好是坏?
最好的。在您引用的输出中,该状态在行中报告
SMART Health Status: OK
也可以通过使用, 而不是-H
选项单独获取(带有一些标头)。smartctl
-a
请注意,此评估不是来自 smartmontools,而是来自驱动器本身(请参阅手册页智能控制(8)on -H
option)并且它的含义相当粗略:请参阅来自维基百科:
SMART 状态并不一定表明驱动器过去或现在的可靠性。如果驱动器已经发生灾难性故障,则可能无法访问 SMART 状态。或者,如果驱动器过去遇到过问题,但传感器不再检测到此类问题,则根据制造商的编程,SMART 状态可能会表明驱动器现在完好无损。
和(同一来源):
通过检查 SMART 属性可以获得有关驱动器运行状况的更多详细信息。
整体健康状况由 的退出状态的第 3 位(从 0 开始计数)反映,smartctl
该退出状态是在故障磁盘上设置的。请参阅手册页中的“返回值”部分智能控制(8)。
执行后smartctl
,可以立即通过 (Bash) 表达式计算该位$(($? & 8))
,如下所示
if [ $(($? & 8)) -eq 0 ]; then
echo Good.
else
echo Bad.
fi
请注意,如果设置了位 3,则表达式的$(($? & 8))
计算结果为 8,而不是 1。
对于健康的磁盘来说,退出状态为零smartctl
就足够了(据 SMART 可以判断),但作为一个条件,这可能太强了:该状态的第 6 位反映了设备日志中存在错误记录,这也可能请参阅驱动器和主机之间的通信错误(读取 DMA 错误)。我有几个驱动器,其日志从其生命周期的最初几个小时起就在日志中显示此类错误,但多年来我每天都使用这些驱动器,没有出现任何问题。所以这个标准会给你带来很多误报。当然,这是有争议的,因为毕竟有错误。
无论如何,如果您想考虑除该位(第 6 位)之外的所有位,您可以在测试中使用以下表达式:$(($? & 191))
。
另一方面,标准
smartctl -a /dev/sda | grep Completed
您提到的内容没有说明驱动器的运行状况,因为它只是报告自检已完成,而没有考虑其结果。