在双启动系统中,BIOS 如何选择运行哪个引导加载程序?

在双启动系统中,BIOS 如何选择运行哪个引导加载程序?

我有 Windows 和 Ubuntu 的双启动系统。当我打开机器时,BIOS 会进行 POST,然后启动加载程序。

我想了解 BIOS 如何选择运行哪个引导加载程序。我想知道双启动计算机中 BIOS 和引导加载程序之间的过程。

答案1

BIOS 固件实际上并不选择引导加载程序。它从驱动器的 0 扇区加载代码并执行它。无论那里有什么,它都会执行。希望它是一个引导加载程序(或加载引导加载程序的东西),但不一定如此。在早期的 PC 时代,您可以在软盘上玩游戏,这些游戏只需启动并运行而无需操作系统 - 这些现在被称为“引导程序”。

UEFI 固件实际上理解分区和文件系统,并扫描驱动器以查找 UEFI 系统分区类型。由于这是一个文件系统,因此可以在此处放置多个引导加载程序。UEFI 固件应该提供菜单或其他方式供您选择使用哪个引导加载程序。

许多 UEFI 系统都以“传统模式”启动 - 其中 UEFI 加载“兼容性服务模块” - 使其看起来像 BIOS - 并且实际上像 BIOS 一样工作。

GRUB 是一种常见的开源引导加载程序,它可以引导 Linux 或“链式加载”(将控制权交给)Windows 引导加载程序(通常是 Windows 分区的 Boot 文件夹中的 winload.exe)。GRUB 让您能够做出决定。GRUB 可以读取配置文件并从中采取默认选择。

如果您想要丰富的、血腥的细节。

答案2

该图显示了控制权如何从固件(BIOS 或 UEFI)传递到引导加载程序,以及如何从引导加载程序传递到 Ubuntu 中的操作系统。

在此处输入图片描述
          BIOS 与 UEFI

如果操作系统以不同的模式(BIOS 和 UEFI)安装,则无法使用 grub 双启动 Windows 和 Ubuntu。在某些预装了 Windows 的计算机中,UEFI 设置实用程序中有一个启动 Windows 的选项。


将 Ubuntu 转换为 UEFI 模式

  1. 启动 Boot-Repair,然后选择高级选项->GRUB 位置标签。
  2. 如果你没有看到单独的 /boot/efi 分区选项,这意味着您的电脑没有任何 UEFI 分区。
  3. 如果你看到单独的 /boot/efi 分区选项,请在其左边的复选框中打勾。
  4. 点击申请右下角的按钮。

将 Ubuntu 转换为 UEFI 模式

  1. 设置 BIOS,使其以 UEFI 模式启动硬盘。调整此设置的方式取决于计算机的具体型号,但通常此设置位于引导BIOS/UEFI 设置实用程序的选项卡。

或者,你可以按照以下说明,在以 UEFI 模式启动的实时 Ubuntu USB 会话中,从终端将现有的 Ubuntu 安装从 BIOS 模式转换为 UEFI 模式这个答案


将 Ubuntu 转换为 BIOS 模式

笔记:仅使用此过程将 UEFI 模式的 Ubuntu 安装转换为以 BIOS/CSM/旧模式启动。如果某些硬件在 UEFI 模式下无法正常工作,则可能需要进行此类转换。(显卡是常见的问题来源。)当 Windows 以 UEFI 模式启动时,转换为以 BIOS/CSM/旧模式启动会使启动过程更加尴尬——您需要使用计算机的内置启动管理器在操作系统之间切换,而某些计算机的启动管理器非常差,因此这可能无法实现。

  • 如果 Ubuntu 安装在 GPT 磁盘上(您可以通过命令检查sudo parted -l),请使用 GParted 分区编辑器在其磁盘的启动位置创建 BIOS-Boot 分区(1MB、未格式化的文件系统、bios_grub 标志)。
  • 启动 Boot-Repair,然后选择高级选项->GRUB 位置标签。
  • 取消选中单独的 /boot/efi 分区选项

取消选中单独的 /boot/efi 分区选项

  • 点击申请右下角的按钮。
  • 设置 BIOS,使其以传统模式启动硬盘。通常,此设置位于引导标签 →引导顺序BIOS 部分。

将 Windows 转换为 GPT 模式

MBR2GPT.exe 是一个命令行工具,位于 Windows 10 中的 System32 文件夹中。使用它,您可以有效且非破坏性地将 Windows 10 操作系统磁盘从 MBR(用于传统 BIOS)转换为 GPT 分区样式(用于 UEFI),而无需修改/删除磁盘上的任何数据或全新安装 Windows 10。


链接:

答案3

在传统模式(BIOS 启动而非 UEFI)下,BIOS 控制驱动器顺序。以前,这是由电缆控制的;但更改 BIOS 设置比打开机箱和更换电缆要好。

BIOS 将第一个磁盘(或由 BIOS 控制的驱动器顺序)的第一个扇区(称为 MBR 或主引导记录的 512 字节磁盘)加载(到内存中),然后将(CPU)控制权传递给此“引导加载程序”。BIOS 由此完成了其工作,第一个扇区中的代码开始运行。

相关内容