<div dir="ltr">Hi,<br><br>I'm a French teacher and I run a dnsmasq server as PXE (Debian preseeded installer) / DHCP / DNS server.<br>I'm running into PXE boot issues this year, using dnsmasq's built-in TFTP server.<br><br>Setup:<br>- Debian 12 server<br>- PXE configuration in dnsmasq<br>- TFTP root is /srv/tftp serving debian installer<br>- BIOS clients use pxelinux.0<br>- UEFI clients use grubx64.efi or bootnetx64.efi<br><br>Issue 1: BIOS PXE clients<br>- The pxelinux.0 is loaded successfully, and I get the menu from grub.cfg.<br><b>- However, during the initrd transfer, I get a timeout everytime, same with clonezilla's squashfs.<br></b>- This issue was resolved by disabling the built-in TFTP in dnsmasq and using an external TFTP server (tftpd-hpa). With tftpd-hpa, initrd loads fully and the installation proceeds.<br>Last year built in TFTP server was working fine for legacy BIOS, but I must say it was way slower than tftp-hpa.<br><br>Issue 2: UEFI PXE clients<br>- The UEFI firmware requests grubx64.efi (I see the TFTP request in the logs).<br>- The file exists and is accessible (confirmed with manual TFTP download from another host).<br><b>-</b> I can see the choice of PXE server<b>, still, when I press enter the UEFI clients fail with a "PXE-E18: Server response timeout" error before anything is shown on screen.<br></b>- I’ve tried several UEFI `.efi` loaders (grubx64.efi, bootnetx64.efi), all give the same result.<br>- I've tried symlink and raw file for the .efi file.<br><div>- I've tried different host (old and pretty new motherboard), all give the same result.<br><br>Here how I build my TFTP content :</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">cd /srv/tftp</font></blockquote><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">wget <a href="http://ftp.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/netboot.tar.gz" target="_blank">http://ftp.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/netboot.tar.gz</a><br>tar -xzvf netboot.tar.gz<br>rm netboot.tar.gz<br>ln -s debian-installer/amd64/grubx64.efi .<br>ln -s debian-installer/amd64/grub .</font></blockquote><div><br>I also compressed initrd files and included firmware, but it makes no difference — it’s not relevant to the problem.<br><br></div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><span style="font-family:monospace">cd /srv/tftp/debian-installer/amd64<br></span><span style="font-family:monospace">[ -f initrd.gz.orig ] || cp -p initrd.gz initrd.gz.orig<br></span><span style="font-family:monospace">[ -f firmware.cpio.gz ] || wget <a href="https://cdimage.debian.org/cdimage/firmware/bookworm/current/firmware.cpio.gz">https://cdimage.debian.org/cdimage/firmware/bookworm/current/firmware.cpio.gz</a><br></span><font face="monospace">cat initrd.gz.orig firmware.cpio.gz > initrd.gz<br></font><span style="font-family:monospace">gzip -cd initrd.gz | xz -9 --check=crc32 > initrd.xz </span></blockquote><blockquote style="margin:0 0 0 40px;border:none;padding:0px"><font face="monospace"><br></font></blockquote><div><div><br></div><div>My specific dnsmasq conf : <br><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">nano /etc/dnsmasq.d/99-pxe.conf</font></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> </blockquote></div></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">#disabled since using tftp-hpa </font></blockquote></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">#enable-tftp</font>  </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">tftp-root=/srv/tftp<br></font></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi"<br>pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0"<br></font></blockquote></div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"> </blockquote></div><div><div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><font face="monospace">pxe-service=0, "PXELINUX (0000-BIOS)", "pxelinux.0"<br>pxe-service=1, "PXELINUX (0001-EFI)", "grubx64.efi"<br>pxe-service=2, "PXELINUX (0002-EFI)", "grubx64.efi"<br>pxe-service=3, "PXELINUX (0003-EFI)", "grubx64.efi"<br>pxe-service=4, "PXELINUX (0004-EFI)", "grubx64.efi"<br>pxe-service=5, "PXELINUX (0005-EFI)", "grubx64.efi"<br>pxe-service=6, "PXELINUX (0006-EFI)", "grubx64.efi"<br>pxe-service=7, "PXELINUX (0007-EFI)", "grubx64.efi"<br>pxe-service=8, "PXELINUX (0008-EFI)", "grubx64.efi"<br>pxe-service=9, "PXELINUX (0009-EFI)", "grubx64.efi"</font></blockquote></div><br>I'm pretty sure last year I did not had thoses issues for EFI either.<br><br>Thanks in advance for any help or insight — I’m hoping to get the computer ready soon for the kids.<br><br>Have a nice day,<br><br>Best regards,  </div></div>