このfdisk
領域でMBRをクリアするには446バイトを書き込む必要があり、パーティション情報の消去を含めるには最初の512バイトをゼロにするだけで十分です。
dd if=/dev/zero of=/dev/sdb bs=512 count=1
parted
一部の古いパーティションテーブル情報が認識されなくなるほど512バイトを消去すると十分ですか?
ベストアンサー1
512バイトを書くだけでは不十分で、整理が必要です。少なくとも2つの512バイトブロック。
ソースディスクから起動する場合:
# dd if=/dev/sdb bs=512 count=80000 | od -c
0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
234200000
80000+0 records in
80000+0 records out
40960000 bytes (41 MB) copied, 0.99129 s, 41.3 MB/s
その後、起動してparted
パーティションを作成します。
# parted
(parted) unit GB
(parted) mklabel gpt
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 2.15GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
(parted) mkpart primary 0 2
(parted) print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 2.15GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Number Start End Size File system Name Flags
1 0.00GB 2.15GB 2.15GB primary
(parted) quit
Information: You may need to update /etc/fstab.
ディスクを見直すと、512バイトを超えるデータが書き込まれたことがわかります。
# dd if=/dev/sdb bs=512 count=80000 | od -c
0000000 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0000700 001 \0 356 376 377 377 001 \0 \0 \0 037 - @ \0 \0 \0
0000720 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0000760 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 U 252
0001000 E F I P A R T \0 \0 001 \0 \ \0 \0 \0
0001020 351 356 t 217 \0 \0 \0 \0 001 \0 \0 \0 \0 \0 \0 \0
0001040 037 - @ \0 \0 \0 \0 \0 " \0 \0 \0 \0 \0 \0 \0
0001060 376 , @ \0 \0 \0 \0 \0 n T l 342 306 351 ^ E
0001100 237 ~ i 270 t 034 227 004 002 \0 \0 \0 \0 \0 \0 \0
0001120 200 \0 \0 \0 200 \0 \0 \0 / \n Z 202 \0 \0 \0 \0
0001140 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
0002000 257 = 306 017 203 204 r G 216 y = i 330 G } 344
0002020 _ _ 344 4 257 / 276 G 226 375 n 244 332 P 230 224
0002040 \0 \b \0 \0 \0 \0 \0 \0 377 ' @ \0 \0 \0 \0 \0
0002060 \0 \0 \0 \0 \0 \0 \0 \0 p \0 r \0 i \0 m \0
0002100 a \0 r \0 y \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0002120 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
*
234200000
80000+0 records in
80000+0 records out
40960000 bytes (41 MB) copied, 0.988582 s, 41.4 MB/s
その後、最初の512バイトのみをクリーンアップすると、parted
次の情報を見つけることができます。
# dd if=/dev/zero of=/dev/sdb bs=512 count=1
1+0 records in
1+0 records out
512 bytes (512 B) copied, 0.0030505 s, 168 kB/s
lm17base avanderneut # parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Warning: /dev/sdb contains GPT signatures, indicating that it has a GPT table.
However, it does not have a valid fake msdos partition table, as it should.
Perhaps it was corrupted -- possibly by a program that doesn't understand GPT
partition tables. Or perhaps you deleted the GPT table, and are now using an
msdos partition table. Is this a GPT partition table?
Yes/No? No
(parted) quit
このメッセージを取り除くには、2つのブロックをクリーンアップする必要があります。
# dd if=/dev/zero of=/dev/sdb bs=512 count=2
2+0 records in
2+0 records out
1024 bytes (1.0 kB) copied, 0.00469557 s, 218 kB/s
# parted /dev/sdb
GNU Parted 2.3
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sdb: unrecognised disk label
(parted) quit
ディスクの先頭に書き込まれたすべての情報を消去するには、少なくともゼロ化操作が必要です。サム(1つのパーティション)512バイトブロック。 10パーティションの場合、これは次のように増加します。五彫刻。
パーティションテーブルのコピーがディスクの最後に書き込まれます。をsgdisk
使用してパーティションテーブルをバックアップし、最初のブロックに0を書き込んでから復元しようとすると、sgdisk
ユーティリティはバックアップパーティションテーブルとプライマリパーティションテーブルの間の矛盾についてメッセージを表示します。
すでにインストールしている場合は、まずGPTデータをクリーンアップするのがsgdisk
最善です。sgdisk --clear
これにより、テーブルはゼロに初期化されませんが、ディスクエンドのバックアップコピーにも影響します。