SMARTによるHDDの自己診断

## ■S.M.A.R.T(Self-Monitoring Analysis and Reporting Technology)
2008年以降に製造されたHDDやSSDにほとんど備わっている自己診断機能。
エラー発生率や読み書き速度の監視だけでなく、モーターの起動の通算回数、通電時間、温度なども測定。
この診断結果を定期的に確認することで、HDDの寿命を予測できるかも？
S.M.A.R.T.情報を見るには専用ソフトが必要で、フリーソフトのCrystal Disk Infoが有名。

ATAコマンドでSMART情報を取得する場合、
　１．SMART ENABLE OPERATIONSコマンドでSMARTを有効化する
　２．SMART READ DATAコマンドで対応している各診断項目の現在値、最悪値、生値を取得する
　３．SMART READ THRESHOLDコマンドで閾値を取得する
の流れで取得できる。

以下に検査項目の一覧を記載するが、メーカや型番ごとにサポートしている項目は異なる。
※各項目とその説明はあちこちからかき集めたため、内容に推測が含まれます。(誤訳もあるかも)

|ID|Attribute Name|Description|
|---|---|---|
|01|Raw Read Error Rate|読み取りエラー発生率|
|02|Throughput Performance|ハードディスクの全般的な処理能力|
|03|Spin Up Time|HDDが設計上定められた回転数に達するまでにかかった平均時間|
|04|Start/Stop Count|モーターが回転/停止した回数|
|05|Reallocated Sectors Count|代替処理されたセクター数|
|07|Seek Error Rate|ヘッドのシークエラー率|
|08|Seek Time Performance|ヘッドのシーク平均時間|
|09|Power-On Hours|HDDが通電されている時間の合計|
|0A|Spin Retry Count|ヘッドのスピンアップ再試行回数|
|0B|Recalibration Retries|歪み補正の再試行回数|
|0C|Device Power Cycle Count|電源ON/OFF回数|
|0D|Soft Read Error Rate|プログラムリードエラー回数|
|BF|G-sense Error Late|外的な衝撃によって引き起こされたプログラムエラーの頻度|
|C0|Power-off Retract Count|電源オフ時にヘッドを退避(アンロード)した回数|
|C1|Load/Unload Cycle Count|ヘッドを復帰/退避(ロード/アンロード)した回数|
|C2|Temperature|温度|
|C3|Hardware ECC recovered|ECC(誤り訂正符号)により検知されたエラーの頻度|
|C4|Reallocation Event Count|不良セクタの代替処理した回数|
|C5|Current Pending Sector Count|バッドセクタ（利用に適さないセクタ）と見なされ、代替処理待ちとなっているセクタ数|
|C6|Off-Line Scan Uncorrectable Sector Count|オフラインスキャン時に訂正できなかったセクタ数|
|C7|UltraDMA CRC Error Count|通信エラーの回数|
|C8|Write Error Rate (Multi Zone Error Rate)|書き込みエラー発生率|
|C9|Soft Read Error Rate|ヘッドの位置がトラックの中心からずれてデータを正しく読み出すことができなかったエラー(オフトラック)の数|
|CA|Data Address Mark Error|データアドレスマーク（DMA）に関係するエラーの発生頻度|
|CB|Run Out Cancel|ECC(誤り訂正符号)によって検知されたエラーの数|
|CC|Soft ECC Correction|ソフトウェアECC(誤り訂正符号)によって修正されたエラーの数|
|CD|Thermal Asperity Rate|ヘッドとプラッターの衝突や摩擦による熱に起因するエラーの数|
|CE|Flying Height|ヘッドの高さ。低すぎるとプラッタとぶつかりやすい。高すぎるとread/writeエラーが起こりやすい|
|CF|Spin High Current|ドライブを回転させるために使用した最大電流の値|
|D0|Spin Buzz|ヘッドがドライブに衝突するのを避けるためにヘッドを垂直方向に跳ね上げた数|
|D1|Offline Seek Performance|オフラインスキャンによって測定されたシーク性能の値|
|D3|Vibration During Write|書き込み中に発生した振動の数|
|D4|Shock During Write|書き込み中に発生した衝撃の数|
|DC|Disk Shift|外部からの衝撃などによって、固定されているプラッターが本来固定されていた位置からずれてしまった距離|
|DD|G-Sense Error Rate|外的な衝撃によって引き起こされたプログラムエラーの頻度|
|DE|Loaded Hours|データロード作業におけるアクチュエーターの動作時間|
|DF|Load/Unload Retry Count|ヘッドがランディングゾーンに退避し、再度プラッター上に戻ろうとする動作(ロード/アンロード)の再試行回数再試行回数|
|E0|Load Friction|機械部品の摩擦によって生じたアクチュエーターの負荷|
|E1|Load Cycle Count|ハードディスクの電源を完全にON/OFFした回数|
|E2|Load-in Time|ヘッドが動作可能状態にある時間の合計|
|E3|Torque Amplification Count|ディスク回転時に必要な瞬間的トルク増幅回数|
|E4|Power-Off Retract Count|電源OFF等によりread/write要求が撤回され、ヘッドが緊急退避した回数|
|E6|GMR Head Amplitude|駆動時における、GMRヘッドの振動の振り幅|
|E7|SSD Life Left|SSDのおよその寿命|
|E8|Available Reserved Space|利用可能な予備領域 (寿命)|
|E9|Media Wearout Indicator|メディア消耗指標|
|EA|Average erase count AND Maximum Erase Count|byte 0-1-2；平均消去数。byte 3-4-5：最大消去数(どちらもbig endian).|
|EB|Good Block Count AND System(Free) Block Count|byte 0-1-2：使用可能なブロックの数(big endian)。byte 3-4：システム領域ブロック数|
|F0|Head Flying Hours|ヘッドの位置調整に費やした時間|
|F1|Total LBAs Written|総書き込み量 (ホスト)|
|F2|Total LBAs Read|総読み込み量 (ホスト)|
|F3|Total LBAs Written Expanded|上位5byte：デバイスが書き込んだ総LBA数。下位7byte：属性 F1(Total LBAs Written)の値|
|F4|Total LBAs Read Expanded|上位5byte：total デバイスが読み込んだ総LBA数. 下位7byte：F2(Total LBAs Read)の値|
|F9|NAND_Writes_1GiB|総書き込み量 (NAND)|
|FA|Read Error Retry Rate|読み込みエラー発生率|
|FB|Minimum Spares Remaining|利用可能な予備領域の割合|
|FC|Newly Added Bad Flash Block|工場出荷時の初期化で発見された不良ブロックの総数|
|FE|Free Fall Protection|落下検出回数|