通过 HTTP 通过 iPXE 启动 UbuntuServer 安装程序时找不到预置文件

通过 HTTP 通过 iPXE 启动 UbuntuServer 安装程序时找不到预置文件

我知道运行 PXE 服务器的典型设置是 DHCP+TFTP+HTTP/FTP/NFS... 服务器的组合,但我的设置必须只是 DHCP+HTTP,所以我的 dhcpd.conf 有以下几行:

subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.5 192.168.1.10;
    option subnet-mask 255.255.255.0;
    ...
    filename "http://192.168.1.1/pxelinux.0";
}

我使用 iPXE (http://www.ipxe.org) - 可以从 HTTP 服务器获取 pxelinux.0 - 来启动我的客户端。他们会看到一个 pxelinux 菜单,其中有一个运行 Ubuntu 安装程序的选项。它的“APPEND”行如下:

APPEND url=http://192.168.1.1/mountpointisoubuntu/preseed/ubuntu-server.seed

安装过程中一切似乎都很顺利,直到我收到一条错误消息:

The installer failed to process preconfiguration file from http://192.168.1.1/pxelinux.0

我读过Debian 安装指南第 B.2.5 章如果 dhcpd.conf 中有一个 HTTP URL,安装程序会假定它是预置文件的 URL。

我以为附加“url”预置参数会覆盖此行为,但事实并非如此!我该怎么做才能告诉安装程序忘记使用 dhcpd.conf 中的 url 作为预置文件的 url?

答案1

我可以看到两个选项:

  1. 更改该APPEND行,使其使用静态 IP 设置,而不是出去寻找 DHCP。这样它就永远不会看到 DHCP filename
  2. 更改您的 DHCP 服务器配置,使其filename仅处理来自非 Debian 安装程序的请求。安装指南中给出的示例可以轻松调整:

    # your normal settings
    if substring (option vendor-class-identifier, 0, 3) != "d-i" {
        filename "http://192.168.1.1/pxelinux.0";
    }
    

相关内容