站長新書 站長開講 首頁 最新文章 站長著作及審校 FreeBSD 筆記 Linux 筆記 Windows 筆記 虛擬化筆記 網管人雜誌 遊山玩水 關於本站
站長新書 VMware vSphere ICM 團購開跑了!!

Smartmontools-檢查測試硬碟壽命

前言

[Smartmontools] 為用來檢查、測試硬碟相關 S.M.A.R.T 資訊的套件 (例如使用壽命、硬碟溫度...等),當檢測硬碟有問題時還能發 E-Mail 通知您,目前支援硬碟格式為 ATA / ATAPI-3 to -7 Disks、SATA Disk、SCSI Disk、Tape devices。

實作環境

安裝及設定

步驟1.安裝 smartmontools 套件

切換至 Ports Tree 路徑安裝 Smartmontools 套件

 #cd /usr/ports/sysutils/smartmontools   //切換至安裝路徑
 #make install clean                     //安裝套件並清除安裝過程中產生不必要檔案

步驟2.修改 smartd.conf 設定檔

此次實作主機只有一顆 IDE 硬碟 (/dev/ad0),記得將設定檔內的 DEVICESCAN 給註解 (mark) 掉 (原因請看設定檔內註解說明) 否則系統將無法自動執行硬碟檢查。

 #vi /usr/local/etc/smartd.conf                          //修改 smartd 設定檔
 #DEVICESCAN                                             //將此行 mark 掉 (原因請看設定檔內註解)
 /dev/ad0 -a -o on -S on -s (S/../.././02|L/../../6/03)  //每天 AM 2:00 ~ 3:00 執行快速檢查,每週六 AM 3:00 ~ 4:00 執行完整檢查
 /dev/ad0 -H -l error -l selftest -t -I 194              //監控 SMART 狀態
 /dev/ad0 -H -m weithenn@weithenn.org                    //指定硬碟有問題時發送的 mail

步驟3.修改 /etc/rc.conf

修改 rc.conf 以便系統重新開機時能自動啟動 smartd 服務

 #vi /etc/rc.conf
 smartd_enable="YES"                                     //加入此行

步驟4.啟動 smartd 服務

執行如下指令來啟動 smartd 服務

 #/usr/local/etc/rc.d/smartd.sh start                    //啟動 smartd 服務

檢查 smartd 服務是否啟動

 # ps ax |grep smartd
 768  ??  I      0:00.03 /usr/local/sbin/smartd -p /var/run/smartd.pid -c /usr/local/etc/smartd.conf

步驟5.啟動硬碟 S.M.A.R.T 功能

啟動 HDD SMART 參數說明

執行如下指令查看硬碟是否啟動 S.M.A.R.T 功能,此次實作主機為 IDE 硬碟 (/dev/ad0)

 #smartctl -i /dev/ad0
 smartctl version 5.36 [i386-portbld-freebsd6.0] Copyright (C) 2002-6 Bruce Allen
 Home page is http://smartmontools.sourceforge.net/
 === START OF INFORMATION SECTION ===
 Model Family:     Maxtor DiamondMax Plus D740X family
 Device Model:     MAXTOR 6L040J2
 Serial Number:    662208400197
 Firmware Version: A93.0500
 User Capacity:    40,027,029,504 bytes
 Device is:        In smartctl database [for details use: -P show]
 ATA Version is:   5
 ATA Standard is:  ATA/ATAPI-5 T13 1321D revision 1
 Local Time is:    Tue Nov  7 14:59:55 2006 CST
 SMART support is: Available - device has SMART capability.
 SMART support is: Disabled                                         //可發現尚未啟動 HDD SMART 功能
 SMART Disabled. Use option -s with argument 'on' to enable it.

執行下列指令來啟動 HDD SMART 及相關功能

 #smartctl -s on -S on -o on /dev/ad0
 smartctl version 5.36 [i386-portbld-freebsd6.0] Copyright (C) 2002-6 Bruce Allen
 Home page is http://smartmontools.sourceforge.net/
 === START OF ENABLE/DISABLE COMMANDS SECTION ===
 SMART Enabled.
 SMART Attribute Autosave Enabled.
 SMART Automatic Offline Testing Enabled every four hours.

上述設定完成後系統應該會於每日 AM 2:00 ~ 3:00 執行快速檢查 (此例檢查我的 IDE 硬碟花費時間為 2 分鐘),每週六 AM 3:00 ~ 4:00 執行完整檢查(此例檢查我的 IDE 硬碟花費時間為 20 分鐘),當 Smartmontools 檢查發現 HDD 有問題時系統會發 E-Mail 通知您 (剛才設定檔中指定的信箱)。硬碟執行花費時間可由下列指令得知

 #smartctl -c /dev/ad0                                 //顯示硬碟支援檢查測目
 Short self-test routine
 recommended polling time:        (   2) minutes.      //快速檢查花費時間
 Extended self-test routine
 recommended polling time:        (  20) minutes.      //完整檢查花費時間

手動檢查、測試硬碟

若想手動檢查硬碟狀況也可使用下列指令去執行,檢查語法如下:

 smartctl [options] device

常用參數說明如下

參數說明
-h顯示參數說明及範例
-V顯示版本等相關資訊
-i顯示該硬碟的相關資訊(包括是否啟動 SMART)
-a顯示硬碟所有相關資訊
-H顯示硬碟 SMART 健康狀況 (健康 PASSED、生病 FAILED)
-c顯示硬碟支援的檢查、測試項目
-A顯示硬碟檢查後的相關屬性值 (例如 194 Temperature_Celsius 最後值為 HDD 溫度)
-l TYPE顯示硬碟檢查後 Log (TYPE: error, selftest, selective, directory)
-t TEST執行硬碟測試 (TEST: offline, short, long, conveyance, select,M-N pending,N afterselect,on afterselect,off)
-X放棄執行硬碟測試

參考

[smartmontools Home Page]

[richliu’s blog 利用 smartmontools 監測硬碟建康度]

[監測你的硬盤-提前預報系統SMART]

[Eason's Blog S.M.A.R.T]

[smartmontools BadBlockHowTo]

[HOWTO Monitor your hard disk(s) with smartmontools - Gentoo Linux Wiki]

[Dev - 檢查硬碟是否有異常]

[什麼是smartd, 怎麼使用它? 系統應用 Linux技術中堅站]

[Manpage of SMARTD.CONF]

[ttt: smartmontoolsでハードディスクの致命的エラー発生を事前に察知]

[s-star.dal.sh 日々の記録簿 - HDD温度]

[LinuxでDiskの温度を監視する]

[Linux向けハードディスク監視/設定アプリケーションの紹介]

Go To Oddmuse OrgGo To FreeBSD OrgCreative Commons 2.5 Taiwansitestates.com