badblocks を実行した後、ハード ドライブの読み取りスループットがひどくなりますが、回復できますか?

badblocks を実行した後、ハード ドライブの読み取りスループットがひどくなりますが、回復できますか?

新しいドライブをいくつか持っていますが、友人から、新しいドライブを使用する前に badblocks を実行するように勧められました。新しいドライブのいくつかはイメージを作成する前に badblocks を実行しましたがbadblocks -v -s -w -b 4096 -o ./sda.log /dev/sda、他のドライブは badblocks なしで新しいものとしてイメージしました。追記: badblocks ドライブで搬送スマート テストも実行しましたが、合格しました。

badblocks を実行したドライブの場合、イメージ作成後の読み取りスループットは、dd if=/dev/sda bs=4096 of=/dev/null count=1Mキャッシュが削除されたため平均 71.1MB/秒と非常に低くなります。ディスク イメージが書き込まれたばかりのドライブの場合、平均読み取り速度は 195MB/秒です。

不良ブロックを実行することでこれらのドライブを「壊した」のでしょうか? 回復/リセットできますか?

スマートは

  • 不良ブロックのスピンアップ時間が長い (約 3000) (新しいドライブの場合は 0)
  • すべてのドライブで読み取りエラーとセクター再配置はゼロです。
  • すべてのドライブのセルフテストに合格
  • それ以外はほぼ同じsmartctl -aレポート

答え1

部分的な回答:

badblock -w実際には、ブロックをただ読み取るのではなく、すべてのブロックを書き込むため、通常の「非破壊」テストではなく「破壊」テストを実行したことになります。

それできた特に、書き込んだイメージがハードドライブの総容量よりも小さい場合は、違いが生じる可能性があります。イメージのみを含むハードドライブでは、番号の大きいブロックはそのままですが、不良ブロックを含むハードドライブでは、番号の大きいブロックにパターンがあります。

しかし、これがスループットにどのような影響を与えるのかはわかりません。

不良ブロックのスピンアップ時間が長い (約 3000) (新しいドライブの場合は 0)

スピンアップ 0 は、値がまだ設定されていないように思われます。ハードドライブはすぐにスピンアップできません。数回電源を入れ直した後でも、値は 0 のままですか?

質問に実際の SMART レポートをいくつか含めると役立つかもしれません。

すべてのドライブで読み取りエラーとセクター再配置はゼロです。

シーク エラーについてはどうでしょうか? シーク エラーは実際にスループットに影響を与える可能性があります。


実験したい場合 (これは当て推量です): 不良ブロックされたハードドライブを 1 つまたは 2 つ取り、すべてのブロックにゼロを書き込みdd(これにより、使用されたパターンが上書きされますbadblk)、ハードドライブを再イメージ化して、違いがあるかどうかを確認します。

そうなる場合、ファームウェアは「ゼロ」ブロックを「データ」を含むブロックとは異なる方法で処理します。理由は何であれ。


もう 1 つのアイデアは、ハードディスクに高速キャッシュ (おそらくフラッシュ メモリ) が搭載されている可能性があり、これにより、読み取りと書き込みの速度を単純に測定するテストでハードディスクの性能が優れているように見せかけることができるというものです。そのため、実際の動作では達成されない大きな数字をデータ シートに書き込んで、売上を伸ばすことができます。また、書き込みを行うとbadblkキャッシュが「オーバーフロー」するため、ファームウェアはキャッシュが使用できないと判断します。

関連情報