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

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. – Harald Neubert Apr 21 '20 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. – František Jeřábek Apr 21 '20 at 21:04

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.