S.M.A.R.T.

S.M.A.R.T.，全称为“”，即“自我监测、分析及报告技术”，是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较，若监控情况将要或已超出预设安全值的安全范围，就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复，以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外，现在大部分硬盘均配备该项技术。

 功能 
该技术能使硬盘更稳定的运行。作用如下：

 当硬盘的损坏程度还能在软件可修复的范围内（通常由厂商决定），软件就会自动修理，防止数据的进一步损坏。同时报告异常值，异常程度为警告；
 当硬盘的损坏程度已经超出软件的修复承载范围（通常由厂商决定），软件则会尽最大能力防止再次写入数据的丢失（如避开已损坏扇区），同时会报告异常值，异常程度为危险；
 BIOS自检时，主板会检测硬盘的S.M.A.R.T.信息，如果硬盘的异常程度为危险时，会提醒用户及时备份数据（如嗡鸣声或显示文字）。
 Windows 7或以上的Windows系統，如果檢測到硬碟的S.M.A.R.T.錯誤，也會彈出警告視窗，提示用戶備份資料。

历史
最早期的硬盘监控技术起源于1992年IBM在为AS/400计算机的IBM9337硬盘阵列中的IBM 0662 SCSI2代硬盘驱动器之中，后来该技术被命名为Predictive Failure Analysis（故障预警分析技术），它是通过在固件中测量几个重要的硬盘安全参数和评估他们的情况。从物理硬盘发送到监控软件的结果中被限定两种结果：“硬盘安全”和“硬盘不久后会发生故障”。

不久，由個人電腦制造商Compaq和硬盘制造商Seagate、Quantum和提出了名为IntelliSafe的类似技术。通过该技术，硬盘会测量自身的的健康指标并将参量值传送给操作系统和用户的监控软件中，每个硬盘生产商有权决定哪些指标需要被监控和它们的安全阈值。

Compaq于1995年早期将该项技术方案提交到Small Form Factor委员会进行标准化，该方案得到IBM、Seagate、Quantum、和Western Digital所支持。由于IntelliSafe技术的灵活性，委员会接受了该方案，并正式更名S.M.A.R.T.技术，将其标准化并推广至ATA-3行业标准中。

运作原理
该技术所需数据被存放在硬盘物理盘面最前面的磁道中，由硬盘制作商将相关管理程序和数据该磁道中，包括加解密程序，自监控程序，自修复程序等，主机的监控软件可以通过“SMART RETURN STATUS”的命令读取S.M.A.R.T.信息，且这些信息不允许被用户直接修改。

检测属性
下面将列出一些S.M.A.R.T.的原始检测属性和含义。普遍为检测值越高性能越好。即使所有制造商都必须遵守共同的规则，但由于有些检测值在不同硬盘制造商中用不全相同的定义和计量方法而对于不同制作商来说检测值不全是越高越好，所以下面属性的指标只作一般参考。除外，各制造商也会根据自己需要添加一些自己专有的检测属性。

+ 说明 center|12px| 表示数值越高越好 center|12px| 表示数值越低越好 重要项：粉色底 当超出安全范围会对性能严重影响，甚至导致数据丢失。

 ID  ID十六进制值英文名 中文译名最优说明 1 0x01 Read Error Rate底层数据读取错误率center|12px|存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计算方法而有所不同，其十进制值往往无意义的。 2 0x02 Throughput Performance读写通量性能center|12px|通常是硬盘读写性能的测量值，如果其值有变动，有可能硬盘出现了问题。 3 0x03 Spin-Up Time盘片启动时间center|12px|盘片由静止启动加速到稳定正常运行速度的平均所需时间。 4 0x04 Start/Stop Count电机起停次计数center|12px|一个盘片启动关闭周期的统计值，只有硬盘从完全断电中启动或从睡眠模式恢复，盘片主轴电机被启动时才会记一次数。 5 0x05 Reallocated Sector Count重定位磁区计数center|12px|记录由于损坏而被映射到无损的后备区的磁區计数。当硬盘出现损坏磁區时，可以通过将其物理空间指向到特定的无损区域进行重映射修复，从而出现坏磁區的硬盘仍可使用。但当高过一定数值后，后磁區消耗殆尽而无法再重映射修复时，这些坏磁區就会显现出来且无法自行修复。除外由于要要求磁头读取这些坏磁區时专门再移动到后备区读写数据，对硬盘读写性能也有影响。 6 0x06 Read Channel Margin信道读取余量读取数据时信道可用的余量，该属性没制定任何功用。 7 0x07 Seek Error Rate寻道错误率（该属性是特定制造商才有的）磁头寻找磁道由于机械问题而出错几率，有多种原因可能引致出错，如：磁头伺服构件，盘体过热，或损坏。于不同厂商的不同计算方法而有所不同，其十进制值往往无意义的。 8 0x08 Seek Time Performance寻道性能center|12px|每次寻道时间的平均值，该值短期内迅速减少，有可能硬盘出现了问题。 9 0x09 Power-On Hours硬盘加电时间center|12px|硬盘自出厂以来加电启动的统计时间，单位为小时（或根据制造商设定为分钟或秒），一般用户以该值判定硬盘是否被使用过。 10 0x0a Spin Retry Count电机起转重试center|12px|S.M.A.R.T参数电机起转重试，表明了主轴电机的启动尝试次数。这个属性存储了关于主轴电机尝试加速到完全可操作速度的次数（在这种情况下，意味着主轴电机的第一次启动尝试没有成功）。主轴电机频繁的尝试启动，意味着硬盘驱动器的寿命可能将近实际限值。 11 0x0b Recalibration Retries磁头校准重试center|12px|磁头在一次运行失败时尝试校准至正常状态的统计数，该值改变时意味着硬盘的机械部件已经出现问题了。 12 0x0c Power Cycle Count设备开关计数该属性表示硬盘电源充分开/关循环计数。 13 0x0d Soft Read Error Rate软件读取错误率center|12px|操作系统读取数据时的出错率。 183 0xb7 SATA Downshift Error CountSATA降级运行计数Western Digital 和 Samsung 特有属性，记录由于兼容问题导致降低SATA传输级别运行的计数。 184 0xb8 End-to-End error终端校验出错center|12px|HP专有S.M.A.R.T.（SMART IV）技术的一个特有属性，记录硬盘从盘片读取数据到高速缓存后再传输到主机时数据校验出错的次数。 185 0xb9 Head Stability磁头稳定性Western Digital特有属性 186 0xba Induced Op-Vibration DetectionWestern Digital特有属性 187 0xbb Reported Uncorrectable Errors报告不可纠正错误center|12px|硬件ECC无法恢复的错误计数。1880xbc Command Timeout通信超时center|12px|由于无法连接至硬盘而终止操作的统计数，一般为0，如果远超过0，则可能电源问题，数据线接口氧化或更严重的问题。1890xbd High Fly Writes磁头写入高度center|12px|硬盘进行写入时对磁头高度进行监控以提供额外的保障。当磁头处于不正常高度进行写入时，写入操作会被终止，原有数据重写入或者将该扇区重映射到安全区域。该属性是统计值。1900xbe Airflow Temperature气流温度center|12px|Western Digital特有属性，计量硬盘内气流温度，和检测项0xc2相似。1910xbf G-sense Error Rate加速度错误率center|12px|计量可能对硬盘做成损害的冲击次数。1920xc0 Power-off Retract Count电源关闭磁头收回计数center|12px|计量磁头在没有加电时不移进硬盘的值。1930xc1 Load Cycle Count 磁头释放收回循环center|12px|计量磁头在加电时移至停泊区和移至盘片循环的值。1940xc2 Temperature 温度center|12px|如果有合适的传感器的话，这里会显示硬盘温度。请注意该温度并非直接的摄氏度或华氏度。通常来说，将原始值的最低两位字节转化成十进制，即为精确的温度值（单位：摄氏度）。例如：原始值为0x003600090023，将0x23转换为十进制为35，则硬盘温度为35度。1950xc3 Hardware ECC Recovered 硬件ECC恢复（特定原始值）1960xc4 Reallocation Event Count重定位事件计数center|12px|记录已重映射扇区和可能重映射扇区的事件计数。1970xc5 Current Pending Sector Count等候重定的扇区计数center|12px|记录了不稳定的扇区的数量。1980xc6 Uncorrectable Sector Count 无法校正的扇区计数center|12px|记录肯定出错的扇区数量。1990xc7 UltraDMA CRC Error Count UltraDMA通讯CRC错误center|12px|记录硬盘通讯时发生的CRC错误。2000xc8 Multi-Zone Error Rate 多区域错误率center|12px|写入一个区域时发现的错误的计数。2000xc8 Write Error Rate  写入错误率center|12px|Fujitsu的特别属性，写入一个区域时发现的错误的计数。2010xc9 Soft Read Error Rate 逻辑读取错误率center|12px|记录脱轨错误。2020xca Data Address Mark errors 数据地址标记错误center|12px|记录数据地址标记错误（或制造商特定的计数）2030xcb Run Out Cancel 用完取消center|12px|ECC错误计数2040xcc Soft ECC Correction 逻辑ECC纠正center|12px|记录由软件ECC更正的错误计数。2050xcd Thermal Asperity Rate  热嘈率center|12px|记录高温导致的出错记数。2060xce Flying Height 飞行高度记录磁头的飞行高度。飞得太低会增加磁头撞毁的机会，飞得太高增加读写错误的机会。2070xcf Spin High Current 主轴电机浪涌电流计数center|12px|记录主轴电机运转时浪涌电流的次数。2080xd0 Spin Buzz电机启动失败记录由于电力不足而启动主轴电机的蜂鸣声次数。2090xd1 Offline Seek Performance 离线寻址效能在其内部测试硬盘的寻址能力表现。2100xd2 ？ ？（没定性，出现在Maxtor 6B200M0 200GB 和Maxtor 2R015H1 15GB 的硬盘中）2110xd3 Vibration During Write 写操作震动记录写入操作的震动数。2120xd4 Shock During Write 写操作冲击记录写入操作时的冲击数。2200xdc Disk Shift 盘体偏移center|12px|记录盘体由于冲击或温度导致偏离主轴的相对距离。2210xdd G-Sense Error Rate 加速计出错率center|12px|从外部诱发的冲击和振动产生的错误计数。2220xde Loaded Hours 数据加载时间数据读取时所花费的时间。（磁头移动时间）2230xdf Load/Unload Retry Count 加载/卸载重试次数磁头改变位置时所需时间。2240xe0 Load Friction 负载摩擦center|12px|读写时由于机械摩擦做成的阻力。2250xe1 Load/Unload Cycle Count 加载/卸载循环计数center|12px|总负载周期计数。2260xe2 Load 'In'-time 磁头加载耗时磁头加载所需总时间（不包括在停泊区的花费）。2270xe3 Torque Amplification Count 扭矩放大计数center|12px|尝试来补偿盘片的速度变化的计数。2280xe4 Power-Off Retract Cycle 断电缩回周期center|12px|切断电源后电磁枢自动缩回的时间计数。2300xe6 GMR Head Amplitude GMR磁头振幅磁头振幅计数（磁头反复正反向运动距离）。2310xe7 Temperature 硬盘温度center|12px|记录硬盘温度。2320xe8 Endurance Remaining 耐久性剩余磁盘可使用周期与设计可使用周期的百分比。2320xe8 Available Reserved Space 可用保留空间Intel固态硬盘报告的可提供的预留空间占作为一支全新的固态硬盘预留空间的百分比。2330xe9 Power-On Hours 加电时间处于开机状态的小时数。2330xe9 Media Wearout Indicator 介质耗损指标Intel固态硬盘报告的NAND刷写寿命，全新时值为100，最低值为1，其跌幅随NAND的擦除周期增加而在0到最大额定周期范围减少。2400xf0 Head Flying Hours 磁头飞行时间磁头处于定位中的时间。2400xf0 Transfer Error Rate 传输错误率在数据传输时连接被重置的次数计数。（Fujitsu特有属性）2410xf1 Total LBAs Written LBA写入总数LBA写入总数计数。2420xf2 Total LBAs Read LBA读取总数LBA读取总数计数，部分S.M.A.R.T.检测程序会把原始值显示为负数，这是因为该原始值为48位，而不是32位的。2500xfa Read Error Retry Rate 读取错误重试率center|12px|从磁盘读取时的错误计数。2540xfe Free Fall Protection 自由跌落保护center|12px|对“自由落体事件”检测计数。

在非ATA平台上的实现
SCSI
硬盘的传输端口平台主要分为ATA和SCSI两个平台。作为一种硬盘的检测技术，理论上都能在两个平台上实现的，但由于两个平台也存在巨大的不同，S.M.A.R.T.在SCSI上的实现和在ATA的实现上也有所不同。首先，作为ATA上的专有规范，S.M.A.R.T.对ATA系统的干预要比SCSI更明显，S.M.A.R.T.对SCSI更多是起到检测的作用，即使在检测到磁盘有故障时，其只是报告监控端，要人为地处理故障。其次，由于SCSI平台的硬盘比ATA的更为复杂，所以其检测属性也比ATA的多和复杂准确，如包括对盘片和驱动电路版的温度检测（ATA多僅对盘片温度检测），对电压的检测等。
USB
在USB标准中，USB不能用于计算机内部储存设备的基本总线（如ATA，SCSI等），其本身没有为S.M.A.R.T.提供传输数据的途径。在使用ATA硬盘，以USB为传输端口的移动硬盘中，即使硬盘内S.M.A.R.T.仍然运作，但没办法直接向系统提供S.M.A.R.T.的数据。现在新的移动硬盘的内部驱动转换电路已经能以一些方法将硬盘内S.M.A.R.T.的数据通过USB传输到系统或监控程序中读取。

参考文献


Category:電腦貯存裝置