在使用 GParted 进行一些更改之前,我在 GParted 和 Ubuntu“磁盘”实用程序中观察了我的磁盘。看来我只有一个分区boot
在 GParted 中标有标志(并且bootable
在“磁盘”实用程序视图中具有“打开”属性)。这是否表明该分区是 GRUB 所在的位置?
动机:我的磁盘/系统有以下历史:Windows 7 --> 五笔安装 Ubuntu --> 用于从五笔迁移到常规 Ubuntu 安装的迁移脚本,包括双引导。我想从头开始我的 Windows 分区并将其重新用作 Ubuntu 的新数据分区,以避免在此过程中出现无法启动机器的情况。
不,某些引导加载程序(如 Windows)依赖于引导标志,因为它只是将控制权传递给分区引导扇区。
但是 Grub 不需要这个;它知道哪个分区包含额外的 grub 模块和配置文件,并根据该信息而不是引导标志的存在或不存在来加载它们。
如果您运行bootinfoscript,它会告诉您有关系统的更多信息,包括 Grub 从何处加载文件。通常 Grub 会根据 UUID 来定位这个分区,所以修改其他分区不会影响启动。但是如果 Grub 使用分区号引导,删除或添加分区可能会导致引导问题。
我建议使用 Ubuntu 可启动 USB,以便您可以在需要时重新安装 Grub。
问:BIOS 如何知道它应该运行 Grub?
对于基于 BIOS(非 EFI)的计算机,BIOS 查找 MBR(主引导记录)以找到主引导加载程序和分区表。这是安装 Grub(或 Windows 引导装载程序)的地方。这样做的问题是空间非常有限,因此引导加载程序的功能也是如此。对于 Windows 的引导加载程序,这没问题,因为它只是传递控制权,但 Grub 采用不同的方法,并根据需要直接从其
/boot
分区加载其他模块。如果您查看 bootinfoscript 的结果,它会告诉您 MBR 中安装了什么,如下所示:
或者