web-dev-qa-db-ja.com

ddを使用して不良セクターを検出する

古いHDDを販売する前に、ディスクを完全に読み書きして、不良セクターがないことを確認します。

私はいつもこのように書きました:

dd if=/dev/zero of=/dev/sdb bs=100M status=progress

しかし、私のコンピューターには32GB RAM=があり、ddの終了時に多くのデータがキャッシュにある可能性があります。

OSがディスクへのキャッシュの書き込みに失敗したとき(ddが終了した後)を確認する方法はありますか?

Ddが終了する前にキャッシュをフラッシュするための正しいオプションは何ですか? sync、fsync、またはfdatasync?

ディスクチェックツールを提案しないでください。 ddで十分です。

2
somega

ディスクチェックツールを推奨しないことを具体的に要求しましたが、推奨します。ディスク自体です。ドライブに徹底的な内部セルフテストを実行するように依頼して、キャッシュに関する問題の考えられるすべての原因を排除できます。セルフテストには、gsmartcontrolを介して簡単にアクセスできます。
gsmartcontrol self-tests tab

これが本当に必要ない場合でも、 F のようなツールの使用を検討する必要があります。データの書き込みが可能かどうかをチェックするだけでなく、書き込んだデータを後で読み取ることができるかどうかもチェックできます(私の意見では、記憶媒体のより重要な機能です)。

Ddのconv=fdatasync ddは、最後のブロックが書き込まれる前に終了しません。

7
Hermann