BIOS 如何知道引导加载程序位于何处?

BIOS 如何知道引导加载程序位于何处?

在多引导系统中,每个操作系统可能只安装一个引导加载程序,BIOS 如何知道将控制权交给哪个引导加载程序?如何指定哪个引导加载程序是活动的?

让我们以多个 Linux 安装为例。我想您可以为每个决定安装的 Linux 操作系统指定一个新的唯一分区(或硬盘)来安装 /boot。我猜这会为每个操作系统留下一个引导加载程序。

答案1

在 IBM/DOS 兼容 PC 中,BIOS 读取硬盘驱动器第一个扇区(引导扇区)的内容并将其复制到内存中。

每个驱动器只能有一个引导扇区,它控制着加载哪个引导加载程序。

一旦引导加载程序被加载,它就只是可执行代码 - 引导加载程序可以从驱动器的其他区域加载其他引导加载程序。

在您的示例中,您将在驱动器上的某个位置安装 grub(引导加载程序) - 这将有一个配置脚本,其中包含您可以引导到的不同操作系统的列表(或您可以传递到的其他引导加载程序 - 例如 Windows 引导加载程序)。引导扇区中写入一条小指令,该指令将告诉机器 grub 的位置并在机器启动后立即加载它。

相关内容