如果我在基于 EFI 系统的 MBR 格式硬盘上安装 Ubuntu(12.10 64 位),我应该获得 EFI 系统分区的分区类型 0xEF,但我却检索到 0x0B,代表 FAT32 格式的卷。系统无论如何都在运行,但我花了很多时间。
# dd if=/dev/sda bs=512 count=1 | hexdump -C
00000000 fa b8 00 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0
00000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00
00000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75
00000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 01 8b
00000040 4c 02 cd 13 ea 00 7c 00 00 eb fe 00 00 00 00 00
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
*
000001b0 00 00 00 00 00 00 00 00 6e f9 08 00 00 00 80 20
000001c0 21 00 0b 1c 10 0c 00 08 00 00 00 f0 02 00 00 1c
000001d0 11 0c 83 ad 31 3c 00 f8 02 00 00 e8 0b 00 00 ad
000001e0 32 3c 82 d6 05 91 00 e0 0e 00 00 e0 14 00 00 f6
000001f0 24 91 05 fe ff ff fe c7 23 00 02 30 1c 01 55 aa
所以我的问题是,这是否是安装程序的一个错误或至少是一个未记录的功能,但基本上它是不正确的......
谢谢,再见,汤姆
答案1
Ubuntu 安装程序所基于的 libparted 库无法将 MBR 分区标记为 EFI 系统分区 (ESP)。在 GPT 磁盘上,这是通过在分区上设置“启动标志”来实现的,但在 MBR 磁盘上,此操作具有不同的效果:它会设置启动标志。这是 libparted 的一个设计缺陷;他们在 GPT 和 MBR 磁盘的完全不同的概念上重载了相同的术语。
fdisk
您可以使用 Linux 中的、cfdisk
或程序修复此问题sfdisk
。使用t
命令将类型代码从 0x0B 更改为 0xEF,然后使用 保存更改w
。