使用 dd 将 .img 写入 USB 会导致主 GPT 头损坏

使用 dd 将 .img 写入 USB 会导致主 GPT 头损坏

我有一个 64GB USB 3.0 驱动器,计划在其中安装可启动操作系统以供系统管理员使用。我的主要操作系统是 Mac OS X 10.11。

我有一份 的副本ubuntu-16.04-desktop-amd64.iso。在我的 Mac 上,我运行以下命令:

$ hdiutil convert -format UDRW -o ubuntu.img ubuntu-16.04-desktop-amd64.iso

正如它所说的ubuntu 手动 USB 安装指南以便将iso文件变成可重写img文件。输出如下:

Reading Driver Descriptor Map (DDM : 0)…
Reading Ubuntu 16.04 LTS amd64           (Apple_ISO : 1)…
Reading Apple (Apple_partition_map : 2)…
Reading Ubuntu 16.04 LTS amd64           (Apple_ISO : 3)…
.............................................................................
Reading EFI (Apple_HFS : 4)…
.............................................................................
Reading Ubuntu 16.04 LTS amd64           (Apple_ISO : 5)…
.............................................................................
Elapsed Time:  4.011s
Speed: 353.2Mbytes/sec
Savings: 0.0%

因此我将新创建的文件重命名ubuntu.img.dmg为 justubuntu.img并尝试使用dd将内容写入磁盘:

0+22673 records in
0+22673 records out
1485881344 bytes transferred in 9.590071 secs (154939557 bytes/sec)

然后我弹出 USB 并重启我的 Mac。启动时按住alt并选择EFI BootUSB 棒,屏幕上会闪烁一条非常简短的消息,内容是“error: file '/boot' not found.消息消失后​​,我得到了标准的 GRUB 菜单,并且可以成功启动到 Ubuntu”。

我再次重新启动 OS X 并运行diskutil list以获取 USB 的分区信息:

/dev/disk1 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *62.7 GB    disk1
   1:        Apple_partition_map                         4.1 KB     disk1s1
   2:                  Apple_HFS                         2.4 MB     disk1s2

我不确定这是否是正确的分区方案,因此我运行gdisk /dev/disk1并得到以下输出:

GPT fdisk (gdisk) version 1.0.1

Caution: invalid main GPT header, but valid backup; regenerating main header
from backup!

Caution! After loading partitions, the CRC doesn't check out!
Warning! Main partition table CRC mismatch! Loaded backup partition table
instead of main partition table!

Warning! One or more CRCs don't match. You should repair the disk!

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: damaged

很抱歉发了这么长的帖子,我的问题是:错误发生在这个过程的哪个地方(我这边有 100% 的可重复性),有什么办法可以修复它?

答案1

我没有明确的解决方案,但我确实有一些观察:

  • 您引用的页面写于 2010 年,最后更新于 2013 年。因此,它相当陈旧,可能完全不适用于 Ubuntu 16.04。
  • diskutil list转换后的磁盘上的输出显示它使用--Apple_partition_scheme即 Apple 的 APM 分区表格式,而不是 GPT。理想情况下,gdisk应该检测到这种情况,但hdiutil似乎创建了一个gdisk无法识别的 APM 变体,因此声称 GPT 已损坏。
  • 如果您尝试以常规方式启动 Ubuntu 安装程序,请尝试dd直接从.iso映像使用到 USB 驱动器,而无需先将其转换为hdiutil其他任何格式。Ubuntu.iso映像采用一种弗兰肯斯坦的怪物格式,通常在 USB 驱动器上正确启动。如果失败,请使用鲁弗斯, UNetbootin,或者启动盘创建器创建可启动的 USB 驱动器。请注意,以这种方式创建的磁盘适合运行 Ubuntu 安装程序,但在大多数情况下,它不会是一个很好的最终安装介质;您需要启动安装程序,然后使用它安装到第二个 USB 驱动器。

相关内容