I realize it's been five years since the last message here, but wanted to
chime in with a workaround for a particular use case.

Ideally there would be a way (most likely kernel param) for the installer
to either ignore DHCP filenames entirely or to carry on without complaint
if it encountered one that it considered malformed. This would allow users
who don't have control over the DHCP server to carry on.

I ran into this behavior with a libvirt/chainloaded ipxe setup. I needed
the libvirt provisioned dnsmasq instance to set the DHCP filename to power
the ipxe chainloading, but this was breaking Debian installs due to the
installer trying to interpret the ipxe chainloading file as a preseed file.
I was able to work around it by *not* setting the bootp element in the
libvirt network xml and instead setting the following dnsmasq:options:

<dnsmasq:options>
  <dnsmasq:option value="dhcp-vendorclass=debianinstaller,d-i"/>
  <dnsmasq:option value="dhcp-boot=tag:!debianinstaller,
http://192.168.234.1/chain.ipxe"/>
</dnsmasq:options>

Note that the dnsmasq:option was added to libvirt in 5.6, so you need a
fairly new version at the time of writing.

This will set the DHCP filename for any client *not* identifying itself
with the "d-i" vendor class, as explained in the Debian B.2. Using
preseeding appendix.

Sorry, this is specific to a particular use case and somewhat tangential to
the original report but the problem is obscure and this might help someone.

Reply via email to