将PXELINUX转换为gPXE

我有一个当前工作的PXELINUX设置,菜单为不同的操作系统版本。 最近我尝试添加VMware安装程序。 这是非常好的一点,我无法加载所需的文件。 VMware本身说使用TFTP下载所有的文件不是最好的select,特别是如果你有一个高负载的networking,他们build议使用HTTP / gPXE。

所以我正在考虑实施gPXE。 但是迄今为止我所做的几个尝试都没有成功,我不确定这个问题到底是什么。

首先,我改变了DHCPconfiguration中的文件名,指向gpxelinux.0,而不是pxelinux.0。系统正在启动,显示gPXE,但没有进一步处理。 它正在获得一个DHCP,然后显示

No filename or root path specified

我也尝试从PXELINUXconfiguration文件中链接加载gPXE,该configuration返回了相同的错误。

我读了一些关于gPXE的文档,他们都使用HTTPconfiguration文件中的文件名来源。 我试了下,但它已经显示我的TFTP错误

PXE-T01: File not found PXE-E3B: TFTP Error - File Not found

在这一点上,我不知道还有什么尝试。 我已经将整个TFTP复制到HTTP服务器,尝试使用gPXE脚本,它将使用DHCP选项209/210重写源。 但是他们都失败了,因为我无法使用HTTP将其加载到DHCPconfiguration中。

任何人都可以给我一些关于在哪里寻找错误的提示,或者我可以如何将当前的PXELINUX转换为gPXE。

任何帮助非常感谢。

更新:

我在玩耍,终于搞定了。 是DHCPconfiguration中的错误。 这是我现在使用的:

class "pxeclients" { match if substring(option vendor-class-identifier, 0, 9) = "PXEClient"; if exists user-class and option user-class = "gPXE" { filename "http://10.140.160.203/boot.gpxe"; } else { next-server 10.140.160.203; filename "/gpxelinux.0"; } }

boot.gpxe链加载我的pxelinuxconfiguration

#!gpxe imgfree chain http://10.140.160.203/vesamenu.c32 http://10.140.160.203/pxelinux.cfg/default

这是一个好方法,还是有其他的东西要注意?

您不需要移动到gPXE,因为lpxelinux.0 (Syslinux 6.03)支持http传输。

另外,如果您正在安装VMware VMvisor(例如,VMware-VMvisor-Installer-6.0.0-2494585.x86_64.iso),则只要正确设置环境,就可以通过常规TFTP来执行此操作。 即如果你正在尝试使用iso和memdisk技术来安装它,你肯定会失败。 相反,你可以使用mboot的方法; 来自Serva的网站:

 kernel = /NWA_PXE/$HEAD_DIR$/mboot.c32 append = -c /NWA_PXE/$HEAD_DIR$/BOOT.CFG