虚拟机 uefi PXEBoot

虚拟机 uefi PXEBoot

我已经成功地使用基于 BIOS 的系统设置了 PXEboot 环境(基于 foreman)。我可以使用默认 BIOS 子系统对 virtualbox 执行相同的操作。
随着 UEFI 开始越来越流行,我想要 PXEBoot 基于 UEFI 的系统。

我看到 Virtualbox 中有一个设置为“启用 EFI”,
grubx64.efi的 TFTP 服务器和 ProxyDHCP 已准备好将其作为选项发送

但是在启动此类支持 EFI 的 VM 后,会出现一些奇怪的 shell,其中列出了几个 BLK*: 设备,仅此而已...
如何使用此 shell 从 TFTP 请求启动文件(我没有看到 DHCP 流量)?

我发现了一些有关编辑的提示,但我的所有设备startup.nsh上都没有此类文件BLK

答案1

使用 Virtualbox 6.1 以下对我有用。在机器设置上执行以下操作:

  • “系统->启用EFI”
  • “网络->高级->适配器类型:半虚拟化网络(virtio-net)”。

这样,它就会默认启动到 UEFI shell。输入exit,这会弹出一个Boot Manager菜单。在该菜单中,UEFI PXEv4从启动管理器中进行选择,您将看到一个新屏幕,其中显示

>>Start PXE over IPv4.

然后它将引导到您的 grub.cfg。要使虚拟机自动通过 PXE 启动,您需要进入启动菜单并更改启动顺序。

请注意,要查看UEFI PXEv4,我必须特别选择Paravirtualized Network适配器。其他都不起作用。

答案2

我已经设法解决了这个问题。实际上它包括两个问题。

  1. 启用 EFI 时 VirtualBox 不支持 PXEBooting
  2. 使用裸机显示 DHCP 请求正在发送,但 proxyDHCP“附加”响应未处理(EFI PXEBoot 失败)。原来这是一个问题与域名解析- 支持 EFI 的最低版本是 2.76

答案3

我创建了一个简单的:https://github.com/windli2018/virtualbox-efi-netboot。希望对那些仍然需要这个的人有帮助。它只是带有启动 ipxe 的 efi 启动 ios 映像。

相关内容