It is still nontrivial to get DHCP, TFTP, PXE and NFS root working to boot you a Debian on a diskless computer. The main steps on the (here, combined) DHCP, TFTP and NFS server are listed below.
# mkdir -p /pxe/testing /pxe/tftp/pxelinux.cfg # cd /pxe # debootstrap testing /mnt/b100/d0/pxe/testing http://ftp.us.debian.org/debian # export LANG=C # chroot testing apt-get install linux-image-4.9.0-3-amd64 initramfs-tools lsscsi less netbase net-tools ifupdown # chroot testing apt-get update # chroot testing apt-get upgrade # vi testing/etc/hostname testing/etc/network/interfaces testing/etc/fstab # vi testing/etc/initramfs-tools/modules testing/etc/initramfs-tools/initramfs.conf # chroot testing update-initramfs -u -k all # chroot testing passwd root # cp testing/boot/vmlinuz* /pxe/tftp/ # vi /pxe/tftp/pxelinux.cfg/default # vi /etc/exports # vi /etc/dnsmasq.conf
Clean shutdown and reboot do not work because systemd cannot figure out NFS rootfs needs to keep mounted.