PXE Network booting
PXE, short for "Preboot Execution Environment", is a standard for booting clients using an operating system which is physically stored on some other computer on the network. The information required to boot over the network is typically served to the client by a DHCP server and the actual files are usually transferred using tftp.
Basic Example
There are many software options which can be used to serve PXE clients. dnsmasq is a really easy way to do it. It is available in all the distributions repositories. Install it with apt-get install dnsmasq or dnf install dnsmasq depending on what distribution you are using.
dnsmasq is configured in the file /etc/dnsmasq.conf which can look like this when DHCP, TFTP and PXE booting is configured:
interface=eth0 dhcp-range=192.168.1.100,192.168.1.200,12h dhcp-boot=pxelinux.0 enable-tftp tftp-root=/tftpboot/ dhcp-option=3,192.168.1.1 dhcp-option=6,8.8.8.8,1.1.1.1
dhcp-optionnumber3specifies the network gateway.dhcp-optionnumber6specifies the DNS servers which should be used.*dhcp-boot=andenable-tftpandtftp-root=are the lines are important for serving PXE boot information.
Ensuring there is a image to boot
You need a special network boot image. Regular ISO images used by GNU/Linux distributions will not work. They typically offer a PXE option for either the installer or a live CD or both. The Debian installation image is available as a PXE capable image. It is named netboot.tar.gz. To enable it:
mkdir -p /tftpboot cd /tftpboot wget http://ftp.nl.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/netboot.tar.gz tar zxpf netboot.tar.gz # rm netboot.tar.gz
Removing the file with rm netboot.tar.gz is optional. You may need it.
