6.3. Using Individual Components

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.

6.3.1. Setting up Debian Installer and Hardware Configuration

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.

6.3.1.1. Check available memory / low memory mode

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.

The first measure taken to reduce memory consumption by the installer is to disable translations, which means that the installation can only be done in English. Of course, you can still localize the installed system after the installation has completed.

If that is not sufficient, the installer will further reduce memory consumption by loading only those components essential to complete a basic installation. This reduces the functionality of the installation system. You will be given the opportunity to load additional components manually, but you should be aware that each component you select will use additional memory and thus may cause the installation to fail.

If the installer runs in low memory mode, it is recommended to create a relatively large swap partition (64–128MB). The swap partition will be used as virtual memory and thus increases the amount of memory available to the system. The installer will activate the swap partition as early as possible in the installation process. Note that heavy use of swap will reduce performance of your system and may lead to high disk activity.

Despite these measures, it is still possible that your system freezes, that unexpected errors occur or that processes are killed by the kernel because the system runs out of memory (which will result in “Out of memory” messages on VT4 and in the syslog).

For example, it has been reported that creating a big ext3 file system fails in low memory mode when there is insufficient swap space. If a larger swap doesn't help, try creating the file system as ext2 (which is an essential component of the installer) instead. It is possible to change an ext2 partition to ext3 after the installation.

6.3.1.2. Selecting Localization Options

In most cases the first questions you will be asked concern the selection of localization options to be used both for the installation and for the installed system. The localization options consist of language, country and locales.

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 country will be used later in the installation process to pick the default timezone and a Debian mirror appropriate for your geographic location. Language and country together will be used to set the default locale for your system and to help select your keyboard.

You will first be asked to select your preferred language. 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. At the top of the list is an extra option that allows you to select the “C” locale instead of a language. Choosing the “C” locale will result in the installation proceding in English; the installed system will have no localization support as the locales package will not be installed.

If you selected a language that is recognized as an official language for more than one country[4], you will next be asked to select a country. If you choose Other at the bottom of the list, you will be presented with a list of all countries, grouped by continent. If the language has only one country associated with it, that country will be selected automatically.

A default locale will be selected based on the selected language and country. If you are installing at medium or low priority, you will have the option of selecting a different default locale and of selecting additional locales to be generated for the installed system.

6.3.1.3. Choosing a Keyboard

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.

6.3.1.4. Looking for the Debian Installer ISO Image

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 (or .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 /whatever.iso, /data/whatever.iso, but not /data/tmp/whatever.iso). 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.

6.3.1.5. Configuring Network

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.

By default, 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 fourth console. In any case, you will be asked if you want to retry, or if you want to perform a 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 IP address, Netmask, Gateway, Name server addresses, and a Hostname. Moreover, if you have a wireless network interface, you will be asked to provide your Wireless ESSID and a WEP key. Fill in the answers from Section 3.3, “Information You Will Need”.

Note

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 editing /etc/network/interfaces.

6.3.2. Partitioning and Mount Point Selection

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.

6.3.2.1. Partitioning Your Disks

Now it is time to partition your disks. If you are uncomfortable with partitioning, or just want to know more details, see Appendix C, Partitioning for Debian.

First you will be given the opportunity to automatically partition either an entire drive, or available free space on a drive. This is also called “guided” partitioning. If you do not want to autopartition, choose Manual from the menu.

If you choose guided partitioning, you may have three options: to create partitions directly on the hard disk (classic method), or to create them using Logical Volume Management (LVM), or to create them using encrypted LVM[5].

Note

The option to use (encrypted) LVM may not be available on all architectures.

When using LVM or encrypted LVM, the installer will create most partitions inside one big partition; the advantage of this method is that partitions inside this big partition can be resized relatively easily later. In the case of encrypted LVM the big partition will not be readable without knowing a special key phrase, thus providing extra security of your (personal) data.

When using encrypted LVM, the installer will also automatically erase the disk by writing random data to it. This further improves security (as it makes it impossible to tell which parts of the disk are in use and also makes sure that any traces of previous installations are erased), but may take some time depending on the size of your disk.

Note

If you choose guided partitioning using LVM or encrypted LVM, some changes in the partition table will need to be written to the selected disk while LVM is being set up. These changes effectively erase all data that is currently on the selected hard disk and you will not be able to undo them later. However, the installer will ask you to confirm these changes before they are written to disk.

If you choose guided partitioning (either classic or using (encrypted) LVM) for a whole disk, you will first be asked to select the disk you want to use. Check that all your disks are listed and, if you have several disks, make sure you select the correct one. The order they are listed in may differ from what you are used to. The size of the disks may help to identify them.

Any data on the disk you select will eventually be lost, but you will always be asked to confirm any changes before they are written to the disk. If you have selected the classic method of partitioning, you will be able to undo any changes right until the end; when using (encrypted) LVM this is not possible.

Next, 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 C, Partitioning for Debian. If you are unsure, choose the first one. Bear in mind that guided partitioning needs a 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 /, swap
Separate /home partition 500MB /, /home, swap
Separate /home, /usr, /var and /tmp partitions 1GB /, /home, /usr, /var, /tmp, swap

If you choose guided partitioning using (encrypted) LVM, the installer will also create a separate /boot partition. The other partitions, including the swap partition, will be created inside the LVM 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  B f 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    f ext3       /
        #6 logical    1.0 GB    f 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). Note: this particular setup cannot be created using guided partitioning but it does show possible variation that can be achieved using manual partitioning.

This concludes the guided partitioning. If you are satisfied with the generated partition table, you can choose Finish partitioning and write changes to disk from 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 Undo changes to partitions and 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 has neither partitions nor free space on it, you will be asked if a new partition table should be created (this is needed so you can create new partitions). After this, a new line entitled “FREE SPACE” should appear in the table under the selected disk.

If you select some free space, you will have the opportunity to create a 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 a detailed overview of your new partition. The main setting is Use as:, which determines if the partition will have a file system on it, or be used for swap, software RAID, LVM, an encrypted file system, or not be used at all. Other settings include mountpoint, mount options, and bootable flag; which settings are shown depends on how the partition is to be used. If you don't like the preselected defaults, feel free to change them to your liking. E.g. by selecting the option Use as:, you can choose a different filesystem for this partition, including options to use the partition for swap, software RAID, LVM, or not use it at all. Another nice feature is the ability to copy data from an existing partition onto this one. When you are satisfied with your new partition, select Done setting up the partition and you will return to partman's main screen.

If you decide you want to change something about your partition, simply select the partition, which will bring you to the partition configuration menu. This is the same screen as is used when creating a new partition, so you can change the same settings. One thing that may 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.

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 (e.g. partman-ext3, partman-xfs, or partman-lvm).

After you are satisfied with partitioning, select Finish partitioning and write changes to disk from 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.

6.3.2.2. Configuring Multidisk Device (Software RAID)

If you have more than one harddrive[6] 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.).

What benefits this brings depends on the type of MD device you are creating. Currently supported are:

RAID0

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 lose 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.

RAID1

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.

RAID5

Is a good compromise between speed, reliability and data redundancy. RAID5 splits all incoming data into stripes and distributes them equally on all but one disk (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 a similar degree of reliability to RAID1 while achieving less redundancy. On the other hand, it might be a bit slower on write operations 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 more 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 Partition settings menu where you should select Use as:->physical volume for RAID.)

Warning

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 Configure software RAID from the main partman menu. (The menu will only appear after you mark at least one partition for use as physical volume for RAID.) On the first screen of mdcfg simply select Create MD device. 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.

  • 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 a 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 the first partitions on all three disks 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 /home).

After you setup MD devices to your liking, you can Finish mdcfg to return back to the partman to create filesystems on your new MD devices and assign them the usual attributes like mountpoints.

6.3.2.3. Configuring the Logical Volume Manager (LVM)

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 disk (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 disks.

Now when you realize you need more space for your old 160GB /home partition, you can simply add a new 300GB disk to the computer, join it with your existing volume group and then resize the logical volume which holds your /home 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 HOWTO.

LVM setup in debian-installer is quite simple and completely supported inside partman. First, you have to mark the partition(s) to be used as physical volumes for LVM. This is done in the Partition settings menu where you should select Use as:->physical volume for LVM.

When you return to the main partman screen, you will see a new option Configure the Logical Volume Manager. When you select that, you will first be asked to confirm pending changes to the partition table (if any) and after that the LVM configuration menu will be shown. Above the menu a summary of the LVM configuration is shown. The menu itself is context sensitive and only shows valid actions. The possible actions are:

  • Display configuration details: shows LVM device structure, names and sizes of logical volumes and more

  • Create volume group

  • Create logical volume

  • Delete volume group

  • Delete logical volume

  • Extend volume group

  • Reduce volume group

  • Finish: return to the main partman screen

Use the options in that menu to first create a volume group and then create your logical volumes inside it.

After you return to the main partman screen, any created logical volumes will be displayed in the same way as ordinary partitions (and you should treat them as such).

6.3.2.4. Configuring Encrypted Volumes

debian-installer allows you to set up encrypted partitions. Every file you write to such a partition is immediately saved to the device in encrypted form. Access to the encrypted data is granted only after entering the passphrase used when the encrypted partition was originally created. This feature is useful to protect sensitive data in case your laptop or hard drive gets stolen. The thief might get physical access to the hard drive, but without knowing the right passphrase, the data on the hard drive will look like random characters.

The two most important partitions to encrypt are: the home partition, where your private data resides, and the swap partition, where sensitive data might be stored temporarily during operation. Of course, nothing prevents you from encrypting any other partitions that might be of interest. For example /var where database servers, mail servers or print servers store their data, or /tmp which is used by various programs to store potentially interesting temporary files. Some people may even want to encrypt their whole system. The only exception is the /boot partition which must remain unencrypted, because currently there is no way to load the kernel from an encrypted partition.

Note

Please note that the performance of encrypted partitions will be less than that of unencrypted ones because the data needs to be decrypted or encrypted for every read or write. The performance impact depends on your CPU speed, chosen cipher and a key length.

To use encryption, you have to create a new partition by selecting some free space in the main partitioning menu. Another option is to choose an existing partition (e.g. a regular partition, an LVM logical volume or a RAID volume). In the Partition settings menu, you need to select physical volume for encryption at the Use as: option. The menu will then change to include several cryptographic options for the partition.

debian-installer supports several encryption methods. The default method is dm-crypt (included in newer Linux kernels, able to host LVM physical volumes), the other is loop-AES (older, maintained separately from the Linux kernel tree). Unless you have compelling reasons to do otherwise, it is recommended to use the default.

First, let's have a look at the options available when you select Device-mapper (dm-crypt) as the encryption method. As always: when in doubt, use the defaults, because they have been carefully chosen with security in mind.

Encryption: aes

This option lets you select the encryption algorithm (cipher) which will be used to encrypt the data on the partition. debian-installer currently supports the following block ciphers: aes, blowfish, serpent, and twofish. It is beyond the scope of this document to discuss the qualities of these different algorithms, however, it might help your decision to know that in 2000, AES was chosen by the American National Institute of Standards and Technology as the standard encryption algorithm for protecting sensitive information in the 21st century.

Key size: 256

Here you can specify the length of the encryption key. With a larger key size, the strength of the encryption is generally improved. On the other hand, increasing the length of the key usually has a negative impact on performance. Available key sizes vary depending on the cipher.

IV algorithm: cbc-essiv:sha256

The Initialization Vector or IV algorithm is used in cryptography to ensure that applying the cipher on the same clear text data with the same key always produces a unique cipher text. The idea is to prevent the attacker from deducing information from repeated patterns in the encrypted data.

From the provided alternatives, the default cbc-essiv:sha256 is currently the least vulnerable to known attacks. Use the other alternatives only when you need to ensure compatibility with some previously installed system that is not able to use newer algorithms.

Encryption key: Passphrase

Here you can choose the type of the encryption key for this partition.

Passphrase

The encryption key will be computed[7] on the basis of a passphrase which you will be able to enter later in the process.

Random key

A new encryption key will be generated from random data each time you try to bring up the encrypted partition. In other words: on every shutdown the content of the partition will be lost as the key is deleted from memory. (Of course, you could try to guess the key with a brute force attack, but unless there is an unknown weakness in the cipher algorithm, it is not achievable in our lifetime.)

Random keys are useful for swap partitions because you do not need to bother yourself with remembering the passphrase or wiping sensitive information from the swap partition before shutting down your computer. However, it also means that you will not be able to use the “suspend-to-disk” functionality offered by newer Linux kernels as it will be impossible (during a subsequent boot) to recover the suspended data written to the swap partition.

Erase data: yes

Determines whether the content of this partition should be overwritten with random data before setting up the encryption. This is recommended because it might otherwise be possible for an attacker to discern which parts of the partition are in use and which are not. In addition, this will make it harder to recover any leftover data from previous installations[8].

If you select Encryption method:->Loopback (loop-AES), the menu changes to provide the following options:

Encryption: AES256

For loop-AES, unlike dm-crypt, the options for cipher and key size are combined, so you can select both at the same time. Please see the above sections on ciphers and key sizes for further information.

Encryption key: Keyfile (GnuPG)

Here you can select the type of the encryption key for this partition.

Keyfile (GnuPG)

The encryption key will be generated from random data during the installation. Moreover this key will be encrypted with GnuPG, so to use it, you will need to enter the proper passphrase (you will be asked to provide one later in the process).

Random key

Please see the section on random keys above.

Erase data: yes

Please see the the section on erasing data above.

After you have selected the desired parameters for your encrypted partitions, return back to the main partitioning menu. There should now be a new menu item called Configure encrypted volumes. After you select it, you will be asked to confirm the deletion of data on partitions marked to be erased and possibly other actions such as writing a new partition table. For large partitions this might take some time.

Next you will be asked to enter a passphrase for partitions configured to use one. Good passphrases should be longer than 8 characters, should be a mixture of letters, numbers and other characters and should not contain common dictionary words or information easily associable with you (such as birthdates, hobbies, pet names, names of family members or relatives, etc.).

Warning

Before you input any passphrases, you should have made sure that your keyboard is configured correctly and generates the expected characters. If you are unsure, you can switch to the second virtual console and type some text at the prompt. This ensures that you won't be surprised later, e.g. by trying to input a passphrase using a qwerty keyboard layout when you used an azerty layout during the installation. This situation can have several causes. Maybe you switched to another keyboard layout during the installation, or the selected keyboard layout might not have been set up yet when entering the passphrase for the root file system.

If you selected to use methods other than a passphrase to create encryption keys, they will be generated now. Because the kernel may not have gathered a sufficient amount of entropy at this early stage of the installation, the process may take a long time. You can help speed up the process by generating entropy: e.g. by pressing random keys, or by switching to the shell on the second virtual console and generating some network and disk traffic (downloading some files, feeding big files into /dev/null, etc.). This will be repeated for each partition to be encrypted.

After returning to the main partitioning menu, you will see all encrypted volumes as additional partitions which can be configured in the same way as ordinary partitions. The following example shows two different volumes. The first one is encrypted via dm-crypt, the second one via loop-AES.

Encrypted volume (sda2_crypt) - 115.1 GB Linux device-mapper
     #1 115.1 GB  F ext3

Loopback (loop0) - 515.2 MB AES256 keyfile
     #1 515.2 MB  F ext3

Now is the time to assign mount points to the volumes and optionally change the file system types if the defaults do not suit you.

One thing to note here are the identifiers in parentheses (sda2_crypt and loop0 in this case) and the mount points you assigned to each encrypted volume. You will need this information later when booting the new system. The differences between ordinary boot process and boot process with encryption involved will be covered later in Section 7.2, “Mounting encrypted volumes”.

Once you are satisfied with the partitioning scheme, continue with the installation.

6.3.3. Setting up the System

After partitioning the installer asks a few more questions that will be used to set up the system it is about to install.

6.3.3.1. Configuring Your Time Zone

Depending on the location selected at the beginning of the installation process, you might be shown a list of timezones relevant for that location. If your location has only one time zone, you will not be asked anything and the system will assume that time zone.

6.3.3.2. Configuring the Clock

The installer might ask you if the computer's clock is set to UTC. Normally this question is avoided if possible and the installer tries to work out whether the clock is set to UTC based on things like what other operating systems are installed.

In expert mode you will always be able to choose whether or not the clock is set to UTC.

Note that the installer does not currently allow you to actually set the time in the computer's clock. You can set the clock to the current time after you have installed, if it is incorrect or if it was previously not set to UTC.

6.3.3.3. Setting Up Users And Passwords

6.3.3.3.1. Set the Root Password

The root account is also called the super-user; it is a login that bypasses all security protection on your system. The root account should only be used to perform system administration, and only used for as short a time as possible.

Any password you create should contain at least 6 characters, and should contain both upper- and lower-case characters, as well as punctuation characters. Take extra care when setting your root password, since it is such a powerful account. Avoid dictionary words or use of any personal information which could be guessed.

If anyone ever tells you they need your root password, be extremely wary. You should normally never give your root password out, unless you are administering a machine with more than one system administrator.

6.3.3.3.2. Create an Ordinary User

The system will ask you whether you wish to create an ordinary user account at this point. This account should be your main personal log-in. You should not use the root account for daily use or as your personal login.

Why not? Well, one reason to avoid using root's privileges is that it is very easy to do irreparable damage as root. Another reason is that you might be tricked into running a Trojan-horse program — that is a program that takes advantage of your super-user powers to compromise the security of your system behind your back. Any good book on Unix system administration will cover this topic in more detail — consider reading one if it is new to you.

You will first be prompted for the user's full name. Then you'll be asked for a name for the user account; generally your first name or something similar will suffice and indeed will be the default. Finally, you will be prompted for a password for this account.

If at any point after installation you would like to create another account, use the adduser command.

6.3.4. Installing the Base System

Although this stage is the least problematic, it consumes a significant fraction 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 installation of the base system, package unpacking and setup messages are redirected to tty4. You can access this terminal by pressing Left Alt-F4; get back to the main installer process with Left Alt-F1.

The unpack/setup messages generated during this phase are also saved in /var/log/syslog. You can check them there if 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.

6.3.5. Installing Additional Software

After the base system is installed, you have a usable but limited system. Most users will want to install additional software on the system to tune it to their needs, and the installer allows you do so. This step can take even longer than installing the base system if you have a slow computer or network.

6.3.5.1. Configuring apt

One of the tools used to install packages on a Debian GNU/Linux system is a program called apt-get, from the apt package[9]. Other front-ends for package management, like aptitude and synaptic, are also in use. These front-ends are recommended for new users, since they integrate some additional features (package searching and status checks) in a nice user interface. In fact, aptitude is now the recommended utility for package management.

apt must be configured so that it knows where to retrieve packages from. The installer largely takes care of this automatically based on what it knows about your installation medium. The results of this configuration are written to the file /etc/apt/sources.list, and you can examine and edit it to your liking after the install is complete.

6.3.5.2. Selecting and Installing Software

During the installation process, you are given the opportunity to select additional software to install. Rather than picking individual software packages from the 17550 available packages, this stage of the installation process focuses on selecting and installing predefined collections of software to quickly set up your computer to perform various tasks.

So, you have the ability to choose tasks first, and then add on more individual packages later. These tasks loosely represent a number of different jobs or things you want to do with your computer, such as “Desktop environment”, “Web server”, or “Print server[10]. Section D.2, “Disk Space Needed for Tasks” lists the space requirements for the available tasks.

Some tasks may be pre-selected based on the characteristics of the computer you are installing. If you disagree with these selections you can un-select the tasks. You can even opt to install no tasks at all at this point.

Note

The “Desktop environment” task will install the GNOME desktop environment. The options offered by the installer currently do not allow to select a different desktop environment such as for example KDE.

It is possible to get the installer to install KDE by using preseeding (see Section B.4.11, “Package selection”) or by adding tasks="standard, kde-desktop" at the boot prompt when starting the installer. However, this will only work if the packages needed for KDE are actually available. If you are installing using a full CD image, they will need to be downloaded from a mirror as KDE packages are not included on the first full CD; installing KDE this way should work fine if you are using a DVD image or any other installation method.

The various server tasks will install software roughly as follows. DNS server: bind9; File server: samba, nfs; Mail server: exim4, spamassassin, uw-imap; Print server: cups; SQL database: postgresql; Web server: apache.

Once you've selected your tasks, select OK. At this point, aptitude will install the packages that are part of the tasks you've selected.

Note

In the standard user interface of the installer, you can use the space bar to toggle selection of a task.

You should be aware that especially the Desktop task is very large. Especially when installing from a normal CD-ROM in combination with a mirror for packages not on the CD-ROM, the installer may want to retrieve a lot of packages over the network. If you have a relatively slow Internet connection, this can take a long time. There is no option to cancel the installation of packages once it has started.

Even when packages are included on the CD-ROM, the installer may still retrieve them from the mirror if the version available on the mirror is more recent than the one included on the CD-ROM. If you are installing the stable distribution, this can happen after a point release (an update of the original stable release); if you are installing the testing distribution this will happen if you are using an older image.

Each package you selected with tasksel is downloaded, unpacked and then installed in turn by the apt-get and dpkg programs. If a particular program needs more information from the user, it will prompt you during this process.

6.3.6. Making Your System Bootable

If you are installing a diskless workstation, obviously, booting off the local disk isn't a meaningful option, and this step will be skipped.

6.3.6.1. Detecting other operating systems

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.

6.3.6.2. arcboot-installer

The boot loader on SGI machines is arcboot. It has to be installed on the same hard disk as the kernel (this is done automatically by the installer). Arcboot supports different configurations which are set up in /etc/arcboot.conf. Each configuration has a unique name, the default setup as created by the installer is “linux”. After arcboot has been installed, the system can be booted from hard disk by setting some firmware environment variables entering

 setenv SystemPartition scsi(scsi)disk(disk)rdisk(0)partition(0)
 setenv OSLoadPartition scsi(scsi)disk(disk)rdisk(0)partition(partnr)
 setenv OSLoader arcboot
 setenv OSLoadFilename config
 setenv AutoLoad yes

on the firmware prompt, and then typing boot.

scsi

is the SCSI bus to be booted from, this is 0 for the onboard controllers

disk

is the SCSI ID of the hard disk on which arcboot is installed

partnr

is the number of the partition on which /etc/arcboot.conf resides

config

is the name of the configuration entry in /etc/arcboot.conf, which is “linux” by default.

6.3.6.3. Continue Without Boot Loader

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 /target/boot. 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 /boot filesystem.

6.3.7. Finishing the Installation

These are the last bits to do before rebooting to your new system. It mostly consists of tidying up after the debian-installer.

6.3.7.1. Finish the Installation and Reboot

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.

6.3.8. Miscellaneous

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.

6.3.8.1. Saving the installation logs

If the installation is successful, the logfiles created during the installation process will be automatically saved to /var/log/installer/ on your new Debian system.

Choosing Save debug logs from the main menu allows you to save the log files to a floppy disk, network, hard disk, or other media. 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.

6.3.8.2. Using the Shell and Viewing the Logs

There are several methods you can use to get a shell while running an installation. On most systems, and if you are not installing over serial console, the easiest method is to switch to the second virtual console by pressing Left Alt-F2[11] (on a Mac keyboard, Option-F2). Use Left Alt-F1 to switch back to installer itself.

If you cannot switch consoles, there is also an Execute a Shell item on the main menu that can be used to start a shell. To get back to the installer itself, type exit to close the shell.

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 shell is a Bourne shell clone called ash and has some nice features like autocompletion and history.

To edit and view files, use the text editor nano. Log files for the installation system can be found in the /var/log directory.

Note

Although you can do basically anything in a shell that the available commands allow you to do, the option to use a shell is really only there in case something goes wrong and for debugging.

Doing things manually from the shell may interfere with the installation process and result in errors or an incomplete installation. In particular, you should always use let the installer activate your swap partition and not do this yourself from a shell.

6.3.8.3. Installation Over the Network

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 choose Load installer components from CD and from the list of additional components select network-console: Continue installation remotely using SSH. Successful load is indicated by a new menu entry called Continue installation remotely using SSH.

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

Where 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.

Note

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 called Start menu and Start shell. 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.

Warning

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.



[4] In technical terms: where multiple locales exist for that language with differing country codes.

[5] The installer will encrypt the LVM volume group using a 256 bit AES key and makes use of the kernel's “dm-crypt” support.

[6] To be honest, you can construct MD device even from partitions residing on single physical drive, but that won't bring you anything useful.

[7] Using a passphrase as the key currently means that the partition will be set up using LUKS.

[8] It is believed that the guys from three-letter agencies can restore the data even after several rewrites of the magnetooptical media, though.

[9] Note that the program which actually installs the packages is called dpkg. However, this program is more of a low-level tool. apt-get is a higher-level tool, which will invoke dpkg as appropriate. It knows how to retrieve packages from your CD, the network, or wherever. It is also able to automatically install other packages which are required to make the package you're trying to install work correctly.

[10] You should know that to present this list, the installer is merely invoking the tasksel program. It can be run at any time after installation to install more packages (or remove them), or you can use a more fine-grained tool such as aptitude. If you are looking for a specific single package, after installation is complete, simply run aptitude install package, where package is the name of the package you are looking for.

[11] That is: press the Alt key on the left-hand side of the space bar and the F2 function key at the same time.