ddはbsパラメーターを使用していますが、IOエラーは発生しますが、エラーは発生しません。

ddはbsパラメーターを使用していますが、IOエラーは発生しますが、エラーは発生しません。

私はHDD 4TB WD 40EFRX(赤色シリーズ)を持っていて、そのディスクの状態を確認したいと思います。実際、gpartedを介してすべてのパーティションとテーブルを削除し、新しいテーブル+ ex4パーティションを作成しました。その後、すべてのデータをゼロで上書きし、古いデータを削除したいと思います。しかし、私は

dd if=/dev/zero of=/dev/sdb status=progress

最初からI / Oエラーが発生しました。

sudo dd if=/dev/zero of=/dev/sdb status=progress
474558976 bytes (475 MB, 453 MiB) copied, 38.0445 s, 12.5 MB/s
dd: writing to '/dev/sdb': Input/output error
927977+0 records in
927976+0 records out
475123712 bytes (475 MB, 453 MiB) copied, 46.6914 s, 10.2 MB/s

このコマンドは、bs = 64MB(HDDのキャッシュは64MB)オプションを追加すると非常にうまく動作します。しかし、IOエラーとして見ると、HDDが何とか破損しているようです。それとも私ができる他の回避策がありますか?しかし、私のハードドライブはSATA / USBを介して私のラップトップに接続されています。

ベストアンサー1

私は次のような問題に遭遇したことも聞いたことがないことを認めていますが、私はハードドライブの障害の専門家ではありません... :-)

I / O操作の膨大な量は、何らかの方法で問題を引き起こす可能性があります。 2つの呼び出しdd間の読み取りおよび書き込み操作の数の違いは128,000回です。 Linuxブロック層がブロックデバイスへの直接アクセス順序をどのように変更するのかわかりません。もしそうなら、この要素はより低いでしょう。

小さなチャンクサイズを試してみてください。bs=512KB1024倍に減ります。おそらく、ブロックサイズがキャッシュサイズよりはるかに小さい場合でも、問題がなくなることがわかります。

おすすめ記事