ランダムなデータでドライブを埋めるとき、GNUはddよりも速くシュレッドするのはなぜですか?


8

廃止する前にハードドライブを安全に消去しているのに気づきましたが、dd if=/dev/urandom of=/dev/sdaほぼ1日shred -vf -n 1 /dev/sdaかかりましたが、同じコンピューターと同じドライブで数時間しかかかりませんでした。

これはどのようにして可能ですか?ボトルネックはの限られた出力だと思い/dev/urandomます。シュレッドは、ランダムではなく、その単一の目的(つまり、より効率的)にのみ十分な擬似乱数ジェネレーターを使用しますかurandom


ドライブ、特にssdドライブを消去するための最良のオプションは、SATAセキュア消去コマンドであることに注意してください。他のオプション-破壊を除く-は失敗します。その速度も非常に速く、SSDで数秒かかる場合があります。
Maarten Bodewes 16

回答:


11

シュレッドは内部疑似乱数発生器を使用します

デフォルトでは、これらのコマンドは少量のエントロピーによって初期化された内部疑似ランダムジェネレーターを使用しますが、-random-source = fileオプションで外部ソースを使用するように指示できます。ファイルに十分なバイトが含まれていない場合、エラーが報告されます。

たとえば、デバイスファイル/ dev / urandomをランダムデータのソースとして使用できます。通常、このデバイスは、デバイスドライバーやその他のソースからの環境ノイズをエントロピープールに収集し、そのプールを使用してランダムビットを生成します。プールのデータが不足している場合、デバイスは暗号化された安全な疑似乱数ジェネレータを使用して、内部プールを再利用してより多くのビットを生成します。ただし、このデバイスはランダムデータの大量生成用に設計されておらず、処理速度が比較的遅いことに注意してください 。

私はランダムなデータがより任意のより効果的であることを説得していないよ、単一パスゼロ前に内容を不明瞭に(または任意の他のバイト値)。

ドライブを確実に廃止するために、大きな磁石と大きなハンマーを使用しています。


2

私はそれがむしろddデータを書き込むために小さなチャンクを使用することによって引き起こされると思います。試してみてくださいdd if=... of=... bs=(1<<20)、それはパフォーマンスが向上かどうかを確認します。


私は次の機会にそれを試し、結果を投稿します。

+1デフォルトのddブロックサイズは512です。コンピュータのディスク制限を大幅に下回って実行されました。
Piotr Findeisen 2014年

/ dev / urandomはおそらくかなり高速です-ddブロックサイズがほぼ確実に問題です。
Dan Pritts 2014年

2
ブロックサイズを大きく/dev/urandomすると、ボトルネックになる可能性があるようです。USB3.0で一部のSSDドライブをテストしていますが、同じddコマンドで326 MB / s if=/dev/zeroが得られますが、12.8 MB / sしか得られませんif=/dev/urandom
austinmarton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.