0

私は安価な、ブランドのない 2GB フラッシュ ドライブを受け取りました。私はより大きなフラッシュ ドライブを持っているので、フラッシュ テクノロジの堅牢性をテストするために使用することにしました。

ドライブ全体に 1 を書き込み、正しさをチェックし、0 を書き込み、チェックなどを行う予定です。結果をログに記録し、後で失敗を探します。

それを行うための最もリソースを節約する手法を探しています。私の現在の戦略には、書き込みと読み取りに linux dd コマンドを使用し、結果を 1 と 0 のファイルと比較することが含まれます。別のアプローチは、ドライブに 1 と 0 を書き込み、その内容の md5 を計算することです。これは、大量の IO 読み取りと高い CPU 使用率との間の単純なトレードオフです。各メソッドの実行時間を単純に測定して決定することになると思います。

これを行うためのより良い、よりエレガントな方法はありますか?

4

2 に答える 2

2

Linuxの「badblocks」コマンドを使用してテストを行うこともできます。-wオプションと一緒に使用すると、さまざまなパターンを使用して書き込みモードテストを実行し、ブロックを書き込み、それを読み取って成功したことを確認します。

物理デバイスのすべてのブロックをテストするために、マウントせずにデバイス上で直接実行することもできます。

   -w     Use  write-mode  test. With this option, badblocks scans for bad
          blocks by writing some patterns  (0xaa,  0x55,  0xff,  0x00)  on
          every block of the device, reading every block and comparing the
          contents.  This option may not be combined with the  -n  option,
          as they are mutually exclusive.
于 2009-06-24T15:04:38.587 に答える
1

ランダムな32ビット数を選択します。すべてのブロックにそれを書いてください。すべてのブロックからそれを読んでください。新しい32ビット番号。ドライブを再度実行します。MD5のようなハッシュアルゴリズムはCPUを集中的に使用します。あなたはパターンを正確に知っていて、ドライブがビットを台無しにしないことをテストしているだけなので、単純な直接比較が最良のアプローチです。DDを使用しないでください...CやPerlなどの言語から直接書き込みます(オレンジの隣にリンゴが立っていた場合...)

比較ファイルも必要ありません...パターンはメモリに収まります。実際、きちんと実行されれば、テスト全体がCPUキャッシュに収まる可能性がありますが、フラッシュドライブは明らかにボトルネックになります。正しくない番号を見つけてください、あなたはあなたがあなたの不良ブロックを持っていることを知っています。

于 2009-06-24T15:02:27.797 に答える