虚拟机上的 PXE 启动 dracut 命令 (PXELINUX DEFAULT) 卡住了

虚拟机上的 PXE 启动 dracut 命令 (PXELINUX DEFAULT) 卡住了

我的设置:

虚拟盒版本 6.1.22 r144080(Qt5.6.2)

Windows 版本:10

运行两台虚拟机:

1 VM:Centos 7 托管 DNS、TFTP、DHCP、HTTPD,配有两张网卡 --> 1 张卡式主机专用适配器(无 DHCP)/2 张卡式桥接适配器

2 VM:使用网卡启动 --> 仅主机适配器

我正在尝试从 PXE 启动安装来安装 CoreOS(始终需要相同的 IP,因此使用 1 VM DHCP 服务器)。

第一个问题:能够从 DHCP 获取 IP 但是 tftp 不起作用 --> 将适配器类型从 Intel 更改为 PCnet 后,PXE 启动安装开始工作。

当前问题:

一旦它从 PXE 菜单中选择了选项并开始加载图像......在初始启动期间,PXELINUX 默认的 kickstart 命令出现......它卡住了,无法继续移动。我已附上相同的屏幕截图。

https://ibb.co/PNzJnjY

我的观察结果:

我已开始对 2 个 VM 执行 ping 操作,它们将在 DHCP 和 PXE 启动期间开始执行 ping 操作...但一旦从 PXE 启动菜单选项移出,它将停止 ping 操作。因此,如果网络无法访问,则意味着 KS 将无法工作。

我在具有不同 MAC 的两个 VM 上应用了相同的仅主机适配器。我不确定我做错了什么。请帮我解决。

谢谢 Rana

答案1

当您通过 PXE 启动客户端时,其 PXE ROM/固件会执行 DHCP 事务以获取 IP 和 PXE 信息。

接下来,它传输并执行 TFTP 检索到的 NBP(网络启动程序),它通常是显示启动菜单的启动管理器。

接下来选择一个菜单选项,PXE 引擎 TFTP 传输内核和 Initrd。

接下来启动内核并执行新的 DHCP 事务,这次仅获取 IP 而没有 PXE 参数。

在您的情况下,似乎最后的 DHCP 事务失败或者没有执行,那么您只能看到内核命令行的打印输出,但看不到任何 NIC 启动并获取其 IP。

Wireshark 可以帮助您在网络数据包级别查看这一点。

第二次 DHCP 事务通常会失败,因为:

  1. 内核命令行中的错误参数
  2. kernel/initrd 设置不包含所需的 NIC 驱动程序
  3. DHCP 事务尝试在多宿主 PC/VM 中使用错误的 NIC
  4. init 脚本和相关脚本引擎(即 dracut)提供了一个有缺陷的 PXE 实现
  5. ETC。

相关内容