web-dev-qa-db-ja.com

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

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

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

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

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

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

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

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

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

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

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

  3. OSの実行中に非破壊テストを実行しても安全ですが、パフォーマンスに影響が出る可能性があります。 smartctlのマニュアルページに-t short-t longの両方について記載されているように、

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

-Cを使用してキャプティブモードを呼び出すと、smartctlは、ドライブがビジー状態になって使用できなくなると想定します。これは、OSが使用しているドライブでnotを実行する必要があります。

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

  1. 結果はsmartctl出力で確認できます。これはテスト実行中のものです:
 [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%完了)に注意してください。

39
MadHatter

SMARTの実装はメーカーに依存します。smart -aコマンド。これが Hitachi から自己暗号化ドライブの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アダプターを介して接続されていて、電力が不足しているために適切にシークできなかったときに発生しました。

8