0

I have dnsmasq in proxy mode, serving pxe service and tftp server using this config:

port=0
log-dhcp
log-queries
log-facility=/var/log/dnsmasq.log
dhcp-range=192.168.0.0,proxy

enable-tftp
tftp-root=/tftp
pxe-service=x86-64_EFI,boot, grub/bootx64.efi

Using this configuration. Grub loads fine but has wrong prefix, net_default_server and pxe_default_server values. They are set to 192.168.0.1, which is IP adrress of router providing DHCP. When i manualy set prefix and root and run the normal command. The config loads and everything works fine.

I am using the grubnetx64.efi.signed file provided by ubuntu, with shim for secure boot.

How does grub determines the value for these variables?

Can i permanently change them?

1 Answer 1

1

This is a long-known bug in Shim/Grub.

https://bugs.launchpad.net/ubuntu/+source/shim/+bug/1813541

It occurs in proxy-configurations, where DHCP<>PXE. The shim is TFTP-hardcoded to DHCP and ignores PXE-option "next-server". Since you need a (Microsoft) signed version, you are in the hands of Ubuntu or Debian. But for years now this remains unfixed.

2
  • If your TFTP content is static, you might consider to install an additional/duplicated TFTP service on your DHCP server as a possible work-around. Apr 21, 2020 at 19:47
  • Unfortunetly i cannot change the DHCP server, thats why i went with the proxy option. I hope they fix it in the near future. Apr 21, 2020 at 21:04

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .