我的一个朋友使用我的 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
此后,我从计算机上拔下 USB 记忆棒并将其重新插入。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 记忆棒,但如果有人能够阐明到底发生了什么,这些签名存储在哪里,那就太好了?
答案1
找到了答案:Fedora ISO 包含一个 GUID 分区表,其分区布局与 OS X 非常相似。因此,我混淆了由
dd if=Fedora.iso of=/dev/sdb
与由 OS X 安装程序创建的文件。其中一个分区有一个事实,这一事实进一步加剧了混乱高频振动+文件系统,这是 OS X 特有的。更奇怪的是,在parted
将 ISO 写入 U 盘后运行会产生:
$ 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
ISO 时创建的。