:B~ Customizing Debian Installer

1~customizing-installer Customizing Debian Installer

Live system images can be integrated with Debian Installer. There are a number of different types of installation, varying in what is included and how the installer operates.

Please note the careful use of capital letters when referring to the "Debian Installer" in this section - when used like this we refer explicitly to the official installer for the Debian system, not anything else. It is often seen abbreviated to "d-i".

2~ Types of Debian Installer

The three main types of installer are:

*{"Normal" Debian Installer}*: This is a normal live system image with a separate kernel and initrd which (when selected from the appropriate bootloader) launches into a standard Debian Installer instance, just as if you had downloaded a CD image of Debian and booted it. Images containing a live system and such an otherwise independent installer are often referred to as "combined images".

On such images, Debian is installed by fetching and installing .deb packages using /{debootstrap}/, from local media or some network-based network, resulting in a default Debian system being installed to the hard disk.

This whole process can be preseeded and customized in a number of ways; see the relevant pages in the Debian Installer manual for more information. Once you have a working preseeding file, live-build can automatically put it in the image and enable it for you.

*{"Live" Debian Installer}*: This is a live system image with a separate kernel and initrd which (when selected from the appropriate bootloader) launches into an instance of the Debian Installer.

Installation will proceed in an identical fashion to the "normal" installation described above, but at the actual package installation stage, instead of using /{debootstrap}/ to fetch and install packages, the live filesystem image is copied to the target. This is achieved with a special udeb called live-installer.

After this stage, the Debian Installer continues as normal, installing and configuring items such as bootloaders and local users, etc.

*{Note:}* to support both normal and live installer entries in the bootloader of the same live medium, you must disable live-installer by preseeding #{live-installer/enable=false}#.

*{"Desktop" Debian Installer}*: Regardless of the type of Debian Installer included, #{d-i}# can be launched from the Desktop by clicking on an icon. This is user friendlier in some situations. In order to make use of this, the debian-installer-launcher package needs to be included.

Note that by default, live-build does not include Debian Installer images in the images, it needs to be specifically enabled with #{lb config}#. Also, please note that for the "Desktop" installer to work, the kernel of the live system must match the kernel #{d-i}# uses for the specified architecture. For example:

code{

 $ lb config --debian-installer live
 $ echo debian-installer-launcher >> config/package-lists/my.list.chroot

}code

2~ Customizing Debian Installer by preseeding

As described in the Debian Installer Manual, Appendix B at https://www.debian.org/releases/stable/amd64/apb.en.html, "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." This kind of customization is best accomplished with live-build by placing the configuration in a #{preseed.cfg}# file included in #{config/includes.installer/}#. For example, to preseed setting the locale to #{en_US}#:

code{

 $ echo "d-i debian-installer/locale string en_US" \
         >> config/includes.installer/preseed.cfg

}code

2~ Customizing Debian Installer content

For experimental or debugging purposes, you might want to include locally built #{d-i}# component udeb packages. Place these in #{config/packages.binary/}# to include them in the image. Additional or replacement files and directories may be included in the installer initrd as well, in a similar fashion to {Live/chroot local includes}#live-chroot-local-includes, by placing the material in #{config/includes.installer/}#.
