Cha*_*ber 3 partitioning boot grub2 dual-boot
将硬盘从 MBR 转换为 GPT 后,我在启动 Ubuntu 16.04.2 LTS 时遇到问题。正如我在其他网站上找到的那样,我曾经gdisk
将硬盘驱动器从 MBR 转换为 GPT。这样做并重新启动我的 PC 后,事实证明 GRUB 操作系统菜单在启动时不显示,相反,屏幕只是向我显示了一个带有闪烁光标的黑屏。当我尝试将 GPT 转换回 MBR 分区表时,该命令似乎成功了,但 GRUB 仍然无法正常工作
附加信息:我双启动 Ubuntu 16.04 和 Windows 10
用于将 MBT 转换为 GPT 的命令:
sudo gdisk /dev/sda
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
任何知道如何解决问题的人?难道我做错了什么?
小智 5
grub i386-pc
需要一个“BIOS 启动分区”(即输入ef02
gdisk)。所以你需要在转换后创建一个,然后再运行grub-install
。
当您将 MBR/msdos 分区表转换为 GUID 分区表时,grub 将无法正常工作,这是很自然的。
原因是,grub 利用了“post-MBR gap”,即 MBR 和第一个分区之间的间隙,用于嵌入其启动代码的一部分(也称为 core.img
)。当您将分区表转换为 GPT 时,部分间隙会被主 GPT 覆盖,因为它位于 LBA 1-33(其中 MBR 位于 LBA 0)上。
此外,GPT 上的 BIOS grub(又名 grub i386-pc)不再使用 post-MBR 或 post-GPT 间隙来嵌入 core.img。相反,它需要一个“BIOS 引导分区”(即输入ef02
gdisk)。所以你需要在转换后创建一个,然后再运行grub-install
。
另请注意,备份 GPT 位于磁盘的最后 33 个逻辑块。如果最后/唯一的分区扩展到磁盘的最后一个块,则需要缩小其上的文件系统以确保文件系统不再覆盖分区/磁盘的最后 33 个块,以便这些块可以安全地被备份 GPT 覆盖。如果您在转换之前没有这样做,可能会对文件系统造成一些损害。