ddを使用してランダムデータを書き込むと、ディスクパーティション化が発生するのはなぜですか?

ddを使用してランダムデータを書き込むと、ディスクパーティション化が発生するのはなぜですか?

コマンドを実行する前に、ddコマンドはlsblk次の出力を返しました。

NAME              MAJ:MIN  RM   SIZE    RO TYPE  MOUNTPOINT
sda               8:0       0    931.5G  0  disk  

コマンドがdd if=/dev/urandom of=/dev/sda conv=fsync status=progress実行されました。ただし、デバイスの電源が切れて終了します。電源が回復すると、コマンドはlsblk次の出力を返します。

NAME              MAJ:MIN     RM   SIZE    RO TYPE  MOUNTPOINT
    sda           8:0          0   931.5G  0  disk 
      sda2        8:2          0   487.5G  0  disk

答え1

さまざまな可能性:

  • Linuxはさまざまなパーティションテーブルタイプをサポートしており、そのうちのいくつかはマジックバイトをほとんど使用せず、任意のデータを誤って識別するのは簡単です(*)[したがって、ある程度「有効な」パーティションテーブルがランダムに生成される可能性があります]。

  • 一部のパーティションテーブルタイプには、ディスクの最後に(特にGPT)バックアップがあります。これは、ドライブの先頭がランダムガベージに置き換えられている場合に選択できます。

  • デバイスが正常に動作しない、データを書き込む前に切断された、または古いデータを引き続き返すことによって、パーティションテーブルがまだ存在します。時にはUSBスティックでこれが起こります。

  • ...

(*)任意のデータを含む1000個のファイルを生成し、結果が何であるかを確認してください。

$ truncate -s 8K {0001..1000}
$ shred -n 1 {0001..1000}
$ file -s {0001..1000} | grep -v data
0099: COM executable for DOS
0300: DOS executable (COM)
0302: TTComp archive, binary, 4K dictionary
0389: Dyalog APL component file 64-bit level 1 journaled checksummed version 192.192
0407: COM executable for DOS
0475: PGP\011Secret Sub-key -
....

ドライブをランダムに破砕する目的は、古いデータを永久に消去することです。ドライブが空で、使用されておらず、クリーンな状態で表示されるという保証はありません。

これは通常削除せずに達成されます。 LVMを使用している場合は、LVMが以前のデータに干渉しないように作成したLVの最初の数セクタをゼロにするのが一般的です。

wipefsファイルシステムとパーティションテーブルメタデータを削除するために使用できる古いマジックバイト署名を削除する専用ユーティリティ()もあります。

答え2

ここに示すように、MBR(マスターブートレコード)は比較的簡単です。https://en.wikipedia.org/wiki/Master_boot_record

使用すると、/dev/urandomいつでもパーティションテーブルのように見えるものを作成できます。解決策は、パーティションテーブル領域をゼロで埋め、dev/urandom残りの部分に使用することです。

Linuxはトリガー可能な他の追加のディスクフォーマットもサポートしているため、任意のデータでいっぱいになると「無効な」パーティションが表示されます。

答え3

512バイトのコレクションを次のように定義します。マスターブートレコード0x55 0xAA最終値の存在です。そのような値を生成する確率は65,536分の1です/dev/urandom。可能性は希薄ですが、同じように可能性のないことが常に発生する可能性があります。

(次のような他のパーティションテーブルもあります。Appleパーティションマップ、同様の短い署名があります。すでにこれらのいずれかを作成している可能性があります。 )

答え4

このパーティションは以前このディスクに存在していましたか?ディスクが GPT を使用している場合、セカンダリ GPT ヘッダーが復元された可能性があり、まだ古いパーティションテーブルが残ります。

https://en.wikipedia.org/wiki/GUID_Partition_Table

関連情報