Top level menu and some netboot installer menus. Bottom left shows the grub-efi boot menu.

di-netboot-assistant

The package di-netboot-assistant (PTS) provides a tool to simplify the preparation of files for TFTP net booting:

Audience:

For further information, take a look at the README, README.preseed and the example configuration samples.

Grub-efi boot menu with customized boot options.

The README.installbox shows how to temporarily turn your machine into an 'installbox', ready to netboot and install clients. In addition, some ansible playbooks that might be useful as inspiring examples are available.

The list of supported netboot images contains many Debian releases as well as some derivatives.

Testing and Quick Start

Testing

It is easy to test di-netboot-assistant with qemu/kvm and the emulated TFTP server:

apt --no-install-recommends install di-netboot-assistant  # '--no-install-recommends' to avoid an extra TFTP server
TFTP_ROOT="/var/lib/tftpboot/"
mkdir "$TFTP_ROOT"
di-netboot-assistant install stable

Then start the VM (BIOS):

TFTP_ROOT="/var/lib/tftpboot/"
qemu-system-x86_64 -enable-kvm -m 1024 -boot n -net nic \
                           -net user,tftp=$TFTP_ROOT,bootfile=/d-i/n-a/pxelinux.0

or with UEFI firmware (apt install ovmf):

TFTP_ROOT="/var/lib/tftpboot/"
qemu-system-x86_64 -enable-kvm -m 1024 -boot n -net nic -bios /usr/share/OVMF/OVMF_CODE.fd \
                           -net user,tftp=$TFTP_ROOT,bootfile=/d-i/n-a/bootnetx64.efi

Quick Start

A proper setup requires some familiarity with DHCP. Install a DHCP server and a TFTP server or use dnsmasq and its builtin TFTP server.

After having your DHCP working, install di-netboot-assistant:

apt install di-netboot-assistant

di-netboot-assistant needs to know the TFTP root directory. If you get the error "TFTP root directory doesn't exists", either create the directory or edit the configuration file /etc/di-netboot-assistant/di-netboot-assistant.conf and adjust the TFTP_ROOT-variable to point to your TFTP server's root directory, for example:

TFTP_ROOT=/srv/tftp

Then, play with the Netboot Installer. You can list the available images:

di-netboot-assistant install

You can quickly do stuff like preparing Debian "stable" and Ubuntu "xenial" for both i386 and amd64:

di-netboot-assistant install stable xenial --arch=i386,amd64

It does not work? Perhaps you should take another look at the README and especially the README.installbox.

Enjoy and have fun!

Further Reading