There is no good or up-to-date documentation regarding how to modify and debug the Ubuntu 16.04 Desktop preseed file. The wikis, such as wiki.ubuntu.com/Ubiquity and all the wikis that link to/from it, do not give much help.
For example, some questions I have are:
1. What are the mappings of d-i keys used in the Ubuntu Server to ubiquity keys in the Ubuntu Desktop?
2. If I have both a ubiquity/failure_command and ubiquity/success_command, and neither run, how do I debug this?
3. For OEM installs (oem-config/enable=true), how do I directly call oem-config-prepare so that I do not have to manually double click on the "Prepare for shipping to end user" icon? If your answer is "use the ubiquity/success_command", see question #2.
4. Is it possible to use d-i directly instead of ubiquity for Ubuntu Desktop installs?
Update regarding #2 and #3:
Apparently there can't be any extra whitespace between "string" and the first command. For example, this doesn't work:
ubiquity ubiquity/ success_ command string \
mkdir /target/foo
While this does work:
ubiquity ubiquity/ success_ command \
string mkdir /target/foo
New issue: filesystem. squashfs, chroot into it and add packages that way. I would like to be able to run "apt-get install <.deb file in pool>" in the ubiquity/ success_ command.
5. Please provide documentation for installing additional packages from the /cdrom/pool during install time. I don't want to have to unsquash the casper/
6. During oem-config, I see a "Error opening file..." error pop up after oem-config has finished asking questions, and starts installing. However, I can't tell what it failed to open from the oem-config.log (attached).