GNU/Linux 檢測(cè)硬盤(pán)健康狀態(tài):S.M.A.R.T.

2018-07-25 13:53 更新

S.M.A.R.T. 是個(gè)用來(lái)檢測(cè)硬盤(pán)健康狀況的指標(biāo),雖然前文  GNU/Linux中使用 Clonezilla 打造不死的作業(yè)系統(tǒng) 提供了軟件層面的備份方式,但硬件總有老舊、損壞的一天。而一臺(tái)電腦中又以硬盤(pán)里的資料最為重要,這里凍仁將介紹 GNU/Linux 下檢測(cè)、監(jiān)控的方法。

2013-10-16-palimpsest-smart.png

▲ 在 GNOME 上我們可使用 磁碟公用程式 (GNOME Disks) 1 來(lái)檢測(cè) SMART。

安裝 smartmontools

套件 smartmontools 包含了 smartctl, smartd,是個(gè)可以監(jiān)控 ATA, SCSI 硬盤(pán) (storage) SMART (Self-Monitoring, Analysis and Reporting Technology System) 狀態(tài)的工具。我們可以透過(guò)它來(lái)進(jìn)階設(shè)定各種硬盤(pán)退化、錯(cuò)誤警告的回報(bào)機(jī)制。

安裝文字介面的檢測(cè)工具 smartmontools。

   # Debian, Ubuntu
   $ sudo aptitude install smartmontools 

   # CentOS, RHEL, Fedora
   $ sudo yum install smartmontools

smartctl

smartctl 主要是用來(lái)進(jìn)行一次性、暫時(shí)性的硬盤(pán)掃描,以下為常見(jiàn)的使用方法。

  1. 查看該媒體是否支持 SMART 檢測(cè)。

    # - 啟用 (Enabled)。
    $ sudo smartctl -i /dev/sda
    smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-31-generic] (local build)
    Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    
    === START OF INFORMATION SECTION ===
    Device Model:     ST3500413AS
    Serial Number:    Z2AAMWCL
    LU WWN Device Id: 5 000c50 035f695b1
    Firmware Version: JC45
    User Capacity:    500,107,862,016 bytes [500 GB]
    Sector Size:      512 bytes logical/physical
    Device is:        Not in smartctl database [for details use: -P showall]
    ATA Version is:   8
    ATA Standard is:  ATA-8-ACS revision 4
    Local Time is:    Wed Oct 16 21:04:44 2013 CST
    SMART support is: Available - device has SMART capability.
    SMART support is: Enabled
    
    # - 停用 (Disabled)。
    $ sudo smartctl -i /dev/sda
    smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-31-generic] (local build)
    Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    
    === START OF INFORMATION SECTION ===
    Device Model:     ST3500413AS
    Serial Number:    Z2AAMWCL
    LU WWN Device Id: 5 000c50 035f695b1
    Firmware Version: JC45
    User Capacity:    500,107,862,016 bytes [500 GB]
    Sector Size:      512 bytes logical/physical
    Device is:        Not in smartctl database [for details use: -P showall]
    ATA Version is:   8
    ATA Standard is:  ATA-8-ACS revision 4
    Local Time is:    Wed Oct 16 21:05:36 2013 CST
    SMART support is: Available - device has SMART capability.
    SMART support is: Disabled
    
  2. 若尚未啟用 SMART,可以使用 -s 參數(shù)開(kāi)啟它。

    $ sudo smartctl -s on /dev/sda
    smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-31-generic] (local build)
    Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    
    === START OF ENABLE/DISABLE COMMANDS SECTION ===
    SMART Enabled.
    
  3. 支持 SMART 后我們可以使用 -H 參數(shù)來(lái)手動(dòng)檢查硬盤(pán)、隨身硬盤(pán)的建康狀態(tài)。

    # - 通過(guò) (passed)。
    $ sudo smartctl -H /dev/sda
    smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-31-generic] (local build)
    Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    
    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: PASSED
    
    # - 失敗 (failed)。
    $ sudo smartctl -H /dev/sda
    smartctl 5.41 2011-06-09 r3365 [x86_64-linux-3.8.0-31-generic] (local build)
    Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    
    === START OF READ SMART DATA SECTION ===
    SMART overall-health self-assessment test result: FAILED!
    Drive failure expected in less than 24 hours. SAVE ALL DATA.
    Failed Attributes:
    ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
    5 Reallocated_Sector_Ct   0x0033   004   004   005    Pre-fail  Always   FAILING_NOW 1887
    

smartd

smartd 是個(gè)可以把 smartmontools 注冊(cè)成例行性服務(wù) (Daemon) 并使用排程來(lái)監(jiān)控的程式,以下為凍仁啟用的步驟。

  1. 啟用 smartd。

    $ sudo vim /etc/default/smartmontools
    ...
    start_smartd=yes
    smartd_opts="--interval=1800"
    
  2. 備份設(shè)定檔。

    $ sudo cp /etc/smartd.conf /etc/smartd.conf.ori
    
  3. 編輯設(shè)定檔。

    $ sudo vi /etc/smartd.conf
    ......
    
    # 掃描所有的 ATA/SCSI 設(shè)備并將報(bào)告寄送給 root。
    DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner
    
    # 每日 02:00 快速檢查 sda,每周六 03:00 完整檢查 sda。
    /dev/sda -a -o on -S on -s (S/../.././02|L/../../6/03)
    
    # 每日 04:00 快速檢查 sdb,每周六 05:00 完整檢查 sdb。
    /dev/sdb -a -o on -S on -s (S/../.././04|L/../../6/05)
    
    # 監(jiān)控 SMART 狀態(tài)
    /dev/sda -H -l error -l selftest -t -I 194
    /dev/sdb -H -l error -l selftest -t -I 194
    
    # 安靜的檢查,并只郵寄建康狀態(tài)給 admin@example.tw
    /dev/sda -H -C 0 -U 0 -m admin@example.tw
    /dev/sdb -H -C 0 -U 0 -m admin@example.tw
    ......
    
  4. 啟用服務(wù)

    $ sudo /etc/init.d/smartmontools start
    
  5. 觀看記錄檔 (log)。

    $ less /var/log/syslog
    ......
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: smartd 5.41 2011-06-09 r3365 [x86_64-linux-3.2.0-4-amd64] (local build)
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Opened configuration file /etc/smartd.conf
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Drive: DEVICESCAN, implied '-a' Directive on line 21 of file /etc/smartd.conf
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Configuration file /etc/smartd.conf was parsed, found DEVICESCAN, scanning devices
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Device: /dev/sda, type changed from 'scsi' to 'sat'
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Device: /dev/sda [SAT], opened
    ......
    Oct 17 08:59:47 thinkpad-t410 smartd[11523]: Device: /dev/sda [SAT], found in smartd database.
    Oct 17 08:59:48 thinkpad-t410 smartd[11523]: Device: /dev/sda [SAT], is SMART capable. Adding to "monitor" list.
    Oct 17 08:59:48 thinkpad-t410 smartd[11523]: Device: /dev/sda [SAT], state read from /var/lib/smartmontools/smartd.ST9320423AS-5VH55XKG.ata.state
    ......
    Oct 17 08:59:48 thinkpad-t410 smartd[11525]: smartd has fork()ed into background mode. New PID=11525.
    Oct 17 08:59:48 thinkpad-t410 smartd[11525]: file /var/run/smartd.pid written containing PID 11525
    

※ 若想讓 smartd 使用 Gmail 寄送通知件,可使用 sSMTP 來(lái)達(dá)成。如果能再搭上兩步驗(yàn)證里的專屬應(yīng)用程序密碼會(huì)安全些。

當(dāng) SMART 亮起紅燈時(shí),請(qǐng)快速備份并更換硬盤(pán)。這時(shí)可以先拿先前淘汰的舊硬盤(pán)墊擋,否則就趕緊買(mǎi)顆新的補(bǔ)上了! (若您的硬盤(pán)保固還沒(méi)過(guò),那您可以換新硬盤(pán)了,恭喜!)

資料來(lái)源


1. GNOME Disks 原名為 gnome-disk-utility 和 Palimpsest。在部份的版本中需用 palimpsest 指令來(lái)啟用磁盤(pán)公用程式,例 Debian 7.8。 ?


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)