2023年12月7日发(作者:)

如何读懂磁盘检测之S.M.A.R.T教程

S.M.A.R.T.(自监测、分析、报告技术):这是现在硬盘普遍采用的数据安全技术,在硬盘工作的时候监测系统对电机、电路、磁盘、磁头的状态进行分析,当有异常发生的时候就会发出警告,有的还会自动降速并备份数据。

早在上个世纪九十年代,人们就意识到数据的宝贵性胜于硬盘自身价值,渴望有种技术能对硬盘故障进行预测并实现相对安全的数据保护,因此S.M.A.R.T技术应运而生。对于不少用户,特别是商业用户而言,一次普通的硬盘故障便足以造成灾难性后果,所以时至今日,S.M.A.R.T技术仍为我们所用。

S.M.A.R.T信息保留在硬盘的系统保留区(service area)也叫固件区内,这个区域一般位于硬盘0物理柱面的最前面几十个物理磁道,由厂商写入相关内部管理程序。系统保留区除了S.M.A.R.T信息表外还包括低级格式化程序、加密解密程序、自监控程序、自动修复程序等。监测软件通过一个名为“SMART RETURN STATUS”的命令(命令代码为:B0h)对S.M.A.R.T信息进行读取,且不允许最终用户对信息进行修改。

在硬盘以及操作系统都支持S.M.A.R.T.技术并且该技术默认开启的的情况下,在不良状态出现时S.M.A.R.T.技术能够在屏幕上显示英文警告信息:“WARNING:IMMEDIATLY BACKUP YOUR DATA AND REPLACE YOUR HARD DISK DRIVE,A FAILURE MAY BE IMMINENT.” (警告:立刻备份你的数据同时更换硬盘驱动器,可能有错误出现。)

1、SMART数据分析:

ID 英文名

中文译最说明

名 优

存储器从一个硬盘表面读取数据时发生的底层数read error rate

错误率。原始值由于不0x01

同厂商的不同计算方据读取v

法而有所不同,其十进错误率

制值往往无意义的。一般来说有数值意味着磁头已出现问题了。

通常是硬盘读写性能0xThroughput Perform读写通的测量值,如果其值有^

02 ance 量性能 变动,有可能硬盘出现了问题。 0x03

Spin-Up Time

盘片启盘片由静止启动加速v 到稳定正常运行速度动时间

的平均所需时间。

一个盘片启动关闭周电机起期的统计值,只有硬盘0x04

Start/Stop Count

从完全断电中启动或停次计v

从睡眠模式恢复,盘片数

主轴电机被启动时才会记一次数。

记录由于损坏而被映射到无损的后备区的扇区计数。当硬盘出现损坏扇区时,可以通过将其物理空间指向到0xReallocated Sector C05 ount

重定位特定的无损区域进行扇区计v 重映射修复,从而出现数 坏扇区的硬盘仍可使用。但当高过一定数值后,后备区消耗殆尽而无法再重映射修复时,这些坏扇区就会显现出来且无法自行修复。0xRead Channel Margi06 n

0x07

Seek Error Rate

0xSeek Time Performa08 nce

除外由于要要求磁头读取这些坏扇区时专门再移动到后备区读写数据,对硬盘读写性能也有影响。

信道读读取数据时信道可用取余量

的余量,该属性没制定任何功用。

(该属性是特定制造商才有的)磁头寻找磁道由于机械问题而出错几率,有多种原因可寻道错误率

能引致出错,如:磁头伺服构件,盘体过热,或损坏。于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。

每次寻道时间的平均寻道性能

^

值,该值短期内迅速减少,有可能硬盘出现了问题。 硬盘自出厂以来加电启动的统计时间,单位0x09

Power-On Hours

硬盘加为小时(或根据制造商v

电时间 设定为分钟或秒),一般用户以该值判定硬盘是否被使用过。

主轴电机在一次加速至正常速度失败后尝0x0a

电机起试重新继续加速到正Spin Retry Count v 常运行速度的统计数,转重试

该值改变时意味着硬盘的机械部件已经出现问题了。

磁头在一次运行失败0x0b

Recalibration Retries

磁头校时尝试校准至正常状v 态的统计数,该值改变准重试

时意味着硬盘的机械部件已经出现问题了。

0x0c

0xPower Cycle Count

设备开该属性表示硬盘电源

关计数 充分开/关循环计数。

软件读操作系统读取数据时Soft Read Error Rate v

0d 取错误的出错率。 率

Western Digital 和 S0xSATA Downshift Errob7 r Count

SATAamsung 特有属性,记降级运 录由于兼容问题导致行计数 降低SATA传输级别运行的计数。

HP专有S.M.A.R.T.(SMART IV)技术的0xb8

End-to-End error

终端校一个特有属性,记录硬v 盘从盘片读取数据到验出错

高速缓存后再传输到主机时数据校验出错的次数。

0xb9

Head Stability

磁头稳Western Digital特有

定性 属性

报告不

Western Digital特有属性

0xInduced Op-Vibratioba n Detection

0xReported Uncorrectabb ble Errors

0x硬件ECC无法恢复的可纠正v

错误计数。

错误

通信超由于无法连接至硬盘Command Timeout v

bc 时 而终止操作的统计数,一般为0,如果远超过0,则可能电源问题,数据线接口氧化或更严重的问题。

硬盘进行写入时对磁头高度进行监控以提供额外的保障。当磁头0xbd

磁头写处于不正常高度进行High Fly Writes v 写入时,写入操作会被入高度

终止,原有数据重写入或者将该扇区重映射到安全区域。该属性是统计值。

Western Digital特有0x气流温属性,计量硬盘内气流Airflow Temperature v

be 度 温度,和检测项0xc2相似。

0xbf

G-sense Error Rate

加速度计量可能对硬盘做成v

错误率 损害的冲击次数。

电源关计量磁头在没有加电闭磁头v

时不移进硬盘的值。

收回计0xPower-off Retract Coc0 unt 数

0xc1

0xc2

磁头升计量磁头在加电时移Load Cycle Count v 进/移出硬盘周期的降计数

值。

温度 v 计量硬盘的温度

硬件Temperature

0xHardware ECC Recovc3 ered

ECC恢 (特定原始值)

重定位记录已重映射扇区和事件计v 可能重映射扇区的事数

等候重件计数。

0xReallocation Event Cc4 ount

0xCurrent Pending Sectc5 or Count

记录了不稳定的扇区定的扇v

的数量。

区计数

无法校记录肯定出错的扇区正的扇v

数量。

区计数

UltraD0xUncorrectable Sectorc6 Count

0xUltraDMA CRC Error MA通记录硬盘通讯时发生v

c7 Count 讯CRC的CRC错误。

错误 0xMulti-Zone Error Rat多区域写入一个区域时发现v

c8 e 错误率 的错误的计数。

0xc8

写入错误率

逻辑读Soft Read Error Rate 取错误v 记录脱轨错误。

数据地记录数据地址标记错址标记v 误(或制造商特定的计错误

用完取消

逻辑数)

v ECC错误计数

Fujitsu的特别属性,v 写入一个区域时发现的错误的计数。

Write Error Rate

0xc9

0xData Address Mark eca rrors

0xcb

0xRun Out Cancel

记录由软件ECC更正Soft ECC Correction ECC纠v

cc 的错误计数。

0xThermal Asperity Ratcd e

记录高温导致的出错热嘈率 v

记数。

记录磁头的飞行高度。0xce

Flying Height

飞行高飞得太低会增加磁头

度 撞毁的机会,飞得太高增加读写错误的机会。 主轴电0xcf

Spin High Current

机浪涌记录主轴电机运转时v

电流计浪涌电流的次数。

0xd0

记录由于电力不足而Spin Buzz 启动主轴电机的蜂鸣声次数。

0xOffline Seek Perform离线寻在其内部测试硬盘的

d1 ance 址效能 寻址能力表现。

(没定性,出现在0xd2

Maxtor 6B200M0 20? ? 0GB 和Maxtor 2R015H1 15GB 的硬盘中)

0xVibration During Wri写操作记录写入操作的震动

d3 te 震动 数。

0x写操作记录写入操作时的冲Shock During Write

d4 冲击 击数。

0xdc

盘体偏移

记录盘体由于冲击或v 温度导致偏离主轴的相对距离。

Disk Shift

0xG-Sense Error Rate 加速计v 从外部诱发的冲击和dd

0xde

Loaded Hours

出错率 振动产生的错误计数。

数据加数据读取时所花费的

载时间 时间。(磁头移动时间)

加载/卸载重

试次数

磁头改变位置时所需时间。

0xLoad/Unload Retry Cdf ount

0xe0

Load Friction

负载摩读写时由于机械摩擦v

擦 做成的阻力。

加载/卸载循v 总负载周期计数。

环计数

磁头加载所需总时间0xLoad/Unload Cycle Ce1 ount

0xe2

Load 'In'-time 磁头 (不包括在停泊区的花费)。

0xTorque Amplification扭矩放尝试来补偿盘片的速v

e3 Count 大计数 度变化的计数。

0xPower-Off Retract Cy断电缩切断电源后电磁枢自v

e4 cle 回周期 动缩回的时间计数。

0xGMR Head Amplitude6 e

0xTemperature

GMR磁头振

磁头振幅计数(磁头反复正反向运动距离)。

硬盘温v 记录硬盘温度。 e7 度

磁盘可使用周期与设 计可使用周期的百分0xEndurance Remainin耐久性e8 g 剩余

0xAvailable Reserved S可用保e8 pace 留空间

0xe9

Power-On Hours

加电时间

0xMedia Wearout Indic介质耗e9 ator 损指标

0xf0

Head Flying Hours

磁头飞行时间

0xf0

Transfer Error Rate

传输错误率

比。

Intel固态硬盘报告的可提供的预留空间占作为一支全新的固态硬盘预留空间的百分比。

处于开机状态的小时数。

Intel固态硬盘报告的NAND刷写寿命,全新时值为100,最低值为1,其跌幅随NAND的擦除周期增加而在0到最大额定周期范围减少。

磁头处于定位中的时间。

在数据传输时连接被重置的次数计数。

(Fujitsu特有属性)

0xf1

Total LBAs Written

LBA写 LBA写入总数计数。

入总数

LBA读取总数计数,部分S.M.A.R.T.检测程0xf2

Total LBAs Read

LBA读序会把原始值显示为

取总数 负数,这是因为该原始值为48位,而不是32位的。

0xfRead Error Retry Rata e

0xf读取错从磁盘读取时的错误误重试v

计数。

自由跌对“自由落体事件”Free Fall Protection v

e 落保护 检测计数。

说明

^

v

表示数值越高越好

表示数值越低越好

重要项:红色底 当超出安全范围会对性能严重影响

例如用任意软件查看硬盘的SMART结果如下:

S.M.A.R.T检测参数分为7列,分别是ID检测代码、属性描述、属性值、最大错误值、阈值、实际值和属性状态。

2、ID检测代码(ID)

ID检测代码不是唯一的,厂商可以根据需要,使用不同的ID代码或根据检测参数的多少增减ID代码的数量。上表已经详细介绍了ID检测代码及其说明。

3、属性描述(Name)

属性描述即检测项目名称。可由厂商自定义增减,由于ATA标准不断更新,有时候同一品牌的不同型号产品也会有所不同。但必须确保S.M.A.R.T规定的几个主要检测项目(虽然不同厂商对检测项目都有特定的命名规则,但这些监测项目的实质其实是一样的)。

4、阈值(Tresh)

是由硬盘厂商指定的可靠的属性值,通过特定公式计算而得。如果有一个属性值低于相应的阈值,就意味着硬盘将变得不可靠,保存在硬盘里的数据也很容易丢失。可靠属性值的组成和大小对不同硬盘来说是有差异的。这里需要注意的是,ATA标准中只规定了一些S.M.A.R.T参数,它没有规定具体的数值,“Threshold”的数值是厂商根据自己产品特性而确定的。

因此,用厂商自己提供的检测软件往往会跟Windows下的检测软件(例如AIDA32)的检测结果有较大出入。这里,推荐以厂商软件的检测结果为标准,因为Windows环境下,系统要求硬盘的启动程序比DOS下多得多,这可能导致硬盘S.M.A.R.T值比DOS环境下检测的波动更大。 5、属性值(VAL)

属性值是指硬盘出厂时预设的最大正常值,一般范围为1~253。通常,最大的属性值等于100(适用于IBM、昆腾、富士通)或253(适用于三星)。当然,也有例外的时候,比如由西部数据公司生产的部分型号硬盘,就用了两个不同的属性值,最初生产时属性值设为200,但后来生产的硬盘属性值又改为100。

6、最大出错值(Wrst)

最大出错值是硬盘运行中曾出现过的最大的非正常值。它是对硬盘累计运行的计算值,根据运行周期,该数值会不断地刷新,并且会非常接近阈值。

S.M.A.R.T分析和判定硬盘的状态是否正常,就是根据这个数值和阈值的比较结果而定。新硬盘开始时有最大的属性值,但随着日常使用或出现错误,该值会不断减小。因此,较大的属性值意味着硬盘质量较好而且可靠性较高,而较小的属性值则意味着故障发生的可能性增大。

7、实际值(Raw)

是硬盘各检测项目运行中的实际数值,很多项目是累计值。例如:上图中的Power Cycle Count(启停次数),累计的实际值是3201,即该硬盘从开始到现在累计加电启停3201次。

8、属性状态(Health)

这是S.M.A.R.T针对前面的各项属性值进行比较分析后,提供的硬盘各属性目前的状态,也是我们直观判断硬盘“健康”状态的重要信息。根据S.M.A.R.T的规定,这种状态一般有正常、警告和报告故障或错误等3种状态。S.M.A.R.T判定出这3个状态与S.M.A.R.T的 Pre-failure/advisory BIT(预知错误/发现位)参数的赋值密切相关。

当Pre-failure/advisory BIT=0,并且可靠属性值远大于阈值的情况下,为正常提示“OK”标志。当Pre-failure/advisory BITt=0,并且可靠属性值大于阈值但接近阈值临界值时,为警告提示“!”标志;当Pre-failure/advisory BITt=1,并且可靠属性值小于阈值时,为报告故障或错误提示“!!!”标志。

在图中,我们发现出现“OK”标志的正常状态下有“值正常”(Value is Normal)和“总是略过”(Always Passing)两个状态说明。它们的区别是:“值正常”表明此项S.M.A.R.T值是正常的,硬盘没有故障;“永远略过”则表明此项只是某参数的记录,没有合格与不合格的标准,如“Power-on time”,这个参数只是记录了硬盘已经加电工作的时间,这个参数应当永远合格,它不用来衡量硬盘的性能,因此显示为“OK:Value is Normal”。

下面我们以ID为“04”的Number of spin-up times(加电次数)检测参数为例,完整地来理解这7列参数的意义:

从图中我们看到此参数规定的属性正常值(VAL)为“100”,这个正常值是通过计算公式:“100-硬盘正常使用寿命期间的加电次数/1024”而给出的。

而最大出错值是硬盘运行的累计计算值。例如如果是新硬盘,则加电次数为0,因此为100-0/1024=100,最大出错值=属性正常值。

随着加电次数的增加,该最大出错值不断变化。厂商规定的阈值为20,即当硬盘的开关电次数达到81920次时(100-81920/1024=20),最大出错值=阈值,系统就会提示用户备份数据。

因此,加电次数在81920次范围之内,并且最大出错值始终大于阈值20的状态下,均为正常。

图中的加电次数(Raw实际值)为3381次,因此最大出错值近似为100,状态显示为“OK:Value is Normal(值正常)”。

需要特别注意的是:每一个参数所给出的值都是经过一些特定的计算公式而给出的。作为用户,只要观察“Wrst”和“Tresh”值的关系,并注意状态提示属性状态信息即可大致了解硬盘的健康状况。