Linux

smartctl 顯示磁碟狀態不佳的指示是什麼

  • November 25, 2018

當我們在磁碟上執行 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 $?

整體健康狀況是smartctl -a解決全球問題的部分產出

驅動器好還是壞?

最好的。在您引用的輸出中,該狀態在行中報告

SMART Health Status: OK

也可以通過使用, 而不是.-H選項單獨獲得(帶有一些標題) 。smartctl``-a

請注意,此評估並非來自 smartmontools,而是來自驅動器本身(請參閱 man page smartctl(8) on -Hoption),並且其含義相當粗略:請參閱Wikipedia的此引用:

SMART 狀態不一定表示驅動器過去或現在的可靠性。如果驅動器已經發生災難性故障,則可能無法訪問 SMART 狀態。或者,如果驅動器過去曾遇到過問題,但感測器不再檢測到此類問題,則 SMART 狀態可能會根據製造商的程式提示驅動器現在正常。

和(同一來源):

通過檢查 SMART 屬性可以獲得有關驅動器健康狀況的更多詳細資訊。

整體健康狀態由 的退出狀態的第 3 位(從 0 開始計數)反映,該狀態smartctl在故障磁碟上設置。請參閱手冊頁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

您提到的驅動器的健康狀況並沒有說明,因為它只是報告自檢已完成,而沒有考慮其結果。

引用自:https://unix.stackexchange.com/questions/483413