smartctl 的指示表明磁盘状态不佳

smartctl 的指示表明磁盘状态不佳

当我们在磁盘上运行 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 -Hoption)并且它的含义相当粗略:请参阅来自维基百科:

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

您提到的内容没有说明驱动器的运行状况,因为它只是报告自检已完成,而没有考虑其结果。

相关内容