SMARTテストは何をし、どのように機能しますか?


27

man smartctl 状態(簡潔にするためにSNIPPED):

最初のカテゴリと呼ばれるには、「オンライン」のテスト。テストの2番目のカテゴリは、「オフライン」テストと呼ばれます。通常、ディスクはディスクアクセスが行われている間、オフラインテストを一時停止し、ディスクがアイドル状態になると自動的に再開します。テストの3番目のカテゴリ(および「テスト」という単語が本当に適切な選択である唯一のカテゴリ)は、「自己」テストです。

SMART自動オフラインテストを有効または無効にします。これは、ディスクの欠陥について4時間ごとにドライブをスキャンします。このコマンドは、通常のシステム操作中に指定できます。

テストを実行するのは誰ですか-ドライブファームウェアですか?これらのテストはどのようなものですか-ファームウェアはディスクを読み書きしますか?OS(Linux)でテストを呼び出すのは安全ですか、それともBIOSプロンプトでOSを再起動するとき(「オフラインテスト」)、後でテストをスケジュールできますか?結果はどこに表示されますか-SMARTログ?

回答:


38
  1. ドライブのファームウェアがテストを実行します。

  2. テストの詳細は、たとえばwww.t13.org/Documents/UploadedDocuments/technical/e01137r0.pdfで読むことができます。これは、短いテストと長いテストの要素を要約したものです。

    1. ドライブが独自の電子機器をテストする電気セグメント。このセグメントの特定のテストはベンダー固有ですが、例として:このセグメントには、バッファRAMテスト、読み取り/書き込み回路テスト、読み取り/書き込みヘッド要素のテストなどのテストが含まれます。

    2. ドライブがデータトラックを見つけてサーボする機能をテストするシーク/サーボセグメント。このテストで使用される特定の方法論もベンダー固有です。

    3. ドライブがディスク表面の一部の読み取りスキャンを実行する読み取り/検証スキャンセグメント。スキャンされる表面の量と位置は、完了時間の制約に依存し、ベンダー固有です。

    4. 拡張セルフテストの基準は、2つの例外を除いて、ショートセルフテストと同じです。拡張セルフテストのセグメント(3)は、すべてのユーザーデータ領域の読み取り/検証スキャンであり、ドライブがテストを実行する最大時間制限。

  3. OSの実行中に非破壊テストを実行するのは安全ですが、パフォーマンスへの影響は多少あります。smartctlmanページの両方のために言う-t short-t long

このコマンドは、通常のシステム操作で指定できます(キャプティブモードで実行する場合を除く)

あなたがキャプティブモードを起動する場合は-Csmartctlドライブがビジーアウトすることができます使用不能に想定しています。これは、OSが使用しているドライブでは実行しないでください。

マニュアルページにも示されているように、オフラインテスト(単に定期的なバックグラウンドテストを意味します)は信頼性が低く、公式にATA仕様の一部になることはありませんでした。代わりに、cronから実行します。こうすることで、いつ発生するかがわかり、必要に応じて停止できます。

  1. 結果はsmartctl出力で確認できます。テスト実行中の1つを次に示します。
[root @ risby images]#smartctl -a / dev / sdb
smartctl 6.4 2015-06-04 r4109 [x86_64-linux-4.1.6-201.fc22.x86_64](ローカルビルド)
Copyright(C)2002-15、Bruce Allen、Christian Franke、www.smartmontools.org
[...]
SMARTセルフテストログ構造の改訂番号1
Num Test_Description Status Remaining LifeTime(hours)LBA_of_first_error
#1エラーなしで拡張オフラインを完了00%20567-
#2エラーなしで完了した拡張オフライン00%486-

SMART選択的セルフテストログデータ構造のリビジョン番号0
注:1ではないリビジョン番号は、選択的セルフテストが実行されたことがないことを意味します
SPAN MIN_LBA MAX_LBA CURRENT_TEST_STATUS
   1 0 0 Self_test_in_progress [残り90%](0-65535)
   2 0 0 Not_testing
   3 0 0 Not_testing
   4 0 0 Not_testing
   5 0 0 Not_testing

2つの以前に完了したテスト(それぞれ486および20567時間の電源投入時)と現在実行中のテスト(10%完了)に注意してください。


1
また、smartmontoolsを使用する場合、smartdデーモンはcronjobを必要とせずに定期的なテストを処理できます。また、ドライブの問題の報告も処理しますが、積極的な監視が望ましい場合があります。
GnP

8

SMARTの実装はメーカーに依存し、smart -aコマンドを介して非常に広範なログを利用できる場合があります。以下は、日立の自己暗号化ドライブの1つで得られるものです。

SMART Error Log Version: 1
ATA Error Count: 3

Error 3 occurred at disk power-on lifetime: 2543 hours (105 days + 23 hours)
When the command that caused the error occurred, the device was active or idle.

After command completion occurred, registers were:
ER ST SC SN CL CH DH
-- -- -- -- -- -- --
10 51 08 00 08 00 00  Error: IDNF at LBA = 0x00000800 = 2048

Commands leading to the command that caused the error were:
CR FR SC SN CL CH DH DC   Powered_Up_Time  Command/Feature_Name
-- -- -- -- -- -- -- --  ----------------  --------------------
60 08 68 00 08 00 40 00      00:00:06.139  READ FPDMA QUEUED
27 00 00 00 00 00 e0 00      00:00:06.126  READ NATIVE MAX ADDRESS EXT
ec 00 00 00 00 00 a0 00      00:00:06.125  IDENTIFY DEVICE
ef 03 46 00 00 00 a0 00      00:00:06.125  SET FEATURES [Set transfer mode]
27 00 00 00 00 00 e0 00      00:00:06.125  READ NATIVE MAX ADDRESS EXT
...

このホワイトペーパーは、ログに表示されるエラーコードに光を当てます。一般的なエラーの略語は次のとおりです。

  • AMNF-アドレスマークが見つかりません
  • TONF-トラック0が見つかりません
  • ABRT-コマンドは中止されました
  • IDNF-セクターIDが見つかりません
  • UNC-修正不可能なデータ
  • BBK-不良ブロックマーク

私の場合、IDNFエラー(IDが見つかりません)は、USB-to-SATAアダプターを介してドライブが接続され、たまたま電力不足になったために発生し、適切にシークできませんでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.