将 MBR 分区表转换为 GPT 后,Grub 无法启动

将 MBR 分区表转换为 GPT 后,Grub 无法启动

将硬盘从 MBR 转换为 GPT 后,我在启动 Ubuntu 16.04.2 LTS 时遇到问题。正如我在其他网站上看到的,我曾经将硬盘gdisk从 MBR 转换为 GPT。这样做并重新启动我的电脑后,结果发现 GRUB OS 菜单在启动时不显示,相反,屏幕只显示一个带有闪烁光标的黑屏。当我尝试将 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

有谁知道如何解决这个问题?我做错了什么吗?

答案1

简短回答:

grub i386-pc需要一个“BIOS 启动分区”(即输入ef02gdisk)。因此,您需要在转换后grub-install再次运行之前创建一个。

解释:

当您将 MBR/msdos 分区表转换为 GUID 分区表时,grub 无法工作,这是很自然的。

原因是,grub 利用“后 MBR 间隙”,即 MBR 和第一个分区之间的间隙,来嵌入其部分引导代码(又名core.img)。当您将分区表转换为 GPT 时,部分间隙将被主 GPT 覆盖,因为它位于 LBA 1-33(其中 MBR 位于 LBA 0)。

此外,GPT 上的 BIOS grub(又名 grub i386-pc)不再使用 MBR 后或 GPT 后间隙来嵌入 core.img。相反,它需要一个“BIOS 启动分区”(即输入ef02gdisk)。因此,您需要在转换后创建一个,然后再运行grub-install

另外,请注意,备份 GPT 位于磁盘的最后 33 个逻辑块中。如果最后一个/唯一分区延伸到磁盘的最后一个块,则需要缩小其上的文件系统,以确保文件系统不再覆盖分区/磁盘的最后 33 个块,以便可以使用备份 GPT 安全地覆盖这些块。如果您在转换之前没有这样做,可能会对文件系统造成一些损害。

答案2

Tom Yan 的回答很好,遵循这个建议可能会找到解决方案;然而,我想退一步思考并问另外几个问题,这可能会带来同样好的(甚至更好的)替代方案:

  • 为什么要进行 MBR 到 GPT 的转换?在某些罕见情况下,从 MBR 转换为 GPT 是至关重要的,在少数情况下很有用,但在大多数情况下是一种毫无意义的风险。如果有进行转换的真正原因(例如,如果磁盘大小超过 2 TiB,因此 MBR 未充分利用),那么将其保留为 GPT 格式很重要。如果没有,那么将其转换回 MBR 格式可能是一个合理的选择——尽管这样做不会恢复 BIOS 模式的引导加载程序;仍然需要重新安装。另一方面,向后转换几乎没有什么好处——主要是您不需要创建 BIOS 引导分区。少数计算机在从 GPT 磁盘以 BIOS 模式启动时也遇到了麻烦。如果您想进行 GPT 到 MBR 的转换,请参阅GPT fdisk 文档的这一部分。
  • 您的电脑是否支持EFI模式启动?如果计算机(或主板)是 2011 年末之后推出的型号,则很可能是基于 EFI 的。如果是这样,则转换为以 EFI 模式启动,而不是以 BIOS 模式启动是有意义的。这样做需要安装 EFI 引导加载程序。我在这一页。最容易安装的可能是 GRUB 2(你可以使用引导修复)和我自己的重新索引(您可以使用 rEFInd USB 闪存驱动器或 CD-R 进行引导,然后在 Ubuntu 中安装 rEFInd PPA 或 Debian 软件包来安装)。请注意,转换为 EFI 模式引导将需要创建一个EFI 系统分区 (ESP),它比 BIOS 启动分区要大(我建议 ESP 为 550 MiB)。
  • 计算机上除了 Ubuntu 之外还安装了哪些操作系统?如果计算机只启动 Ubuntu,则只需担心让一个操作系统再次启动。但是,如果您要启动其他操作系统,则必须考虑该操作系统的功能和引导加载程序。Windows 尤其会受到很大限制。在 Windows 中,启动模式和分区表类型是绑定的,因此如果您保留 GPT 配置,则必须转换为以 EFI 模式启动。这可能比切换回 MBR 的工作量更大。这款新的 Microsoft 工具可以进行转换,但它是以 MBR 分区表为起点设计的,我不知道它对双启动或分区表已转换为 GPT 的系统会有什么反应。以前有一些网站提供手动转换的分步说明,但据我所知,提供这些信息的网站都消失了,所以我再也找不到任何线索了。

EFI 模式启动比 BIOS 模式启动有一些优势,包括启动时间稍快(通常)、在操作系统中控制启动顺序、从操作系统访问一些启动和固件信息、更好的安全性(以安全启动的形式,如果您的硬件支持的话)、更灵活的引导加载程序管理以及更容易的引导加载程序管理(一旦您理解了如何操作;学习曲线确实有点陡峭)。另一方面,切换到 EFI 模式启动,即使可能,也很容易导致新的问题,特别是如果您不知道自己在做什么。因此,安装 BIOS 模式引导加载程序(无论是否逆转 MBR 到 GPT 的转换)在短期内可能是更安全的方法。如果系统与另一个操作系统多重启动,情况就会变得更加复杂,而且几乎可以肯定最简单的方法是返回 MBR。如果不知道这三个要点问题的答案,我无法提供是否尝试这种转换的明确建议。

相关内容