ハードドライブが0に設定/削除されているかどうかを確認するにはどうすればよいですか?

ハードドライブが0に設定/削除されているかどうかを確認するにはどうすればよいですか?

一度は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

ディスクがゼロになりましたか?

はい。コマンドの出力は、dd5000981077504バイトを書き込んだことを示しています。あなたの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

すべてのデバイスで動作するわけではありません。外付けドライブがこれをサポートしていない可能性があります。

おすすめ記事