在 UEFI 模式下通过 PXE 启动 HPE 服务器很困难

在 UEFI 模式下通过 PXE 启动 HPE 服务器很困难

我们有一些 HPE ProLiant 刀片服务器 Gen9,我们希望通过网络启动来安装 CentOS。

我们正在使用 Cobbler 来制作配置。

在启动时,服务器将请求以其 UUID 命名的文件,但失败了。然后它通过 MAC 进行请求,成功了。它从 .efi 文件加载 GRUB,并且 GRUB 能够显示启动菜单。

当我们从启动菜单中选择唯一的选项时,它会前进到空白屏幕并且......什么也不做。

通过查看 Cobbler 服务器的日志,我可以看到服务器正在请求 vmlinuz,并且据我所知,它完全检索了该文件,但我所做的不是看看它是否正在下载 initrd.img。

我曾尝试使用 GRUB 配置,但尚未找到正确的方法。

还有其他人遇到过这个问题吗?如果是的话,你能分享一下你是如何解决这个问题的吗?

值得注意的是,当我们尝试使用传统 BIOS 启动而不是 UEFI 时,它可以正常工作。我知道它会为此下载一组不同的文件,但我想提到这一点,因为这表明目标服务器、Cobbler 服务器上的 TFTP 服务或它们之间的网络没有问题。但我们不想将此用作解决方法,因为 BIOS 不会永远存在。

答案1

成功的解决方案是从 GRUB Legacy (0.97) 迁移到 GRUB2。

启动服务器所在的 DC 与 TFTP/DHCP 服务器所在的 DC 之间的直线距离约为 120 英里。这必然会导致一定的延迟。由于 TFTP 是一种非窗口协议,因此在发送下一个数据包之前必须确认一个数据包。因此,如果数据包较大,则假设一切正常,则整体传输将花费更少的时间。

GRUB Legacy 规定了 5 分钟的超时时间和 512 字节的数据包大小。GRUB2 使用 1024 字节的数据包大小,并且没有超时。服务器启动大约需要 14 分钟。

传统模式启动之所以有效,是因为服务器使用的是 Syslinux 而不是 GRUB。

缺点是配置是使用 Cobbler 创建的。目前发布的 Cobbler 版本都不支持 GRUB2,因此我必须创建一个脚本,在 Cobbler 完成构建后修改 dhcpd.conf 文件,并创建一个合适的 grub.cfg-01-${mac_address} 文件。

相关内容