+# Download packages from mirrors.mit.edu
+d-i mirror/country string manual
+d-i mirror/http/countries string manual
+d-i mirror/http/hostname string mirrors.mit.edu
+d-i mirror/http/directory string /ubuntu/
+d-i mirror/http/proxy string
+
+# Use time.mit.edu for NTP syncing
+d-i clock-setup/ntp-server string time.mit.edu
+
+# Guided partitioning with LVM
+d-i partman-auto/disk string /dev/xvda
+d-i partman-auto/method string lvm
+
+# The atomic recipe in Bionic ignores the boot partition when using the
+# lvm method; our pygrub can't read /boot on LVM, so we get to provide
+# an entire recipe. This is the atomic recipe from Debian Buster,
+# modified to avoid name collision and to use Ubuntu's preferred sizes
+# and filesystem for /boot.
+d-i partman-auto/expert_recipe string \
+boot-root :: \
+ \
+1 1 1 free \
+ $iflabel{ gpt } \
+ $reusemethod{ } \
+ method{ biosgrub } . \
+ \
+512 1024 768 ext4 \
+ $defaultignore{ } \
+ method{ format } \
+ format{ } \
+ use_filesystem{ } \
+ filesystem{ ext4 } \
+ mountpoint{ /boot } . \
+ \
+900 10000 -1 $default_filesystem \
+ $lvmok{ } \
+ method{ format } \
+ format{ } \
+ use_filesystem{ } \
+ $default_filesystem{ } \
+ mountpoint{ / } . \
+ \
+100% 512 200% linux-swap \
+ $lvmok{ } \
+ $reusemethod{ } \
+ method{ swap } \
+ format{ } . \
+
+d-i partman-lvm/device_remove_lvm boolean true
+d-i partman-lvm/confirm boolean true
+d-i partman-lvm/confirm_nooverwrite boolean true
+d-i partman/confirm_write_new_label boolean true
+d-i partman/choose_partition select finish
+d-i partman/confirm boolean true
+d-i partman/confirm_nooverwrite boolean true
+
+# Use the linux-virtual kernel
+d-i base-installer/kernel/image string linux-virtual
+
+# Create just a root account
+d-i passwd/root-login boolean true
+d-i passwd/root-password string fake_value
+d-i passwd/root-password-again string fake_value
+d-i passwd/make-user boolean false
+
+# Remove the root password so users can log in on the console
+# Our pygrub can't read grub2 configs, and grub-legacy isn't in
+# Ubuntu, but they've provided a tool to help
+d-i preseed/late_command string in-target passwd -d root; \
+ apt-install pv-grub-menu; \
+ echo "" >>/target/etc/default/grub ; \
+ echo "# Prevent update-menu-lst from prepending /boot to menu.lst kernels and initrds" >>/target/etc/default/grub ; \
+ echo "kernel_dir=" >>/target/etc/default/grub ; \
+ in-target sed -i -e 's/# groot=.*/# groot=(hd0,0)/' /boot/grub/menu.lst; \
+ in-target /usr/sbin/update-menu-lst
+
+# Avoid that last message about the install being complete.
+d-i finish-install/reboot_in_progress note