以编程方式控制服务器的 PXELINUX 启动选择

以编程方式控制服务器的 PXELINUX 启动选择

我想通过网络启动配置一些设备。目前,我正在使用 ISC DHCP 发送适当的 PXELINUX 版本 (UEFI/BIOS),然后我有一个 PXELINUX 菜单,我可以在其中选择要安装的操作系统等。这要求我将键盘和屏幕连接到设备(如果未集成)。

我一直在考虑给 PxE 添加键盘和屏幕服务器反而。然后我会编写一个小 UI,您可以在其中选择操作,例如安装某个操作系统或运行 memtest,它将在启动设备上执行该操作。 *

为此,我需要以编程方式在 PXELINUX 菜单中进行选择。我发现您可以指定默认选择,但仅此而已。有没有办法挂钩 dhcpd 或 PXELINUX,以便我可以决定在一段代码中启动哪个映像?


*) 这里有两个选项:

  1. 在服务器上,首先选择要启动的操作系统,然后连接并启动客户端。我可以通过更改配置文件并重新启动 dhcpd 服务器来实现此目的,但这需要一段时间,并且会变得更加麻烦。

  2. 连接并开始启动客户端,然后等待我选择服务器端要启动的内容。这是优选的,因为它更具交互性。我想象代码是这样的:

    • dhcpd 看到有人想要 netboot,调用我的钩子来更新 UI
    • PxE 部分启动,等待
    • 用户在 GUI 中选择某些内容
    • 服务器发出数据以完成 PxE 启动

我想我可以启动一个最小的 Linux,然后尝试链启动,但我不想自己重新实现或分叉 PXELINUX/SYSLINUX。所以这就是为什么我希望有一个钩子或其他解决方案。

答案1

http://www.cobblerd.org/控制各种软件(dhcp 服务器、tftp 服务器、dns 服务器等),并为您提供一个 GUI 来决定通过 PXE 提供每个不同的 MAC 地址来启动。

这不是最小/最简单的设置,但似乎符合您的要求。

相关内容