# dd if=/dev/zero of=/dev/sda
は既存のパーティションテーブルを一掃しますか?
それとも、その逆ですか、つまり
# fdisk /dev/sda
g
(GPTの場合)
/dev/zero
によって書かれたゼロを一掃しますか?
dd if=/dev/zero of=/dev/sda
は既存のパーティションテーブルを消去しますか?
はい、パーティションテーブルはドライブの最初の部分にあるため、上書きすると破壊されます。そのdd
を実行すると、ドライブ全体が上書きされます(そのため、かなり時間がかかります)。
dd bs=512 count=50 if=/dev/zero of=/dev/sda
のようなもので、MBRパーティションテーブルやプライマリGPTを含む最初の50セクターを上書きできます。少なくともWikipediaによると GPTにはドライブの最後にパーティションテーブルの2次コピーがあります なので、ドライブのヘッドの一部だけを上書きするだけでは不十分な場合があります。
(ただし、dd
を使用する必要はありません。head -c10000 /dev/zero > /dev/sda
またはcat /bin/ls > /dev/sda
でも同じ効果があります。)
fdisk /dev/sda g
(GPTの場合)は、/ dev/zeroによって書き込まれたゼロを消去しますか?
また、はい(変更を保存した場合)。
(ただし、タイトルのフレージングは混乱を招くだけであり、/dev/zero
自体は通常のストレージよりもdo何もしません。)
パーティションテーブルは最初の方に格納されています1 (論理的2)ディスクデバイス。
その領域を何か(/dev/zero
からのゼロまたはその他のデータ)で上書きすると、パーティションテーブルが意味不明なものに置き換えられるため、デバイスのパーティションがどこから始まるのかがはっきりしなくなります。
ただし、ディスク全体をスキャンして、ファイルシステムの始まりを示す「マジックバイト」を特定することもできます。
逆に、fdisk
(またはその他のパーティション分割ツール)を使用して新しいパーティションテーブルを作成すると、ツールはディスクの最初の数バイトを上書きして、その新しいテーブルを格納します。
ディスクへの始まりは1つしかないので、最後に行うことはそこに「固定」されます。
ただし、一部のパーティションテーブルフォーマット(GPTなど)は、バックアップコピーをさまざまな場所(たとえば、GPTのディスクの最後)に保持し、そこからパーティション情報の一部を復元できることに注意してください。
1:例 MBRの最初の512バイト または GPTの最初と最後の17408バイト
2:ドライブは内部で論理ブロックを物理メディアのさまざまな部分に再マッピングできますが、そのマッピングはオペレーティングシステムからは見えません(重要ではありません)。