ddを使用してディスクからGPTテーブルを消去する必要があります。

ddを使用してディスクからGPTテーブルを消去する必要があります。

この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これにより、テーブルはゼロに初期化されませんが、ディスクエンドのバックアップコピーにも影響します。

おすすめ記事