当启动基于 Windows 的计算机时,如果出现问题,则会出现多启动选项。将弹出一个标题为 Windows 启动管理器的 UI。Windows 7/8/10 是其列表中的一个选项。但这足以证明该软件在 Windows 操作系统内核启动之前运行。那么我可以推断 Windows Boot Manager 不是一个 Windows 程序。
我的推论正确吗?
它可以在不依赖 Windows 操作系统的情况下存在吗?(例如让它取代 UNIX 机器上的 GRUB。)
答案1
是的,引导加载程序和引导管理器由固件直接启动。
(尽管有些固件非常复杂,你可以实际上将 UEFI 称为“操作系统”,将其引导加载程序称为“UEFI 程序”......)
- 如果没有 Windows,Windows 启动管理器还能存在吗?是的。
- 它能取代 GRUB 吗?也许可以,也许不能。(尽管这取决于你所说的“UNIX”是指什么操作系统!)在 UEFI 上比在 BIOS 上更容易。
- GRUB 可以取代 Windows 启动管理器吗?也许可以,也许不能。(取决于 Windows 版本。)
问题在于,操作系统内核有不同的启动方式,并期望引导加载程序提供某些初始参数,例如从哪个磁盘启动、使用哪个“内核命令行”、Linux initramfs 在哪里等等。例如,以下是Linux 启动协议,这是多重引导规范被一些 BSD 使用。
因此您不能告诉 Windows BOOTMGR 直接启动vmlinuz
,也不能告诉 GRUBntoskrnl.exe
直接启动。
然而,有时这项工作不是由启动管理器本身完成的,而是由一个小的“存根”引导加载程序完成的,它能以标准方式启动。并且该存根引导加载程序可以由不同于平常的启动管理器启动。
例如,Windows BOOTMGR 首先启动
winload.efi
,然后那是所有出发前的准备工作ntoskrnl
都已完成。这意味着您可以通过启动来让 GRUB 启动 Windows
winload.efi
,而无需通过 BOOTMGR。类似地,Linux 内核通常带有内置的“EFI 存根”,以便内核本身可以作为独立的 UEFI 程序运行。
因此,如果您的 Linux 内核启用了自己的“EFISTUB”选项,或者附加了 systemd-boot 存根,那么您可以让 Windows BOOTMGR 直接启动它,而无需使用 GRUB 或其他任何东西。
答案2
事实上,两者是互相称赞的。
bootstrap 的字面意思是靴带,在日常生活中,它的意思是系好靴带并准备出发,在计算中,它的意思是准备工作。
引导程序或俗称引导程序是一种引导加载程序,也称为引导管理器,执行 BIOS。启动所有连接的外围设备并测试它们是否正常运行,接下来是更大的任务,即加载操作系统。
简而言之,操作系统就是使计算机能够操作的一切东西。
因此我可以说,没有启动操作系统,计算机就无能为力。