Smartmontoolsを使用してSMART-Testsを実行する場合、それらは決して終了しません。 x86とARMのDebian、x64のOS X、外部ドライブと内部ドライブなど、さまざまなシステムやディスクで常に「割り込み(ホストリセット)」が発生します。ディスクがすべて空(ddでゼロ)のキャプティブモードで実行されている場合でも。
私は何が間違っているのですか?
ドライブがテスト中に入出力アクティビティを処理しない場合、ドライブがスタンバイになり、Interrupted (Host reset)
状態が発生する可能性があります。適切な間隔でディスクから読み取ってみてください。
while true; do dd if=/dev/disk1 of=/dev/null count=1; sleep 60; done
(/dev/disk1
を適切なデバイスに置き換えます。ctrl-c
を押すまで、60秒ごとにそのデバイスから1つのセクターを読み取ります)
これは私の環境で役立ちました:OS X 10.6.8、WD Elements USB接続ドライブ、SAT-SMART-driver0.8。
キャプティブテストでは、理論的にはドライブをオンラインに保つ必要があります。ただし、smartctl
によって送信されたハードウェアコマンドは、テストが完了する前にタイムアウトし、カーネルがリンクをリセットして、上記と同じ状況になる可能性があります( バグ#3 )。
詳細については、smartmontools-supportメーリングリストの this thread を参照してください。ここで与えられた洞察に対してクリスティアン・フランケに感謝します。
Tobuのソリューションを試しましたが、私の場合、テストを開始して中断した後も、スリープモードで外付けUSBドライブを見つけ続けましたが、ddがカーネルキャッシュから読み取ってしまい、キャッシュがディスクに対して十分な大きさだったようです。スリープモードに入ります。 smartctlを呼び出してステータスを要求すると、常にディスクを「ウェイクアップ」できることに気付きました。だから:同じ考えのこのバージョンは私のためのトリックをしました:
Sudo bash -c 'while true; do smartctl -a /dev/sdb > /dev/null; sleep 60; done'
5時間後、外部USBディスクはまだ回転しています。初めて、smartctlの長いテストが外部ディスクで終了するのを見ることができました。
このソリューションには、ディスクヘッドが毎分不必要に動かされないという利点もあると思います。長期実行は、予測された時間でほぼ正確に終了しました(キープアウェイクスクリプトは実行に時間を追加しませんでした)
Ariの答えのバリエーションは、watch
を使用することです。これは、smartctl
の出力が、ステータスを追跡するのに実際に興味深い場合があるためです。
Sudo watch -d -n 60 smartctl -a /dev/sdx
これにより、smartctl -a
の出力が60秒ごとに自動更新されるため、セルフテストの残り時間を確認し、変更を強調表示できます(したがって、テストが実際に進行していることを簡単に見つけることができます)。
キャプティブテストは、20秒以上かかると機能しない場合があります。
出典:チケット#、「スマートテストキャプティブモードで、ATAデバイスの説明に従ってタイムアウトを延長する」というタイトル。