Translation(s): English - Fran├žais

Preseeding d-i

Preseeding provides a way to set answers to questions asked during the installation process, without having to manually enter the answers while the installation is running. This makes it possible to fully automate most types of installation and even offers some features not available during normal installations.

Most of the questions asked by DebianInstaller can be preseeded by setting the answers in the debconf database. The Installation Guide includes an extensive appendix dedicated to preseeding. For concrete preseed files look below. Feel free to add any information that is not covered in the manual to the notes below.

Preseeding methods

As mentioned in the official installation guide, there are several ways to feed the preseed file to the installer.

Adding the preseed file to the installer's initrd.gz

Installation can be fully automated by adding a preseed file to the installer ISO's initrd.gz. This method is described in detail in this wiki article. The downside of this method is that net installer has to be generated whenever a preseed file is modified.

Autoloading the preseeding file from a webserver via DHCP

If you have control over the DHCP server on your network, this method allows fully automated installations; as demonstrated and documented at Hands-off.

Loading the preseeding file from a webserver

Most install methods you can interrupt early on and add a URL to a preseed file, for an almost fully automated installations. Here exemplified with the graphical installer:

The "auto" command launches the installation in the automated mode, where the configuration of hostname, locale and keymap are postponed so that they can be answered from the preseed file loaded from the network. You could use "install url=..." but you'd have to answer these questions manually, regardless of what you have in the preseed config.

Default preseed files

When creating a preseed file, you should start from a known good, default preseed file:

If you use a preseed file for an older, newer or otherwise different OS, you will most likely be prompted for answers at some point, even if you thought you automated everything.

Preseeding and the installer's debconf templates

As part of its construction the Debian Installer uses udeb files. These files are similar to normal .debs and have a control section which may contain a file called templates which, amongst other things, contains questions which can be asked during the installation. The answers to these questions can, in many cases, be preseeded. Not all udebs have a templates file.

If you have a .udeb its templates file can be extracted using apt-extracttemplates, which is in the apt-utils package. The command

apt-extracttemplates -t $PWD file.udeb

produces two files in the same directory as file.udeb. With ls -l you should see something like


The terminating string is a random one and the second file is the one of interest. This contains the information necessary to preseed answers to questions asked by the installer.

Processing templates files

Assuming you have all the available udeb files for your chosen suite (stable, testing or unstable) the templates files from them will be extracted by


for i in $UDEBS
   apt-extracttemplates -t $PWD $i
   rm *.config* 2>/dev/null

This is a script to obtain all English language information from a selection of templates and put it in a single file:


for f in $FILES
# Have titled sections for data from each template file.
TITLE=$(echo $f |cut -d"." -f1)
echo -e "\n\n\n********** $TITLE **********" >> preseed.all

# Extract data from templates and do a bit of tidying up.
sed '/^Indices-.*\.UTF/d' $f        \
| awk '/^Template:/,/-.*\.UTF-8:/'  \
| awk '!/-.*\.UTF-8:/'              \
| sed '/^Template:/{x;p;x;}'        \                            
>> preseed.all

Most of the non-question data can be eliminated with


for f in $FILES
# Have titled sections for data from each template file.
TITLE=$(echo $f |cut -d"." -f1)
echo -e "\n\n\n********** $TITLE **********" >> preseed.all

# Extract data from templates and remove text, error, title 
# and note data types.
sed '/^Indices-.*\.UTF/d' $f                            \
| awk '/^Template:/,/-.*\.UTF-8:/'                      \
| awk '!/-.*\.UTF-8:/'                                  \
| sed '/^Template:/{x;p;x;}'                            \
| sed ':a $!N;s/\nType: text/ Type: text/;ta P;D'       \
| sed '/Type: text/,/^$/d'                              \
| sed ':a $!N;s/\nType: error/ Type: error/;ta P;D'     \
| sed '/Type: error/,/^$/d'                             \
| sed ':a $!N;s/\nType: title/ Type: title/;ta P;D'     \
| sed '/Type: title/,/^$/d'                             \
| sed ':a $!N;s/\nType: note/ Type: note/;ta P;D'       \
| sed '/Type: note/,/^$/d'                              \
>> preseed.all

Obtaining udeb files

For a small handful of files it is probably convenient to download them from Debian website's Packages page (View package lists). However, it is worthwhile considering using apt-get and an archive in /etc/apt/sources.list. A suitable entry is:

deb stable main/debian-installer


apt-get update
apt-get install <udeb_package_name>

With the previous entry as the only one in sources.list a list of available udebs can be written to a file using

apt-cache dumpavail | grep ^Package: | cut -d" " -f2 > udebpkgs

and the contents of udebpkgs downloaded with

for pkg in $(cat udebpkgs) ; do apt-get download $pkg ; done


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.