一度はshred
外付けハードドライブを消したことがあります。
sudo shred -vz /dev/sdb
また、ディスクに5つの不良セクタがあることも追加する必要があります。
ディスクが0に設定されていることを確認したいと思います。https://superuser.com/questions/1510233/is-there-a-faster-way-to-verify-that-a-drive-has-been-full-zeroed
私はそれについてあまり慣れていませんdd
が、信じるこれは 0 に設定されたことを示します。
sudo dd if=/dev/sdb status=progress | hexdump
0000000 0000 0000 0000 0000 0000 0000 0000 0000
*
5000916670976 bytes (5.0 TB, 4.5 TiB) copied, 45754 s, 109 MB/s
9767541167+0 records in
9767541167+0 records out
5000981077504 bytes (5.0 TB, 4.5 TiB) copied, 45756.7 s, 109 MB/s
48c61b35e00
sudo dd if=/dev/sdb status=progress | od | head
5000952267264 bytes (5.0 TB, 4.5 TiB) copied, 45739 s, 109 MB/s
9767541167+0 records in
9767541167+0 records out
5000981077504 bytes (5.0 TB, 4.5 TiB) copied, 45741.1 s, 109 MB/s
0000000 000000 000000 000000 000000 000000 000000 000000 000000
*
110614154657000
ただし、simpleを使用するとcmp
例外が表示されます。
sudo cmp /dev/zero /dev/sdb
cmp: EOF on /dev/sdb after byte 5000981077504, in line 1
ディスクがゼロになりましたか?
ベストアンサー1
ディスクがゼロになりましたか?
はい。コマンドの出力は、dd
5000981077504バイトを書き込んだことを示しています。あなたのcmp
コマンドは、5000981077504バイト後にEOF(ファイルの終わり)に達すると言います。これは同じです。
これはハードドライブでのみ機能します。ソリッドステートデバイスの場合、ウェアレベリングやオーバープロビジョニングなどの機能により、一部のデータが消去されない場合があります。また、ドライブに破損したセクタがあってはなりません。セクタは消去されないからです。
このcmp
作業にはあまり効率的ではありません。あなたはより良いでしょうbadblocks
:
badblocks -svt 0x00 /dev/sdb
~からbadblocks(8)
、この-t
オプションを使用してディスクのスキーマを確認できます。-w
(書き込み)または-n
(非破壊書き込み)を指定しない場合は、対応するモードがすでに存在すると仮定します。
-t test_pattern
Specify a test pattern to be read (and written) to disk blocks.
The test_pattern may either be a numeric value between 0 and
ULONG_MAX-1 inclusive, or the word "random", which specifies
that the block should be filled with a random bit pattern. For
read/write (-w) and non-destructive (-n) modes, one or more test
patterns may be specified by specifying the -t option for each
test pattern desired. For read-only mode only a single pattern
may be specified and it may not be "random". Read-only testing
with a pattern assumes that the specified pattern has previously
been written to the disk - if not, large numbers of blocks will
fail verification. If multiple patterns are specified then all
blocks will be tested with one pattern before proceeding to the
next pattern.
さらに、dd
デフォルトのブロックサイズ(512)を使用することはそれほど効率的ではありません。を指定すると、速度を大幅に向上させることができますbs=256k
。これにより、512 バイトではなく 262,144 バイトのチャンクにデータを転送し、発生しなければならないコンテキスト遷移の数が減ります。システムによっては速度を上げることもできます。もっとを使用してページキャッシュをバイパスしますiflag=direct
。場合によっては、ブロックデバイスの読み出し性能を向上させることができる。
要求しませんでしたが、shred
基本的にターゲットを覆うために3回のパスが使用されることに注意してください。これは不要です。ハードドライブを何度も上書きするという神話は、Peter Gutmannの古いアドバイスから来ました。古いMFMおよびRLLハードドライブでは、理論的なデータ保存の問題を回避するために特定の上書きモードが必要です。あらゆる種類のディスクを扱うために、彼は少なくとも35のモードを使用することをお勧めします。一つそのうちのいくつかはあなたのディスクに適しています。 EPRMLやNPMLなどの最新のデータエンコード技術を使用する最新のハードドライブでは、複数のスキーマを使用する必要はありません。 Gutman自身によると:
実際、フル35パスカバレッジを実行することは、すべてのドライブで意味がありません。これは、30年以上にわたるMFMアプローチのすべてを網羅するすべてのタイプの(一般的に使用される)エンコード技術を含む混合シナリオを対象としているためです(理解できない場合)。この声明を読むには、論文をもう一度読んでください)。 Xエンコーディング技術が適用されたドライブを使用している場合は、35パスすべてを実行せず、X固有パスのみを実行できます。
自分の立場から考えてみると、次のようなことをおすすめしたいと思います。
dd if=/dev/urandom of=/dev/sdb bs=256k oflag=direct conv=fsync
完了したら、「デバイスに空き容量がありません」というメッセージが表示され、十分なバイトが記録されていることを確認してください。
ATA Secure Erase を使用してファームウェアレベルのデータ削除を開始することもできます。標準を安全に実装するためにファームウェアの作成者に依存するため、単独では使用しません。代わりに、上記の項目にさらに使用して、不足しているdd
項目(不良セクタやHPAなど)がないことを確認してください。 ATAセキュリティの削除は、次のコマンドを使用して管理できますhdparm
。
hdparm --user-master u --security-set-pass yadayada /dev/sdb
hdparm --user-master u --security-erase yadayada /dev/sdb
すべてのデバイスで動作するわけではありません。外付けドライブがこれをサポートしていない可能性があります。