dd if = / dev / zero of = / dev / sdaは、既存のパーティションテーブルを消去しますか?


13

ウィル# dd if=/dev/zero of=/dev/sda既存のパーティションテーブルを一掃?

またはそれは逆ですか、つまり

# fdisk /dev/sda g (GPTの場合)

によって書かれたゼロを一掃する/dev/zero


6
それは/dev/zero何かを一掃するのではなく、それddをコピーすることによって一掃するのです。バイトがゼロであるという事実、およびゼロのバイトが/dev/zero他のゼロのソースではなくゼロであるという事実は、わずかな詳細です。
クリリス

2
パーティションテーブルを消去するだけの場合は、wipefsの方が信頼性が高くなります。
パイプ

回答:


23

ウィルdd if=/dev/zero of=/dev/sda既存のパーティションテーブルを一掃?

はい、パーティションテーブルはドライブの最初の部分にあるため、上書きすると破壊されます。それはddあなたがそれを実行してみましょう場合(それはかなり時間がかかりますので)、ドライブ全体を上書きします。

dd bs=512 count=50 if=/dev/zero of=/dev/sdaMBRパーティションテーブルやプライマリGPTなど、最初の50セクターを上書きするには、次のようなもので十分です。少なくともWikipediaによると、GPTにはドライブの最後にパーティションテーブルのセカンダリコピーがあるため、ドライブの先頭の部分だけを上書きしても十分ではない可能性があります。

ddただし、使用する必要はありません。head -c10000 /dev/zero > /dev/sdaまたはcat /bin/ls > /dev/sda同じ効果があります。)

fdisk /dev/sda g(GPTのため)によっては/ dev /ゼロ書かれたゼロを一掃?

また、はい(変更を保存した場合)。

(ただし、タイトルにフレージングはただ、混乱され/dev/zeroていない自体に行う任意のより多くの任意の通常のストレージが行うよりも、何かを。)


サイドノート:の出力/bin/lsが十分に短い場合、書き込み操作はMBRの数バイトのみを上書きする可能性があり、最も重要な部分(パーティションのセクターの開始と終了)はそのまま残ることができます。grub --install /dev/sdaシステムを再び起動可能にするには、MBRの再インストール(最も一般的には)が引き続き必要です。
peterh -復活モニカ

8
@peterh 実行からの出力lsはなく、実際のバイナリをリダイレクトしていることに注意してください。最小の「Hello World」ELFバイナリは98バイト(MBRよりも小さい)のようですが、実際の機能を備えたバイナリはMBRよりも大きいと仮定するのは安全であると考えられます(FreeBSDの悪名高い実装lsは32784です)バイト、GPTのディスクの開始部分を上書きするのに十分な大きさです)。;)
n.st

そうそう、あなたもの出力を使用することができますls。のリスト/usr/binはおそらく十分に長いでしょう。echo例として使用するつもりでしたが、IIRCではMBRパーティションテーブルを上書きするためにほぼ500バイトが必要なので、入力するのは少し疲れます。(正確な数は何でも)
-ilkkachu

1
これにはおそらくbsを使用し、ddでカウントする必要があります。そうしないと、しばらく時間がかかります。セクターをゼロにするだけで済みます。レガシーディスクの場合は512バイト。(以下の@ n.stを参照)実際、パーティションテーブルはこの最後にあり、ブートコンテンツを保存するためにコピーする前に16進エディタでコピーしてゼロを作成するのに十分なほど小さいです。このためのツールもありますが、NASディスクの初期化でこれを行うのが一般的です。
mckenzm

1
GPTドライブの場合に追加したかったのは、ディスクの最後も消去する必要があることです。準拠したGPT実装は、ディスクの最後にあるセカンダリテーブルをチェックし、最初の部分も再書き込みします(既にあるものはすべて無視します)。参照:news.ycombinator.com/item
id

10

パーティションテーブルは、(論理2)ディスクデバイスの先頭1の近くに格納されます。

その領域を何か(ゼロ/dev/zeroまたはその他のデータ)で上書きすると、パーティションテーブルが意味不明に置き換えられるため、デバイス上のパーティションがどこから始まるのかが明確になりません。
ただし、ディスク全体をスキャンして、ファイルシステムの開始を示す「マジックバイト」を特定することはできます。

逆に、fdisk(または他のパーティションツール)を使用して新しいパーティションテーブルを作成すると、ツールはディスクの最初の数バイトを上書きして新しいテーブルを保存します。

ディスクの先頭は1つしかないので、最後に行った操作はすべて「固定」されます。

ただし、一部のパーティションテーブル形式(GPTなど)では、バックアップコピーが別の場所(GPTのディスクの最後など)に保持され、そこからパーティション情報の一部を回復できることに注意してください。

1:たとえば、MBRの場合は最初の512バイト、GPTの場合は最初と最後の17408バイト
2:ドライブは論理ブロックを物理メディアのさまざまな部分に内部的に再マッピングできますが、そのマッピングは見えません(重要ではありません)オペレーティングシステム。


1
ほぼ右-(古い、MBRタイプ)パーティションテーブルは、MBRのバイト1BE-1FDにあります。最初の数バイトにはIBL(初期ブートローダー)が含まれています。
RudiC

@RudiC良い点、私はそれをより正確に述べました。
n.st
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.