Most of the questions asked by DebianInstaller can be preseeded by setting the answers in the debconf database. This can be used to do automatic installs. This page gathers our collective knowledge on the topic, so please add any tips you have.
There are currently two main mechanisms to preseed debconf values. Values can be set on the installer's boot line, for example this is useful for testing the unstable version of the installer in a netboot install:
The preseed udebs can be used to load a file containing values to preseed, either from the network or local media. The installation manual explains how to set this up: http://d-i.alioth.debian.org/manual/en.i386/ch04s07.html#automatic-install
Note that most preseeding support has been added after rc1 of the installer.
Preseeding language and country
Since these questions come before the preseed udebs do their work, language and country can only be preseeded when the installer is booted, perhaps via a modified syslinux.cfg file. Here's an example:
languagechooser/language-name=French countrychooser/country-name-shortlist=France countrychooser/country-name=France
Of course you'd need to put those all on one line with the rest of the kernel parameters. Apparently two values in countrychooser must be seeded (why?).
(In my testing today, I did not need to preseed chountrychooser/country-name if I preseeded countrychooser/country-name-shortlist="United States" -- joeyh)
If you're doing a netboot install or the like, it's nice to be able to preseed a mirror to use. Here's an example in preseed file format, that makes it use a manually entered mirror, and shows how to set the suite and proxy too:
d-i mirror/country string enter information manually d-i mirror/http/hostname string your-mirror-name-here d-i mirror/http/directory string /debian #d-i mirror/suite string unstable #d-i mirror/http/proxy string http://10.11.12.1:3128/
Realistically, only the automatic partitioning choices of partman can be preseeded. To get any more control, you really want to provide a partman-auto recipe (how?). Here's one value that should work as of a few days ago:
d-i partman/confirm boolean true
Post here any links you have to example preseed files. Note that using any of these files directly is not wise, as a malicious person could probably come up with values for a preseed file that makes d-i misbehave. Also, the files are downloaded over http, so are vulnerable to man in the middle spoof attacks. The best way to use any preseed file is to copy it to your own local web server or media, and look it over before using it.
Joey Hess's preseed file for netboot installs on his home network: http://kitenet.net/~joey/tmp/preseed
Fully commented example preseed file with many useful options http://d-i.alioth.debian.org/svn/debian-installer/installer/doc/preseed.example
The manual suggests that you use debconf-get-selections (from package debconf-utils) to get a tempplate preseed file. This is a reasonable starting point, but it will need some edits.
I have had sereral problems with using that template:
- I got a syntax error for the lines that had items of type "title". I had to remove them.
(Should be fixed as of debconf 1.4.33 or 126.96.36.199 -- joeyh)
- You should change the value of base-config/main-menu to "debconf-seed". Leaving it as "finish" is quite pointless.
- You should probably change all the debconf/proirity values to "critical", as well as pass the boot parameter "DEBCONF_PRIORITY=critical" to the installer.