Warning: This document is unmaintained and out of date.
In all there are three stages:
- 1. Boot, hardware detection for network cards, get and unpack udebs.
- 2. Discover remaining hardware, partitioning, base install, kernel image, boot loader, last minute fixes, reboot.
- 3. base-config
The boot is completely different on certain architectures. Somehow the kernel and an initial ramdisk needs to be loaded.
cdrom-detect calls hw-detect from the ddetect package. That one loads modules, which are on the initrd (mostly for nics) and stores the method to access the udebs and the architecture in debconf.
1.3 anna loads udebs
Each debian-installer set has different udebs, which are needed to perform the following steps.
An udeb is a Debian package, which has no policy dependencies so you can remove documentation, licenses and unused options. They also should be as small as possible. See http://d-i.alioth.debian.org/svn/debian-installer/installer/doc/devel/modules.txt for details.
2. Stage 2
2.1 discover detects rest of the hardware
As now all kernel modules should be available so discover can detect the hardware.
With autopartkit, partconf, partitioner, partman or similar tools the user can partition the harddisk.
This also differs on certain architectures. /target should after this step be mounted with one or more hard disk partitions.
Now a base system installation will take place, which is an easy debootstrap, which might be replaced with cdebootstrap as this also takes care of dependencies. (see tasks)
The user can select certain kernel images. They are found by apt-get search kernel-image. They will be installed by chrooting into the target system and installing it.
2.5 Boot Loader
This is also a very architecture dependent step. Lilo/Grub for x86 is installed in the chroot, configured. Then the boot loader is installed.
2.6 Last Minute Fixes
Prebaseconfig on system is run, the cdrom is unmounted and finally the installer reboots.
3. Stage 3
base-config gets executed.
Tasks that came up in discussion were:
- use of an SMP kernel to be able to detect it
- Boot Loader automatic configurations should include other bootable partitions (done for some boot loaders)
- minor: possibility to pivot_root into the system and not to reboot in last step of stage 2