虚拟机 uefi PXEBoot

lak*_*ier 6 virtualbox uefi foreman

我已经成功地使用基于 BIOS 的系统设置了 PXEboot 环境(基于工头)。我可以使用默认的 BIOS 子系统对 virtualbox 做同样的事情。
随着 UEFI 开始变得越来越流行,我想使用基于 PXEBoot UEFI 的系统。

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

但是在启动这种启用 EFI 的 VM 之后,会出现一些奇怪的外壳,其中列出了几个 BLK*: 设备,仅此而已......
如何甚至使用此外壳从 TFTP 请求启动文件(我看不到 DHCP 流量)?

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

小智 6

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

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

有了这个,它默认启动到 UEFI shell。键入exit,它会显示一个Boot Manager菜单。在该菜单中,UEFI PXEv4从 Boot Manager 中选择,您将看到一个新屏幕,上面写着

>>Start PXE over IPv4.
Run Code Online (Sandbox Code Playgroud)

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

请注意,要查看UEFI PXEv4,我特意选择了Paravirtualized Network适配器。没有其他工作。

  • 这也适用于我在 vbox 6.1 下 UEFI PXE 启动 VirtualBox VM,谢谢! (2认同)

lak*_*ier 1

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

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

  • Virtualbox 6.1 现在确实支持 EFI PXE 启动,因此这不应再成为公认的答案。 (5认同)