I have written a relatively successful preseed file, with one exception.On certain machines, it will take two tries to detect disks, and on certain machines, it will take two tries to connect to DHCP.The errors are, respectively:No Root File System is definedandNetwork Auto configuration FailedThe reason I am grouping these two problems together, is to ask whether there is a way to simply retry these actions in the preseed file, as that, presumably, will work.Here is much of my preseed (I removed most of the parts that were commented out, and anything after disk detection):#### Contents of the preconfiguration file (for jessie)### Localization# Preseeding only locale sets language, country and locale.d-i debian-installer/locale string en_US# Keyboard selection.d-i keyboard-configuration/xkb-keymap select us### Network configuration# netcfg will choose an interface that has link if possible. This makes it# skip displaying a list if there is more than one interface.d-i netcfg/choose_interface select auto# If you want the preconfiguration file to work on systems both with and# without a dhcp server, uncomment these lines and the static network# configuration below.#d-i netcfg/dhcp_failed note#d-i netcfg/dhcp_options select Configure network manually# Any hostname and domain names assigned from dhcp take precedence over# values set here. However, setting the values still prevents the questions# from being shown, even if values come from dhcp.d-i netcfg/get_hostname string unassigned-hostnamed-i netcfg/get_domain string mydomain# Disable that annoying WEP key dialog.d-i netcfg/wireless_wep string# If non-free firmware is needed for the network or other hardware, you can# configure the installer to always try to load it, without prompting. Or# change to false to disable asking.d-i hw-detect/load_firmware boolean true### Network console# Use the following settings if you wish to make use of the network-console# component for remote installation over SSH. This only makes sense if you# intend to perform the remainder of the installation manually.#d-i anna/choose_modules string network-console#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key#d-i network-console/password password r00tme#d-i network-console/password-again password r00tme### Mirror settings# If you select ftp, the mirror/country string does not need to be set.#d-i mirror/protocol string ftpd-i mirror/country string manuald-i mirror/http/hostname string http.us.debian.orgd-i mirror/http/directory string /debiand-i mirror/http/proxy string http://myproxy# Suite to install.#d-i mirror/suite string testing# Suite to use for loading installer components (optional).#d-i mirror/udeb/suite string testing### Account setup# Skip creation of a root account (normal user account will be able to# use sudo).#d-i passwd/root-login boolean false# Alternatively, to skip creation of a normal user account.d-i passwd/make-user boolean false# Root password, either in clear text#d-i passwd/root-password password r00tme#d-i passwd/root-password-again password r00tme# or encrypted using an MD5 hash.#d-i passwd/root-password-crypted password [MD5 hash]d-i passwd/root-password-crypted password $$$# To create a normal user account.d-i passwd/user-fullname string named-i passwd/username string username# Normal user's password, either in clear text#d-i passwd/user-password password insecure#d-i passwd/user-password-again password insecure# or encrypted using an MD5 hash.d-i passwd/user-password-crypted password $$$$# Create the first user with the specified UID instead of the default.d-i passwd/user-uid string 1001# The user account will be added to some standard initial groups. To# override that, use this.d-i passwd/user-default-groups string audio cdrom video### Clock and time zone setup# Controls whether or not the hardware clock is set to UTC.d-i clock-setup/utc boolean true# You may set this to any valid setting for $TZ; see the contents of# /usr/share/zoneinfo/ for valid values.d-i time/zone string US/Eastern# Controls whether to use NTP to set the clock during the installd-i clock-setup/ntp boolean true# NTP server to use. The default is almost always fine here.#d-i clock-setup/ntp-server string ntp.example.com### Partitioning## Partitioning example# If the system has free space you can choose to only partition that space.# This is only honoured if partman-auto/method (below) is not set.#d-i partman-auto/init_automatically_partition select biggest_free# Alternatively, you may specify a disk to partition. If the system has only# one disk the installer will default to using that, but otherwise the device# name must be given in traditional, non-devfs format (so e.g. /dev/sda# and not e.g. /dev/discs/disc0/disc).# For example, to use the first SCSI/SATA hard disk:#d-i partman-auto/disk string /dev/sda# In addition, you'll need to specify the method to use.# The presently available methods are:# - regular: use the usual partition types for your architecture# - lvm:     use LVM to partition the disk# - crypto:  use LVM within an encrypted partitiond-i partman-auto/method string lvm# If one of the disks that are going to be automatically partitioned# contains an old LVM configuration, the user will normally receive a# warning. This can be preseeded away...d-i partman-lvm/device_remove_lvm boolean true# The same applies to pre-existing software RAID array:d-i partman-md/device_remove_md boolean true# And the same goes for the confirmation to write the lvm partitions.d-i partman-lvm/confirm boolean trued-i partman-lvm/confirm_nooverwrite boolean true# You can choose one of the three predefined partitioning recipes:# - atomic: all files in one partition# - home:   separate /home partition# - multi:  separate /home, /var, and /tmp partitionsd-i partman-auto/choose_recipe select atomic# This makes partman automatically partition without confirmation, provided# that you told it what to do using one of the methods above.d-i partman-partitioning/confirm_write_new_label boolean trued-i partman/choose_partition select finishd-i partman/confirm boolean trued-i partman/confirm_nooverwrite boolean true# This makes partman automatically partition without confirmation.d-i partman-md/confirm boolean trued-i partman-partitioning/confirm_write_new_label boolean trued-i partman/choose_partition select finishd-i partman/confirm boolean trued-i partman/confirm_nooverwrite boolean true
Retrying during preseed
debian;debian installer;preseed