ここに実行可能な4つの答えがあります。
hdparm
この方法によって投稿garethTheRedは、お使いのコンピュータに直接接続されている場合は、おそらく最高です。どうやら、USB経由で接続してみると、ドライブをブリックできます。廃棄しようとしているドライブに対してこれを行っている場合、それは良いことかもしれません。ただし、おそらく破棄する前に消去を保護する必要があります。
imzが報告した手法-Ivan Zakharyaschevは動作しますが、非常に遅い場合があります。データを回復可能にしたくない場合は、/dev/urandom
代わりに使用することをお勧めします/dev/zero
。例えば、
dd iflag=fullblock oflag=direct conv=noerror,notrunc if=/dev/urandom of=/dev/sdX
私は以下に対してアドバイスをします。同じことを行うより高速な処理を行うには、maxschlepzigによって報告された手法を使用します(質問内)。
ddrescue --verbose --force --nosplit /dev/urandom /dev/sdX
これはdd
コマンドより高速ですが、コマンドほど高速ではありませんhdparm
。私がこれをお勧めしない理由は以下をご覧ください...
badblocks
また、このコマンドは作業が、しかし、あなたはそのようにデータをランダム化することができないだろう、と再びそれが非常に遅くなります。
最後に、人々がディスクを完全に消去しようとする一番の理由を指摘しなかった場合、それは処分しようとしているということで、私は失望するでしょう。その場合、まだ行っていない場合は、最初にディスクを試してみてください。ブロックを読み取ってI / Oエラーが返された場合、次に同じブロックに書き込むと、ディスクは予約リストから別のブロックを再割り当てしようとします。予約リストがいっぱいになると、書き込み時にI / Oエラーが発生します。本当にドライブを破棄する必要があるときです。
したがって、次のような簡単なことができます。
dd if=/dev/sdX of=/dev/null conv=noerror
そして、次に、次のような不良ブロックを書き換えます。
dd if=/dev/zero of=/dev/sdX bs=128k
このコマンドが機能する場合、勇気がある場合は、ディスクを再フォーマットして再度使用できます。
または、badblocks
ディスク上でコマンドを2回実行できます。2回目は、不良ブロックがないことを報告する必要があります...
badblocks -v -s -w -t random /dev/sdX
badblocks -v -s -w -t random /dev/sdX
これには時間がかかりますが、より信頼性があります。
また、hdparm
コマンドを除いて、どの手法も実際に安全な消去を実行しないことに注意してください。それらすべての不良ブロックを覚えていますか?それらには、元のデータの一部がほとんどそのまま残っています。データ回復の専門家がこれらにアクセスして、以前にハードドライブにあったものの少量を確認できます。
ddrescueとそれに対してアドバイスする理由に関して、次の解毒剤があります。
問題は、ddrescureがエラーを無視するのに非常に優れていることです。ddと一貫して約102 GBのマークで書き込み速度が低下し、238 GBのマークで書き込みエラーが発生し始めたハードドライブがありました。ddrescueがエラーを報告しなくても、ディスクを一定の速度で絶え間なく移動し続けたことに非常に感銘を受けました。17時間後、1300 GBになったときに、たまたまドライブライト自体の点滅が止まったことに気付きました。簡単なチェックにより、USBエンクロージャー全体がオフラインになっていることが明らかになりました。ドライブをクレードルから引き出しました。ddrescueは、ディスクを手に持っていても、エラーなしでまだコピー中であることを喜んで報告していることに気付きました。ディスクを別のマシンに差し込んだところ、レンガになったことがわかりました。
私はドライブをレンガにするためにddrescueを責めません。ドライブに障害が発生し、レンガになりました。気になるddrescueは、無視している書き込みエラーの数のエラーカウントさえも与えないことに気付きました。この使用法では、ddrescueは、すべての書き込みエラーに関係なく、完全に成功したとみなします。事実、スローダウンのセクションではフルスピードで続行できなかったはずです。セクションが遅い理由は、多くのブロックがドライブによって再配置され、そのセクションにアクセスするときに多くのシークが発生したためです。そのため、おそらくddrescueの出力がフィクションになった時点です。
dd conv=noerror
GNU拡張機能かもしれませんが、よくわかりません。いずれにせよ、それはトリックを行う必要があります。ただし、ドライブ全体を消去するというSATAの答えは、ドライブ全体を消去するために検討する価値があります。