PXE Booting Debian to AUFS-NFS root

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
  

Things that do not work

Clean shutdown and reboot do not work because systemd cannot figure out NFS rootfs needs to keep mounted.

References