![BIOS 如何知道引导加载程序位于何处?](https://linux22.com/image/1342872/BIOS%20%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E5%BC%95%E5%AF%BC%E5%8A%A0%E8%BD%BD%E7%A8%8B%E5%BA%8F%E4%BD%8D%E4%BA%8E%E4%BD%95%E5%A4%84%EF%BC%9F.png)
在多引导系统中,每个操作系统可能只安装一个引导加载程序,BIOS 如何知道将控制权交给哪个引导加载程序?如何指定哪个引导加载程序是活动的?
让我们以多个 Linux 安装为例。我想您可以为每个决定安装的 Linux 操作系统指定一个新的唯一分区(或硬盘)来安装 /boot。我猜这会为每个操作系统留下一个引导加载程序。
答案1
在 IBM/DOS 兼容 PC 中,BIOS 读取硬盘驱动器第一个扇区(引导扇区)的内容并将其复制到内存中。
每个驱动器只能有一个引导扇区,它控制着加载哪个引导加载程序。
一旦引导加载程序被加载,它就只是可执行代码 - 引导加载程序可以从驱动器的其他区域加载其他引导加载程序。
在您的示例中,您将在驱动器上的某个位置安装 grub(引导加载程序) - 这将有一个配置脚本,其中包含您可以引导到的不同操作系统的列表(或您可以传递到的其他引导加载程序 - 例如 Windows 引导加载程序)。引导扇区中写入一条小指令,该指令将告诉机器 grub 的位置并在机器启动后立即加载它。