定位 GRUB 分区

定位 GRUB 分区

在使用 GParted 进行一些更改之前,我在 GParted 和 Ubuntu“磁盘”实用程序中都观察了我的磁盘。看来我只有一个分区boot在 GParted 中标有标志(并且bootable在“磁盘”实用程序视图中具有“on”属性)。这是否表明该分区是 GRUB 所在的位置?

动机:我的磁盘/系统有以下历史记录:Windows 7 --> Ubuntu 的 Wubi 安装 --> 用于从 Wubi 迁移到常规 Ubuntu 安装的迁移脚本,包括双启动。我想删除我的 Windows 分区并将其重新用作 Ubuntu 的新数据分区,从而避免在此过程中出现无法启动的机器情况。

答案1

不,某些引导加载程序(例如 Windows)依赖于引导标志,因为它只是将控制权传递给分区引导扇区。

但是 Grub 不需要这样做;它知道哪个分区包含额外的 grub 模块和配置文件,并根据该信息而不是是否存在启动标志来加载它们。

如果你运行启动信息脚本它会告诉你更多关于系统的信息,包括 Grub 从哪里加载文件。通常 Grub 会根据其 UUID 来定位此分区,因此修改其他分区不会影响启动。但如果 Grub 使用分区号启动,则删除或添加分区可能会导致启动问题。

我建议准备一个 Ubuntu 可启动 USB,以便在需要时重新安装 Grub。

问:BIOS 如何知道它应该运行 Grub?

对于基于 BIOS(非 EFI)的计算机,BIOS 会查找 MBR(主引导记录)来查找主引导加载程序和分区表。这是 Grub(或 Windows 引导加载程序)的安装位置。问题在于空间非常有限,因此引导加载程序的功能也非常有限。对于 Windows 的引导加载程序来说,这没问题,因为它除了传递控制权外,几乎什么也不做,但 Grub 采用了不同的方法,并直接从其/boot分区加载所需的其他模块。

如果您查看 bootinfoscript 的结果,它会告诉您 MBR 中安装了什么,如下所示:

============================= Boot Info Summary: ===============================

 => Windows is installed in the MBR of /dev/sda.

或者

 => Grub2 (v1.99) is installed in the MBR of /dev/sda and looks at sector 1 of 
    the same hard drive for core.img. core.img is at this location and looks 
    for (,msdos5)/boot/grub on this drive.

相关内容