HvLoader.efi 是一个用于加载外部虚拟机监控器加载器的 EFI 应用程序。
HvLoader.efi 加载给定的虚拟机监控器加载器二进制文件(DLL、EFI 等),并调用其入口点,同时传入 HvLoader.efi 的 ImageHandle。这样一来,虚拟机监控器加载器二进制文件就可以访问 HvLoader.efi 的命令行选项,并将这些选项用作配置参数。HvLoader.efi 的第一个命令行选项是虚拟机监控器加载器二进制文件的路径。
目前,HvLoader.efi 位于 efi 分区中(即 /boot/efi),且仅能访问该分区。因此,任何路径参数都需要相对于 /boot/efi 分区。此限制可能会在未来的更新中放宽。
典型的 HvLoader.efi grub 命令可能如下所示:
chainloader /HvLoader.efi \lxhvloader.dll MSHV_ROOT=\Windows MSHV_ENABLE=1 MSHV_SCHEDULER_TYPE=0 ...
HvLoader.efi 在 TianoCore EDK2 中构建。构建环境最初在 Ubuntu 22.04.1 LTS 上测试过,但也可以在 Microsoft Windows、macOS 和 Unix 上设置。
更多信息,请参阅 EDK2 入门指南。
在 Linux 上,请按照 使用原生 GCC 的 EDK2 中的说明操作,最后克隆仓库并根据 Linux 通用 EDK II 构建说明 进行构建。
HvLoader.efi 作为应用程序存在于 MdeModulePkg 中,即 /MdeModulePkg/Application/HvLoader。
成功构建 EDK2 后,您可以按照以下步骤构建 HvLoader.efi,
从 edk2 的根目录运行:
pushd MdeModulePkg/Application
popd
将 HvLoader 添加到 MdeModulePkg:
构建 HvLoder.efi:
build -p MdeModulePkg/MdeModulePkg.dsc -m MdeModulePkg/Application/HvLoader/HvLoader.inf
根据您的目标配置(DEBUG/RELEASE),HvLoader.efi 生成于
Build/MdeModule/DEBUG_GCC5/X64/HvLoader.efi
或
Build/MdeModule/RELEASE_GCC5/X64/HvLoader.efi
HvLoader.efi 需要为安全启动进行签名。