In this section we will describe each installer component in detail. The components have been grouped into stages that should be recognizable for users. They are presented in the order they appear during the install. Note that not all modules will be used for every installation; which modules are actually used depends on the installation method you use and on your hardware.
Let's assume the Debian Installer has booted and you are facing its
first screen. At this time, the capabilities of
debian-installer are still quite
limited. It doesn't know much about your hardware, preferred language,
or even the task it should perform. Don't worry. Because
debian-installer is quite
clever, it can automatically probe your hardware, locate the rest
of its components and upgrade itself to a capable installation system.
However, you still need to help
debian-installer with some information it can't
determine automatically (like selecting your preferred language, keyboard
layout or desired network mirror).
You will notice that
debian-installer performs hardware detection
several times during this stage. The first time is targeted specifically
at the hardware needed to load installer components (e.g. your CD-ROM or
network card). As not all drivers may be available during this first run,
hardware detection needs to be repeated later in the process.
One of the first things
debian-installer does, is to check available memory.
If the available memory is limited, this component will make some
changes in the installation process which hopefully will allow
you to install Debian GNU/Linux on your system.
During a low memory install, not all components will be available. One of the limitations is that you won't be able to choose a language for the installation.
As the first step of the installation, select the language in which you want the installation process to proceed. The language names are listed in both English (left side) and in the language itself (right side); the names on the right side are also shown in the proper script for the language. The list is sorted on the English names.
The language you choose will be used for the rest of the installation process, provided a translation of the different dialogs is available. If no valid translation is available for the selected language, the installer will default to English. The selected language will also be used to help select a suitable keyboard layout.
If you selected a language in Section 220.127.116.11, “Language selection” which has more than one country associated with it (true for Chinese, English, French, and many other languages), you can specify the country here. If you choose at the bottom of the list, you will be presented with a list of all countries, grouped by continent.
This selection will be used later in the installation process to pick the default timezone and a Debian mirror appropriate for your geographic location. If the defaults proposed by the installer are not suitable, you can make a different choice. The selected country, together with the selected language, may also affect locale settings for your new Debian system.
Keyboards are often tailored to the characters used in a language. Select a layout that conforms to the keyboard you are using, or select something close if the keyboard layout you want isn't represented. Once the system installation is complete, you'll be able to select a keyboard layout from a wider range of choices (run kbdconfig as root after you have completed the installation).
Move the highlight to the keyboard selection you desire and press Enter. Use the arrow keys to move the highlight — they are in the same place in all national language keyboard layouts, so they are independent of the keyboard configuration. An 'extended' keyboard is one with F1 through F10 keys along the top row.
When installing via the hd-media method, there will be a moment where you need to find and mount the Debian Installer iso image in order to get the rest of the installation files. The component iso-scan does exactly this.
At first, iso-scan automatically mounts all block
devices (e.g. partitions) which have some known filesystem on them and
sequentially searches for filenames ending with
.ISO for that
matter). Beware that the first attempt scans only files in the root
directory and in the first level of subdirectories (i.e. it finds
After an iso image has been found, iso-scan checks
its content to determine if the image is a valid Debian iso image or
not. In the former case we are done, in the latter
iso-scan seeks for another image.
In case the previous attempt to find an installer iso image fails, iso-scan will ask you whether you would like to perform a more thorough search. This pass doesn't just look into the topmost directories, but really traverses whole filesystem.
If iso-scan does not discover your installer iso
image, reboot back to your original operating system and check if the
image is named correctly (ending in
.iso), if it is
placed on a filesystem recognizable by
debian-installer, and if it is not
corrupted (verify the checksum). Experienced Unix users could do this
without rebooting on the second console.
As you enter this step, if the system detects that you have more than one network device, you'll be asked to choose which device will be your primary network interface, i.e. the one which you want to use for installation. The other interfaces won't be configured at this time. You may configure additional interfaces after installation is complete; see the interfaces(5) man page.
debian-installer tries to configure your computer's network
automatically via DHCP. If the DHCP probe succeeds, you are done. If the
probe fails, it may be caused by many factors ranging from unplugged
network cable, to a misconfigured DHCP setup. Or maybe you don't have
a DHCP server in your local network at all. For further explanation
check the error messages on the third console. In any case, you will
be asked if you want to retry, or if you want to perform manual
setup. DHCP servers are sometimes really slow in their responses, so
if you are sure everything is in place, try again.
The manual network setup in turn asks you a number of questions about
your network, notably
Name server addresses, and a
Moreover, if you have a wireless network interface, you will be asked
to provide your
Wireless ESSID and
WEP key. Fill in the answers from
Section 3.3, “Information You Will Need”.
Some technical details you might, or might not, find handy: the
program assumes the network IP address is the bitwise-AND of your
system's IP address and your netmask. It will guess the broadcast
address is the bitwise OR of your system's IP address with the bitwise
negation of the netmask. It will also guess your gateway. If you
can't find any of these answers, use the system's guesses — you
can change them once the system has been installed, if necessary, by
you can install
etherconf, which will step you
through your network setup.
At this time, after hardware detection has been executed a final time,
debian-installer should be at its full strength, customized for the user's needs
and ready to do some real work.
As the title of this section indicates, the main task of the next few
components lies in partitioning your disks, creating filesystems,
assigning mountpoints and optionally configuring closely related issues
like LVM or RAID devices.
Now it is time to partition your disks. If you are uncomfortable with partitioning, or just want to know more details, see Appendix B, Partitioning for Debian.
First you will be given the opportunity to automatically partition either an entire drive, or free space on a drive. This is also called “guided” partitioning. If you do not want to autopartition, choose from the menu.
If you choose guided partitioning, you will be able to choose from the schemes listed in the table below. All schemes have their pros and cons, some of which are discussed in Appendix B, Partitioning for Debian. If you are unsure, choose the first one. Bear in mind, that guided partitioning needs certain minimal amount of free space to operate with. If you don't give it at least about 1GB of space (depends on chosen scheme), guided partitioning will fail.
|Partitioning scheme||Minimum space||Created partitions|
|All files in one partition||600MB||
If you chose an automatic partitioning for your IA64 system, there will be an additional partition, formatted as a FAT16 bootable filesystem, for the EFI boot loader. There is also an additional menu item in the formatting menu to manually set up a partition as an EFI boot partition.
After selecting a scheme, the next screen will show your new partition table, including information on whether and how partitions will be formatted and where they will be mounted.
The list of partitions might look like this:
IDE1 master (hda) - 6.4 GB WDC AC36400L #1 primary 16.4 MB ext2 /boot #2 primary 551.0 MB swap swap #3 primary 5.8 GB ntfs pri/log 8.2 MB FREE SPACE IDE1 slave (hdb) - 80.0 GB ST380021A #1 primary 15.9 MB ext3 #2 primary 996.0 MB fat16 #3 primary 3.9 GB xfs /home #5 logical 6.0 GB ext3 / #6 logical 1.0 GB ext3 /var #7 logical 498.8 MB ext3 #8 logical 551.5 MB swap swap #9 logical 65.8 GB ext2
This example shows two IDE harddrives divided into several partitions; the first disk has some free space. Each partition line consists of the partition number, its type, size, optional flags, file system, and mountpoint (if any).
This concludes the guided partitioning. If you are satisfied with the generated partition table, you can choosefrom the menu to implement the new partition table (as described at the end of this section). If you are not happy, you can choose to , to run guided partitioning again or modify the proposed changes as described below for manual partitioning.
A similar screen to the one shown just above will be displayed if you choose manual partitioning except that your existing partition table will be shown and without the mount points. How to manually setup your partition table and the usage of partitions by your new Debian system will be covered in the remainder of this section.
If you select a pristine disk which doesn't have neither partitions nor free space on it, you will be offered to create a new partition table (this is needed so you can create new partitions). After this a new line entitled “FREE SPACE” should appear under the selected disk.
If you select some free space, you will be offered to create new partition. You will have to answer a quick series of questions about its size, type (primary or logical), and location (beginning or end of the free space). After this, you will be presented with detailed overview of your new partition. There are options like mountpoint, mount options, bootable flag, or way of usage. If you don't like the preselected defaults, feel free to change them to your liking. E.g. by selecting the option partman's main screen., you can choose different filesystem for this partition including the possibility to use the partition for swap, software RAID, LVM, or not use it at all. Other nice feature is the possibility to copy data from existing partition onto this one. When you are satisfied with your new partition, select and you will be thrown back to the
If you decide you want to change something about your partition, simply select the partition, which will bring you to the partition configuration menu. Because this is the same screen like when creating a new partition, you can change the same set of options. One thing which might not be very obvious at a first glance is that you can resize the partition by selecting the item displaying the size of the partition. Filesystems known to work are at least fat16, fat32, ext2, ext3 and swap. This menu also allows you to delete a partition.
Be sure to create at least two partitions: one for the
root filesystem (which must be mounted as
/) and one for swap. If you
forget to mount the root filesystem, partman won't
let you continue until you correct this issue.
If you forget to select and format an EFI boot partition partman will detect this and will not let you continue until you allocate one.
Capabilities of partman can be extended with installer
modules, but are dependent on your system's architecture. So if you can't
see all promised goodies, check if you have loaded all required modules
After you are satisfied with partitioning, selectfrom the partitioning menu. You will be presented with a summary of changes made to the disks and asked to confirm that the filesystems should be created as requested.
If you are working with computers at the level of system administrator or “advanced” user, you have surely seen the situation where some disk partition (usually the most important one) was short on space, while some other partition was grossly underused and you had to manage this situation with moving stuff around, symlinking, etc.
To avoid the described situation you can use Logical Volume Manager (LVM). Simply said, with LVM you can combine your partitions (physical volumes in LVM lingo) to form a virtual disc (so called volume group), which can then be divided into virtual partitions (logical volumes). The point is that logical volumes (and of course underlying volume groups) can span across several physical discs.
Now when you realize you need more space for your old 160GB
/home partition, you can simply add a new 300GB
disc to the computer, join it with your existing volume group and then
resize the logical volume which holds your
filesystem and voila — your users have some room again on their
renewed 460GB partition. This example is of course a bit
oversimplified. If you haven't read it yet, you should consult the
LVM setup in
debian-installer is quite simple. At first, you have to mark your
partitions to be used as physical volumes for LVM. (This is done in
partman in the menu where you should select -> .) Then start the
lvmcfg module (either directly from
partman or from the
debian-installer's main menu) and combine
physical volumes to volume group(s) under the menu. After that, you should create
logical volumes on the top of volume groups from the menu
After returning from lvmcfg back to partman, you will see any created logical volumes in the same way as ordinary partitions (and you should treat them like that).
If you have more than one harddrive in your computer, you can use mdcfg to setup your drives for increased performance and/or better reliability of your data. The result is called Multidisk Device (or after its most famous variant software RAID).
MD is basically a bunch of partitions located on different disks and combined together to form a logical device. This device can then be used like an ordinary partition (i.e. in partman you can format it, assign a mountpoint, etc.).
The benefit you gain depends on a type of a MD device you are creating. Currently supported are:
Is mainly aimed at performance. RAID0 splits all incoming data into stripes and distributes them equally over each disk in the array. This can increase the speed of read/write operations, but when one of the disks fails, you will loose everything (part of the information is still on the healthy disk(s), the other part was on the failed disk).
The typical use for RAID0 is a partition for video editing.
Is suitable for setups where reliability is the first concern. It consists of several (usually two) equally sized partitions where every partition contains exactly the same data. This essentially means three things. First, if one of your disks fails, you still have the data mirrored on the remaining disks. Second, you can use only a fraction of the available capacity (more precisely, it is the size of the smallest partition in the RAID). Third, file reads are load balanced among the disks, which can improve performance on a server, such as a file server, that tends to be loaded with more disk reads than writes.
Optionally you can have a spare disk in the array which will take the place of the failed disk in the case of failure.
Is a good compromise between speed, reliability and data redundancy. RAID5 splits all incomming data into stripes and distributes them equally on all but one disks (similar to RAID0). Unlike RAID0, RAID5 also computes parity information, which gets written on the remaining disk. The parity disk is not static (that would be called RAID4), but is changing periodically, so the parity information is distributed equally on all disks. When one of the disks fails, the missing part of information can be computed from remaining data and its parity. RAID5 must consist of at least three active partitions. Optionally you can have a spare disk in the array which will take the place of the failed disk in the case of failure.
As you can see, RAID5 has similar degree of reliability like RAID1 while achieving less redundancy. On the other hand it might be a bit slower on write operation than RAID0 due to computation of parity information.
To sum it up:
|Type||Minimum Devices||Spare Device||Survives disk failure?||Available Space|
|RAID0||2||no||no||Size of the smallest partition multiplied by number of devices in RAID|
|RAID1||2||optional||yes||Size of the smallest partition in RAID|
|RAID5||3||optional||yes||Size of the smallest partition multiplied by (number of devices in RAID minus one)|
If you want to know the whole truth about Software RAID, have a look at Software RAID HOWTO.
To create a MD device, you need to have the desired partitions it should consist of marked for use in a RAID. (This is done in partman in the menu where you should select -> .)
Support for MD is a relatively new addition to the installer.
You may experience problems for some RAID levels and in combination
with some bootloaders if you try to use MD for the root
/) filesystem. For experienced users, it may be
possible to work around some of these problems by executing some
configuration or installation steps manually from a shell.
Next, you should choose partman menu. On the first screen of mdcfg simply select . You will be presented with a list of supported types of MD devices, from which you should choose one (e.g. RAID1). What follows depends on the type of MD you selected.from the main
RAID0 is simple — you will be issued with the list of available RAID partitions and your only task is to select the partitions which will form the MD.
RAID1 is a bit more tricky. First, you will be asked to enter the
number of active devices and the number of spare devices which will
form the MD. Next, you need to select from the list of available RAID
partitions those that will be active and then those that will be
spare. The count of selected partitions must be equal to the number
provided few seconds ago. Don't worry. If you make a mistake and
select different number of partitions, the
debian-installer won't let you
continue until you correct the issue.
RAID5 has similar setup procedure as RAID1 with the exception that you need to use at least three active partitions.
It is perfectly possible to have several types of MD at once. For
example if you have three 200 GB hard drives dedicated to MD, each
containing two 100 GB partitions, you can combine first partitions on
all three disk into the RAID0 (fast 300 GB video editing partition)
and use the other three partitions (2 active and 1 spare) for RAID1
(quite reliable 100 GB partition for
After you setup MD devices to your liking, you can mdcfg to return back to the partman to create filesystems on your new MD devices and assign them the usual attributes like mountpoints.
Although this stage is the least problematic, it consumes most time of the install because it downloads, verifies and unpacks the whole base system. If you have a slow computer or network connection, this could take some time.
During the Base installation, package unpacking and setup messages are
tty3. You can access this
terminal by pressing
get back to the main installer process with
The unpack/setup messages generated by the base installation are saved in
/var/log/messages when the installation is
performed over a serial console.
As part of the installation, a Linux kernel will be installed. At the default priority, the installer will choose one for you that best matches your hardware. In lower priority modes, you will be able to choose from a list of available kernels.
If you are installing a diskless workstation, obviously, booting off the local disk isn't a meaningful option, and this step will be skipped.
Note that multiple operating systems booting on a single machine is still something of a black art. This document does not even attempt to document the various boot managers, which vary by architecture and even by subarchitecture. You should see your boot manager's documentation for more information.
Before a boot loader is installed, the installer will attempt to probe for other operating systems which are installed on the machine. If it finds a supported operating system, you will be informed of this during the boot loader installation step, and the computer will be configured to boot this other operating system in addition to Debian.
Note that multiple operating systems booting on a single machine is still something of a black art. The automatic support for detecting and setting up boot loaders to boot other operating systems varies by architecture and even by subarchitecture. If it does not work you should consult your boot manager's documentation for more information.
The installer may fail to detect other operating systems if the partitions on which they reside are mounted when the detection takes place. This may occur if you select a mountpoint (e.g. /win) for a partition containing another operating system in partman, or if you have mounted partitions manually from a console.
The ia64 boot loader is called “elilo”.
It is modeled on the “lilo” boot loader for the
x86 architecture and uses a similar configuration file.
However, instead of writing an MBR or partition boot record to
the disk, it copies the necessary files to a separate FAT formatted
disk partition and modifies the
menu in the firmware to point to the files in the EFI partition.
The elilo boot loader is really in two parts.
/usr/sbin/elilo command manages the partition and
copies file into it.
elilo.efi program is copied into the EFI
partition and then run by the “EFI Boot Manager” to actually
do the work of loading and starting the Linux kernel.
The “elilo” configuration and installation is done as the
last step of installing the packages of the base installation.
debian-installer will present you with a list of potential disk partitions that it
has found suitable for an EFI partition.
Select the partition you set up earlier in the installation, typically
a partition on the same disk that contains your
The criteria for selecting a partition is that it is FAT format
filesystem with its boot flag set.
debian-installer may show multiple choices depending on what it finds from scanning
all of the disks of the system including EFI partitions of other system
disks and EFI diagnostic partitions.
Remember, the elilo may format the partition during
the installation, erasing any previous contents!
The EFI partition is a FAT filesystem format partition on one of the
hard disks of the system, usually the same disk that contains the
It is normally not mounted on a running system as it is only needed
by the “EFI Boot Manager” to load the system and the
installer part of the elilo writes to the filesystem
The /usr/sbin/elilo utility writes the following files
efi/debian directory of the EFI
partition during the installation.
Note that the “EFI Boot Manager” would find these files
using the path
There may be other files in this filesystem as well over time as
the system is updated or re-configured.
This is the configuration file read by the boot loader when it starts.
It is a copy of the
the filenames re-written to refer to files in the EFI partition.
This is the boot loader program that the “EFI Boot Manager” runs to boot the system. It is the program behind the menu item of the “EFI Boot Manager” command menu.
This is the initial root filesystem used to boot the kernel.
It is a copy of the file referenced in the
In a standard Debian installation it would be the file in
/boot pointed to by the symbolic link
This is a small text file warning you that the contents of the
directory are managed by the elilo and that
any local changes would be lost at the next time
/usr/sbin/elilo is run.
This is the compressed kernel itself.
It is a copy of the file referenced in the
In a standard Debian installation it would be the file in
/boot pointed to by the symbolic link
This option can be used to complete the installation even when no boot loader is to be installed, either because the arch/subarch doesn't provide one, or because none is desired (e.g. you will use existing boot loader).
If you plan to manually configure your bootloader, you should check the
name of the installed kernel in
You should also check that directory for the presence of an
initrd; if one is present, you will probably have
to instruct your bootloader to use it. Other information you will need
are the disk and partition you selected for your
filesystem and, if you chose to install
/boot on a
separate partition, also your
These are the last bits to do before rebooting to your new Debian. It
mostly consists of tidying up after the
This is the last step in the initial Debian installation process. You will be prompted to remove the boot media (CD, floppy, etc) that you used to boot the installer. The installer will do any last minute tasks, and then reboot into your new Debian system.
The components listed in this section are usually not involved in the installation process, but are waiting in the background to help the user in case something goes wrong.
If the installation is successful, the logfiles created during
the installation process will be automatically saved to
/var/log/debian-installer/ on your new
Choosingfrom the main menu allows you to save the log files to a floppy disk. This can be useful if you encounter fatal problems during the installation and wish to study the logs on another system or attach them to an installation report.
There is an Left Alt-F2 (on a Mac keyboard, Option-F2) to switch to the second virtual console. That's the Alt key on the left-hand side of the space bar, and the F2 function key, at the same time. This is a separate window running a Bourne shell clone called ash.item on the menu. If the menu is not available when you need to use the shell, press
At this point you are booted from the RAM disk, and there is a limited set of Unix utilities available for your use. You can see what programs are available with the command ls /bin /sbin /usr/bin /usr/sbin and by typing help. The text editor is nano. The shell has some nice features like autocompletion and history.
Use the menus to perform any task that they are able to do — the shell and commands are only there in case something goes wrong. In particular, you should always use the menus, not the shell, to activate your swap partition, because the menu software can't detect that you've done this from the shell. Press Left Alt-F1 to get back to menus, or type exit if you used a menu item to open the shell.
One of the more interesting components is network-console. It allows you to do a large part of the installation over the network via SSH. The use of the network implies you will have to perform the first steps of the installation from the console, at least to the point of setting up the networking. (Although you can automate that part with Section 4.4, “Automatic Installation”.)
This component is not loaded into the main installation menu by default, so you have to explicitly ask for it. If you are installing from CD, you need to boot with medium priority or otherwise invoke the main installation menu and chooseand from the list of additional components select . Successful load is indicated by a new menu entry called .
After selecting this new entry, you will be asked for a new password to be used for connecting to the installation system and for its confirmation. That's all. Now you should see a screen which instructs you to login remotely as the user installer with the password you just provided. Another important detail to notice on this screen is the fingerprint of this system. You need to transfer the fingerprint securely to the “person who will continue the installation remotely”.
Should you decide to continue with the installation locally, you can always press Enter, which will bring you back to the main menu, where you can select another component.
Now let's switch to the other side of the wire. As a prerequisite, you need to configure your terminal for UTF-8 encoding, because that is what the installation system uses. If you do not, remote installation will be still possible, but you may encounter strange display artefacts like destroyed dialog borders or unreadable non-ascii characters. Establishing a connection with the installation system is as simple as typing:
ssh -l installer
install_host is either the name
or IP address of the computer being installed. Before the actual
login the fingerprint of the remote system will be displayed and
you will have to confirm that it is correct.
If you install several computers in turn and they happen to have the
same IP address or hostname, ssh will refuse to connect
to such host. The reason is that it will have different fingerprint, which
is usually a sign of a spoofing attack. If you are sure this is not the
case, you will need to delete the relevant line from
~/.ssh/known_hosts and try again.
After the login you will be presented with an initial screen where you have two possibilities calledand . The former brings you to the main installer menu, where you can continue with the installation as usual. The latter starts a shell from which you can examine and possibly fix the remote system. You should only start one SSH session for the installation menu, but may start multiple sessions for shells.
After you have started the installation remotely over SSH, you should not go back to the installation session running on the local console. Doing so may corrupt the database that holds the configuration of the new system. This in turn may result in a failed installation or problems with the installed system.
Also, if you are running the SSH session from an X terminal, you should not resize the window as that will result in the connection being terminated.
It is possible to configure the base system within the first stage installer (before rebooting from the hard drive), by running base-config in a chroot environment. This is mainly useful for testing the installer and should normally be avoided.
 To be honest, you can construct MD device even from partitions residing on single physical drive, but that won't bring you anything useful.