引导加载程序是否特定于设备?

引导加载程序是否特定于设备?

我想知道引导加载程序是否特定于您正在启动的设备?

例如,用于安装 Windows 的 USB 引导加载程序是否与用于安装 Windows 的 CD 引导加载程序完全相同,或者它是否是特定于设备的?

我的猜测是相同的,因为在任何一种情况下,bios 都会将前 512 个字节(设备的第一个块)加载到内存中,并且如果机器代码与 cpu 兼容,则数据将以相同的方式处理!

但我不确定!欢迎任何答案!谢谢!

答案1

这取决于您所说的“您正在启动的设备”是什么意思。如果您指的是存储设备,则在启动过程的第一阶段没有任何特定于它的内容。(AHCI 特定的驱动程序内容是后期阶段的一部分)。

如果您将 (UEFI)-BIOS 视为一种设备,那么它是特定于设备的,因为 UEFI 启动过程不同于传统 BIOS 启动过程。

我的猜测是相同的,因为在任何一种情况下,bios 都会将前 512 个字节(设备的第一个块)加载到内存中,并且如果机器代码与 cpu 兼容,则数据将以相同的方式处理!

在引入 UEFI-BIOS 之前,这一假设一直成立。在现代 UEFI-BIOS 中,这是一种很少出现的启动设置,仅用于规避某些启动问题。

如果将文件“bootmgr.efi”的大小与主引导记录中存储的代码进行比较,这一点就变得很明显了。

您不能将主引导记录中的代码放入文件“bootmgr.efi”并期望它启动 UEFI 机器。

另一个回答中提到的文章

https://en.wikipedia.org/wiki/Bootloader

已经过时,因为它没有考虑 UEFI-BIOS 在 UEFI 模式下启动时的不同启动过程。(当 UEFI-BIOS 包含所谓的 CSM(兼容性支持模块)时,它可以以旧方式启动。

答案2

不,引导加载程序并不特定于它所启动的设备。

在启动过程中,直到操作系统加载并接管,引导加载程序使用 BIOS 发布的功能。

换句话说,BIOS 是特定于设备的,而不是初始引导加载程序。请注意,引导加载程序可以链接在一起,但这个问题太复杂了,无法在此详述。

有关详细信息,请参阅For more information, see 维基百科 引导程序

相关内容