Block-Device

GUID 分區表儲存在設備上的什麼位置?

  • August 21, 2012

我的一個朋友用我的 U 盤在他的 Mac 上安裝了新版本的 OS X。現在我把它拿回來了,我想擦除它(我自己使用 Linux)。但是,我這樣做有點麻煩。我做的第一件事是給它寫了一個 Fedora LiveCD,使用dd

# dd if=Fedora.iso of=/dev/sdb

我認為這會覆蓋位於設備開頭的分區表,從而刪除 OS X 安裝程序創建的分區。但是,我錯了,分區仍然存在。所以我查看了GUID 分區表,發現它們不僅在設備的開頭添加了標題,而且在末尾也添加了標題。所以我做了:

$ sudo dd if=/dev/zero of=/dev/sdb
dd: writing to `/dev/sdb': No space left on device
15687681+0 records in
15687680+0 records out
8032092160 bytes (8.0 GB) copied, 1354.82 s, 5.9 MB/s

在此之後,我從電腦中取出 U 盤並將其重新插入。blkid現在執行不會在設備上產生任何分區。但是,再次寫入 Fedora 映像後,OS X 分區又回來了:

$ sudo blkid
/dev/sdb1: LABEL="Fedora-17-x86_64-Live-Desktop.is" TYPE="iso9660" 
/dev/sdb2: SEC_TYPE="msdos" LABEL="EFI" UUID="B368-CE08" TYPE="vfat" 
/dev/sdb3: UUID="f92ff3eb-0250-303f-8030-7d063e302ccf" LABEL="Fedora 17" TYPE="hfsplus"

我懷疑這與上面維基百科頁面中的保護性 MBR位有關。我怎樣才能擺脫它?

更新

我最終parted從那裡執行並刪除了 GPT。我確實收到了有關 GPT 損壞的警告(可能是由於將其歸零),但那裡有“簽名”。

所以我最終恢復了我的 USB 記憶棒,但如果有人能弄清楚到底發生了什麼,那些簽名儲存在哪裡,那還是很好的?

找到了答案:Fedora ISO 包含一個 GUID 分區表,其分區佈局與 OS X 非常相似。因此,我混淆了由

dd if=Fedora.iso of=/dev/sdb

由 OS X 安裝程序創建的。一個分區有一個HFS+文件系統,這是 OS X 特有的,這進一步加劇了這種混亂。更奇怪的是,parted在將 ISO 寫入儲存棒後執行會產生:

$ sudo 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?

無論如何,關鍵是分區在將整個設備歸零後並沒有神奇地恢復,而是在dd-ing ISO 時創建的。

引用自:https://unix.stackexchange.com/questions/45978