I have been working with Debian Stretch preseed files for a while. Many documentation locations say that I only need a subset of answers to provide a fully unattended install. I must be doing something incorrect, but have not found that to be true.
Instead, I have had to take a preseed file from a manual installation and make some changes to it.
I have used this process to obtain the (pre)seed file:
apt-get install debconf-utils debconf-get-selections --installer > seed.txt debconf-get-selections >> seed.txt
As provided through this mechanism, the commands are a horrible jumble.
I then put some of my own stuff in to the file to make to customize it. When I first started working with the files, I had to manually look for sections, and then move them to the top of the file to keep them organized, and then make my modifications. When creating a new preseed file, I would have to repeat the process.
To make my life easier, I have streamlines things a bit. I have my custom settings I put at the top of a preseed file. I don't do any other edits to the preseed file. I wrote a python script (located at github), seed.sort.py, to then take the file, organize into a human readable fashion, and eliminates duplicate entries. Entries at the beginning of the file take precedence over entries later in the file. Also, d-i type entries take precedence over similar non-d-i entries.
The processed preseed file has been successfully used to automate the install of Debian Stretch, complete through a reboot cycle to the login prompt. I use dnsmasq to completely automate the boot/install via a pxe-boot mechanism: which would be the subject of another blog entry.
Note to self: some good ideas for preseed: 50Ply Blog: Automating Debian Installs With Preseed and Puppet