萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux系統如何檢測硬盤健康狀態

Linux系統如何檢測硬盤健康狀態

  定期檢查硬盤的健康狀態是每個系統管理員必須要做的事情。說到硬盤的健康狀態,這裡就得先說一下S.M.A.R.T.了。

  SMART是一種磁盤自我分析檢測技術,早在90年代末就基本得到了普及

  每一塊硬盤(包括IDE、SCSI)在運行的時候,都會將自身的若干參數記錄下來

  這些參數包括型號、容量、溫度、密度、扇區、尋道時間、傳輸、誤碼率等

  硬盤運行了幾千小時後,很多內在的物理參數都會發生變化

  某一參數超過報警阈值,則說明硬盤接近損壞

  此時硬盤依然在工作,如果用戶不理睬這個報警繼續使用

  那麼硬盤將變得非常不可靠,隨時可能故障

  SMART是和主板BIOS上相應功能配合的

  要使用SMART,必須先進入到主板BIOS設置裡邊啟動相關設置

  一般從Pentium2級別起的主板,都支持SMART

  BIOS啟動以後,就是操作系統級別的事情了

  很遺憾,Windows沒有內置SMART相關工具(需要安裝第三方工具軟件)

  好在Linux上很早就有了SMART支持了

  如果把Linux裝在VMware等虛擬機上,在系統啟動時候可以看到有個服務啟動報錯:smartd

  這個服務器就是smart的daemon進程(因為vmware虛擬機的硬盤不支持SMART,所以報錯)

  可以使用下面的命令來確認硬盤是否打開了SMART支持

  命令代碼如下:

  smartctl -i /dev/sda

  正常情況下應該會得到下面這樣的信息

  命令代碼如下:

  [root@localhost ~]# smartctl -i /dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen

  Home page is http://smartmontools.sourceforge.net/

  命令代碼如下:

  === START OF INFORMATION SECTION ===

  Model Family: Seagate Barracuda 7200.10 family

  Device Model: ST3160815AS

  Serial Number: 5RA6A1K9

  Firmware Version: 4.AAB

  User Capacity: 160,041,885,696 bytes

  Device is: In smartctl database [for details use: -P show]

  ATA Version is: 7

  ATA Standard is: Exact ATA specification draft version not indicated

  Local Time is: Sat Jul 7 17:18:02 2012 CST

  SMART support is: Available – device has SMART capability.

  在這裡,如果看到SMART support is: Disabled,則表示SMART未啟用

  如果我們需要執行如下命令,啟動SMART:

  命令代碼如下:

  smartctl –smart=on –offlineauto=on –saveauto=on /dev/sda

  查看硬盤當前的健康狀態使用如下命令

  命令代碼如下:

  [root@localhost ~]# smartctl -H /dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen

  Home page is http://smartmontools.sourceforge.net/

  命令代碼如下:

  === START OF READ SMART DATA SECTION ===

  SMART overall-health self-assessment test result: PASSED

  請注意result後邊的結果:PASSED,這表示硬盤健康狀態良好

  如果這裡顯示Failure,那麼最好立刻給服務器更換硬盤。

  執行如下命令可以看到詳細的參數:

  命令代碼如下:

  [root@localhost ~]# smartctl -A /dev/sda

  smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce Allen

  Home page is http://www.jb51.net/

  命令代碼如下:

  === START OF READ SMART DATA SECTION ===

  SMART Attributes Data Structure revision number: 10

  Vendor Specific SMART Attributes with Thresholds:

  ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate 0x000f 100 253 006 Pre-fail Always – 0

  3 Spin_Up_Time 0×0003 097 097 000 Pre-fail Always – 0

  4 Start_Stop_Count 0×0032 100 100 020 Old_age Always – 818

  5 Reallocated_Sector_Ct 0×0033 100 100 036 Pre-fail Always – 0

  7 Seek_Error_Rate 0x000f 085 060 030 Pre-fail Always – 369003829

  9 Power_On_Hours 0×0032 084 084 000 Old_age Always – 14527

  10 Spin_Retry_Count 0×0013 100 100 097 Pre-fail Always – 0

  12 Power_Cycle_Count 0×0032 100 100 020 Old_age Always – 817

  187 Reported_Uncorrect 0×0032 100 100 000 Old_age Always – 0

  189 High_Fly_Writes 0x003a 100 100 000 Old_age Always – 0

  190 Airflow_Temperature_Cel 0×0022 052 046 045 Old_age Always – 48 (Lifetime Min/Max 47/52)

  194 Temperature_Celsius 0×0022 048 054 000 Old_age Always – 48 (0 11 0 0)

  195 Hardware_ECC_Recovered 0x001a 074 062 000 Old_age Always – 188295533

  197 Current_Pending_Sector 0×0012 100 100 000 Old_age Always – 0

  198 Offline_Uncorrectable 0×0010 100 100 000 Old_age Offline – 0

  199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always – 0

  200 Multi_Zone_Error_Rate 0×0000 100 253 000 Old_age Offline – 0

  202 TA_Increase_Count 0×0032 100 253 000 Old_age Always – 0

  上邊列出的參數表中可供進行技術分析和參考,使用下邊的命令可以輸出完整結果:

  命令代碼如下:

  smartctl -a /dev/sda

copyright © 萬盛學電腦網 all rights reserved