Windows 启动管理器和 Windows 操作系统之间有什么关系?

Windows 启动管理器和 Windows 操作系统之间有什么关系?

当启动基于 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。启动所有连接的外围设备并测试它们是否正常运行,接下来是更大的任务,即加载操作系统。

简而言之,操作系统就是使计算机能够操作的一切东西。

因此我可以说,没有启动操作系统,计算机就无能为力。

相关内容