Bug#756862: Fw: Feature dnsmasq as TFTP server in the installation guide ?
Hi,
Am 15. November 2025 18:42:42 MEZ schrieb Holger Wansing <hwansing@mailbox.org>:
>Hi Steven,
>
>Am 15. November 2025 17:47:26 MEZ schrieb Steven De Herdt <steven.deherdt@gmail.com>:
>>
>>I don't quite know how the situation was 12 years ago, but since isc-dhcp-server is now abandoned upstream: certainly worth it. Moreover, if you use network-manager and plan to install using a shared connection, with the built-in dnsmasq, it's as easy as dropping these lines in /etc/NetworkManager/dnsmasq-shared.d/:
>>
>> dhcp-boot=debian-installer/amd64/bootnetx64.efi
>> enable-tftp
>> tftp-root=/var/tftp/
>>
>>... the simplicity of which is hard to beat. I'll try to prepare a merge request in Salsa with this.
>
>Yes, a patch or a merge request would be great.
I looked into this, and would like to come up with a proposal.
Most of the text was stolen from
https://wiki.debian.org/DebianInstaller/NetbootPXE
I left Steven's NetworkManager-based three-liner from above beside, but took
the config from the wiki page, to have an example, that works for everyone
(hopefully).
I could think of something like this (it could be added as a new chapter
4.5.1 in https://d-i.debian.org/manual/en.amd64/ch04s05.html, replacing the
note we have now in 4.5):
========snip=======
/ Note:
/
| In the past, we recommended to use tftpd-hpa. It's written by the same author
| as the syslinux bootloader and is therefore least likely to cause issues.
| Another good alternative is atftpd.
| Documentation for these traditional packages is still available below.
|
| These days however, it turns out, that **dnsmasq** is a good and easy to configure
| solution, uniting all the needed functionality in one server.
\
\ end of note
4.5.1 Setting up dnsmasq as all-in-one solution for DHCP + TFTP
Following is an example for /etc/dnsmasq.conf providing the same functionality
as the method of installing and configuring of isc-dhcp-server and tftpd-hpa
described below:
-----------------------------------------------------------------
interface=eth1
domain=yourdomain.com
dhcp-range=192.168.0.3,192.168.0.253,255.255.255.0,1h
dhcp-boot=pxelinux.0,pxeserver,192.168.0.2
enable-tftp
tftp-root=/srv/tftp
pxe-service=x86PC, "PXELINUX (BIOS)", "pxelinux.0"
pxe-service=X86-64_EFI,"PXE (UEFI)","grubx64.efi"
# other UEFI type identifier, see RFC4578 section-2.1
pxe-service=2, "PXELINUX (0002-EFI)", "grubx64.efi"
pxe-service=6, "PXELINUX (0006-EFI)", "grubx64.efi"
pxe-service=7, "PXELINUX (0007-EFI)", "grubx64.efi"
pxe-service=8, "PXELINUX (0008-EFI)", "grubx64.efi"
pxe-service=9, "PXELINUX (0009-EFI)", "grubx64.efi"
-----------------------------------------------------------------
Download the netboot.tar.gz and extract it in the /srv/tftp
(for trixie in this example):
-----------------------------------------------------------------
cd /srv/
mkdir tftp
cd /srv/tftp
wget http://ftp.debian.org/debian/dists/trixie/main/installer-amd64/current/images/netboot/netboot.tar.gz
tar -xzvf netboot.tar.gz
rm netboot.tar.gz
ln -s debian-installer/amd64/grubx64.efi .
ln -s debian-installer/amd64/grub .
-----------------------------------------------------------------
Then restart dnsmasq :
systemctl restart dnsmasq
and you should be able to start performing the installation.
========snap=======
Holger
Reply to: