1

I know the typical settings to run a PXE server is the combination DHCP+TFTP+HTTP/FTP/NFS... servers, but my setting must be only DHCP+HTTP, so my dhcpd.conf has these lines:

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";
}

I use iPXE (http://www.ipxe.org) -which can get pxelinux.0 from a HTTP server- to boot my clients. They see a pxelinux menu with an option to run Ubuntu installer. Its "APPEND" line is like this:

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

Everythings seems going well during installation until I get a error message:

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

I've read in Chapter B.2.5 of the Debian Installation Guide that if dhcpd.conf there is a HTTP url, the installer assumes it is the url of a preseed file.

I thought that appending the "url" preseed parameter this behaviour would be overriden, but it is not! What can I do to tell the installer to forget using the url from dhcpd.conf as a preseed file's url?

  • Ouch! Using a protocol for a netboot file to retrieve a preseed file is abnormal! -- "Normally this is a file to netboot, but if it appears to be an URL then installation media that support network preseeding will download the file from the URL and use it as a preconfiguration file." (debian install guide) – umeboshi Dec 26 '14 at 7:22
  • Link to Debian guide for completeness. – ws6079 Aug 23 '20 at 20:58
2

I can see two options:

  1. Change the APPEND line so that it uses static IP settings instead of going out looking for DHCP. This way it should never see the DHCP filename.
  2. Change your DHCP server configuration so that it serves the filename only to requests not from a Debian installer. The example given in the Installation guide can be easily adapted:

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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.