linux下的硬盘检测工具 Smartmontools

GodLong 2009-08-16

1.1 什么是Smartmontools?

Smartmontools是一种硬盘检测工具,通过控制和管理硬盘的SMART(SelfMonitoringAnalysisandReportingTechnology,自动检测分析及报告技术)技术来实现的,SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测,当SMART监测并分析出硬盘可能出现问题时会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用,而且SMART技术也不能保证能预报所有可能发生的硬盘故障。SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准,这个标准就是在硬盘上保存一个跟执行情况,可靠程度,读找错误率等属性的表格。所有属性都有一个1byte(大小范围1-253)的标准化值,还包含另一个1byte的关键阶段值,如果属性表格内某个数据接近小于或达到关键阶段值,表明硬盘工作不正常了。

--------------------------------

2.1 Smartmontools的使用

1、启动监控进程

#/etc/init.d/smartdstart

启动 smartd: [ 确定 ]

------------------------------------------------------

2、检查硬盘是否支持SMART,1993年以后出厂的硬盘基本上都支持SMART技术,使用如下命令可以来查看:

# smartctl -i /dev/sda

smartctl version 5.38 [i686-redhat-linux-gnu] Copyright (C) 2002-8 Bruce AllenHome page is http://smartmontools.sourceforge.net/

=== START OF INFORMATION SECTION ===

DeviceModel:ST3320418AS

SerialNumber:9VM1R2WY

FirmwareVersion:CC35

UserCapacity:320,072,933,376bytes

Deviceis:Notinsmartctldatabase[fordetailsuse:-Pshowall]

ATAVersionis:8

ATAStandardis:ATA-8-ACSrevision4

LocalTimeis:SunAug1621:25:182009EDT

SMARTsupportis:Available-devicehasSMARTcapability.

SMARTsupportis:Enabled

在上面的信息可以看到,该硬盘是支持SMART技术,且当前是开启的。如果SMART support is: Disabled表示SMART未启用,执行如下命令,启动SMART:smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda

 

--------------------------------

 

3、检查硬盘健康状态

#smartctl-H/dev/sda

smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen

Homepageishttp://smartmontools.sourceforge.net/

===STARTOFREADSMARTDATASECTION===

SMARToverall-healthself-assessmenttestresult:PASSED

请注意result后边的结果:PASSED,这表示硬盘健康状态良好,如果这里显示Failure,那么最好立刻给服务器更换硬盘。SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的,通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间,有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了,千万不要存在侥幸心理。执行如下命令可以看到详细的参数:

#smartctl-A/dev/sda

smartctlversion5.38[i686-redhat-linux-gnu]Copyright(C)2002-8BruceAllen

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

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

SMARTAttributesDataStructurerevisionnumber:10

VendorSpecificSMARTAttributeswithThresholds:

ID#ATTRIBUTE_NAMEFLAGVALUEWORSTTHRESHTYPEUPDATEDWHEN_FAILEDRAW_VALUE

1Raw_Read_Error_Rate0x000f109100006Pre-failAlways-21618934

3Spin_Up_Time0x0003098098000Pre-failAlways-0

4Start_Stop_Count0x0032100100020Old_ageAlways-12

5Reallocated_Sector_Ct0x0033100100036Pre-failAlways-0

7Seek_Error_Rate0x000f100253030Pre-failAlways-116923

9Power_On_Hours0x0032100100000Old_ageAlways-58

10Spin_Retry_Count0x0013100100097Pre-failAlways-0

12Power_Cycle_Count0x0032100100020Old_ageAlways-6

183Unknown_Attribute0x0032100100000Old_ageAlways-0

184Unknown_Attribute0x0032100100099Old_ageAlways-0

187Reported_Uncorrect0x0032100100000Old_ageAlways-0

188Unknown_Attribute0x0032100099000Old_ageAlways-4

189High_Fly_Writes0x003a100100000Old_ageAlways-0

190Airflow_Temperature_Cel0x0022057056045Old_ageAlways-43(LifetimeMin/Max29/44)

194Temperature_Celsius0x0022043044000Old_ageAlways-43(02500)

195Hardware_ECC_Recovered0x001a048047000Old_ageAlways-21618934

197Current_Pending_Sector0x0012100100000Old_ageAlways-0

198Offline_Uncorrectable0x0010100100000Old_ageOffline-0

199UDMA_CRC_Error_Count0x003e200200000Old_ageAlways-0

240Head_Flying_Hours0x0000100253000Old_ageOffline-226628244340804

241Unknown_Attribute0x0000100253000Old_ageOffline-30093291

242 Unknown_Attribute       0x0000   100   253   000    Old_age   Offline      -       2423580

FLAG是标记,标准数值(VALUE)应当小于或等於关键值(THRESH)。WHEN_FAILED 代表错误信息,上面显示的WHEN_FAILED纵行是空行,说明硬盘没有故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有比较大的坏道。

------------------------------------------------------------------

4、对硬盘进行检测手工对硬盘进行测试的方法有以下四种:

smartctl-tshort<device>后台检测硬盘,消耗时间短

smartctl-tlong<device>后台检测硬盘,消耗时间长

smartctl-C-tshort<device>前台检测硬盘,消耗时间短

smartctl-C-tlong<device>前台检测硬盘,消耗时间长

例如,在后台对硬盘进行详细的检查,命令如下:

#smartctl-tlong/dev/sda

smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen

Home page is

http://smartmontools.sourceforge.net/

===STARTOFOFFLINEIMMEDIATEANDSELF-TESTSECTION===

Sendingcommand:"ExecuteSMARTExtendedself-testroutineimmediatelyinoff-linemode".

Drivecommand"ExecuteSMARTExtendedself-testroutineimmediatelyinoff-linemode"successful.

Testinghasbegun.

Pleasewait54minutesfortesttocomplete.

TestwillcompleteafterMonSep1703:53:322007

Usesmartctl-Xtoaborttest.

上面的信息显示54分钟后将完成检查,同时可以使用 smartctl -X 终止检查。

终止硬盘检查命令的使用方法是:

#smartctl-X/dev/sda

smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen

Homepageishttp://smartmontools.sourceforge.net/

===STARTOFOFFLINEIMMEDIATEANDSELF-TESTSECTION===

Sendingcommand:"AbortSMARToff-linemodeself-testroutine".

Self-testing aborted!

---------------------------------------------------

5、查看硬盘日志 使用“smartctl -l logtype <device>”可以查看硬盘的日志,日志又分为多种类型,如selftest、error等等。

例如查看硬盘检测的日志,如下:

#smartctl-lselftest/dev/sda

smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen

Home page is

http://smartmontools.sourceforge.net/

===STARTOFREADSMARTDATASECTION===

SMARTSelf-testlogstructurerevisionnumber1

NumTest_DescriptionStatusRemainingLifeTime(hours)LBA_of_first_error

#1ExtendedofflineAbortedbyhost90%4365-

#2ExtendedofflineCompletedwithouterror00%4247-

#3ShortofflineAbortedbyhost30%4246-

#4ShortofflineAbortedbyhost10%4246-

# 5 Extended offline Completed without error 00% 4229 -

查看硬盘错误日志:

#smartctl-lerror/dev/sda

smartctlversion5.33[i686-turbo-linux-gnu]Copyright(C)2002-4BruceAllen

Home page is

http://smartmontools.sourceforge.net/

===STARTOFREADSMARTDATASECTION===

SMARTErrorLogVersion:1

No Errors Logged

说明没有错误日志

我主要是要看通电时间

所以只用了

smartctl-A/dev/sda

其中

Power_On_Hours就是我要的数据

相关推荐