3.6. Pre-Installation Hardware and Operating System Setup

This section will walk you through pre-installation hardware setup, if any, that you will need to do prior to installing Debian. Generally, this involves checking and possibly changing BIOS/system firmware settings for your system. The BIOS or system firmware is the core software used by the hardware; it is most critically invoked during the bootstrap process (after power-up).

3.6.1. Invoking the BIOS Set-Up Menu

The BIOS provides the basic functions needed to boot your machine and to allow your operating system to access your hardware. Your system provides a BIOS setup menu, which is used to configure the BIOS. To enter the BIOS setup menu you have to press a key or key combination after turning on the computer. Often it is the Delete or the F2 key, but some manufacturers use other keys. Usually upon starting the computer there will be a message stating which key to press to enter the setup screen.

3.6.2. Boot Device Selection

Within the BIOS setup menu, you can select which devices shall be checked in which sequence for a bootable operating system. Possible choices usually include the internal harddisks, the CD/DVD-ROM drive and USB mass storage devices such as USB sticks or external USB harddisks. On modern systems there is also often a possibility to enable network booting via PXE.

Depending on the installation media (CD/DVD ROM, USB stick, network boot) you have chosen you should enable the appropriate boot devices if they are not already enabled.

Most BIOS versions allow you to call up a boot menu on system startup in which you select from which device the computer should start for the current session. If this option is available, the BIOS usually displays a short message like press F12 for boot menu on system startup. The actual key used to select this menu varies from system to system; commonly used keys are F12, F11 and F8. Choosing a device from this menu does not change the default boot order of the BIOS, i.e. you can start once from a USB stick while having configured the internal harddisk as the normal primary boot device.

If your BIOS does not provide you with a boot menu to do ad-hoc choices of the current boot device, you will have to change your BIOS setup to make the device from which the debian-installer shall be booted the primary boot device.

Unfortunately some computers contain buggy BIOS versions. Booting debian-installer from a USB stick might not work even if there is an appropriate option in the BIOS setup menu and the stick is selected as the primary boot device. On some of these systems using a USB stick as boot medium is impossible; others can be tricked into booting from the stick by changing the device type in the BIOS setup from the default USB harddisk or USB stick to USB ZIP or USB CDROM. In particular if you use an isohybrid CD/DVD image on a USB stick (see Section 4.3.1, “Preparing a USB stick using a hybrid CD or DVD image”), changing the device type to USB CDROM helps on some BIOSes which will not boot from a USB stick in USB harddisk mode. You may need to configure your BIOS to enable USB legacy support.

If you cannot manipulate the BIOS to boot directly from a USB stick you still have the option of using an ISO copied to the stick. Boot debian-installer using Section 4.4, “Preparing Files for Hard Disk Booting” and, after scanning the hard drives for an installer ISO image, select the USB device and choose an installation image.

3.6.3. Systems with UEFI firmware

UEFI (Unified Extensible Firmware Interface) is a new kind of system firmware that is used on many modern systems and is - among other uses - intended to replace the classic PC BIOS.

Currently most PC systems that use UEFI also have a so-called Compatibility Support Module (CSM) in the firmware, which provides exactly the same interfaces to an operating system as a classic PC BIOS, so that software written for the classic PC BIOS can be used unchanged. Nonetheless UEFI is intended to one day completely replace the old PC BIOS without being fully backwards-compatible and there are already a lot of systems with UEFI but without CSM.

On systems with UEFI there are a few things to take into consideration when installing an operating system. The way the firmware loads an operating system is fundamentally different between the classic BIOS (or UEFI in CSM mode) and native UEFI. One major difference is the way the harddisk partitions are recorded on the harddisk. While the classic BIOS and UEFI in CSM mode use a DOS partition table, native UEFI uses a different partitioning scheme called GUID Partition Table (GPT). On a single disk, for all practical purposes only one of the two can be used and in case of a multi-boot setup with different operating systems on one disk, all of them must therefore use the same type of partition table. Booting from a disk with GPT is only possible in native UEFI mode, but using GPT becomes more and more common as hard disk sizes grow, because the classic DOS partition table cannot address disks larger than about 2 Terabytes while GPT allows for far larger disks. The other major difference between BIOS (or UEFI in CSM mode) and native UEFI is the location where boot code is stored and in which format it has to be. This means that different bootloaders are needed for each system.

The latter becomes important when booting debian-installer on a UEFI system with CSM because debian-installer checks whether it was started on a BIOS- or on a native UEFI system and installs the corresponding bootloader. Normally this simply works but there can be a problem in multi-boot environments. On some UEFI systems with CSM the default boot mode for removable devices can be different from what is actually used when booting from hard disk, so when booting the installer from a USB stick in a different mode from what is used when booting another already installed operating system from the hard disk, the wrong bootloader might be installed and the system might be unbootable after finishing the installation. When choosing the boot device from a firmware boot menu, some systems offer two seperate choices for each device, so that the user can select whether booting shall happen in CSM or in native UEFI mode.

Another UEFI-related topic is the so-called secure boot mechanism. Secure boot means a function of UEFI implementations that allows the firmware to only load and execute code that is cryptographically signed with certain keys and thereby blocking any (potentially malicious) boot code that is unsigned or signed with unknown keys. In practice the only key accepted by default on most UEFI systems with secure boot is a key from Microsoft used for signing the Windows bootloader. As the boot code used by debian-installer is not signed by Microsoft, booting the installer requires prior deactivation of secure boot in case it is enabled. Secure boot is often enabled by default on systems that come preinstalled with a 64-bit version of Windows 8 and there is unfortunately no standard way to disable it in the UEFI setup. On some systems, the option to disable secure boot is only made visible when a BIOS password has been set by the user, so if you have a system with secure boot enabled, but cannot find an option to disable it, try setting a BIOS password, powercycle the machine and look again for an appropriate option.

3.6.4. Disabling the Windows 8 fast boot feature

Windows 8 offers a feature called fast boot to cut down system startup time. Technically, when this feature is enabled, Windows 8 does not do a real shutdown and a real cold boot afterwards when ordered to shut down, but instead does something resembling a partial suspend to disk to reduce the boot time. As long as Windows 8 is the only operating system on the machine, this is unproblematic, but it can result in problems and data loss when you have a dual boot setup in which another operating system accesses the same filesystems as Windows 8 does. In that case the real state of the filesystem can be different from what Windows 8 believes it to be after the boot and this could cause filesystem corruption upon further write accesses to the filesystem. Therefore in a dual boot setup, to avoid filesystem corruption the fast boot feature has to be disabled within Windows.

It may also be necessary to disable fast boot to even allow access to UEFI setup to choose to boot another operating system or debian-installer. On some UEFI systems, the firmware will reduce boot time by not initialising the keyboard controller or USB hardware; in these cases, it is necessary to boot into Windows and disable this feature to allow for a change of boot order.

3.6.5. Hardware Issues to Watch Out For

USB BIOS support and keyboards.  If you have no PS/2-style keyboard, but only a USB model, on some very old PCs you may need to enable legacy keyboard emulation in your BIOS setup to be able to use your keyboard in the bootloader menu, but this is not an issue for modern systems. If your keyboard does not work in the bootloader menu, consult your mainboard manual and look in the BIOS for Legacy keyboard emulation or USB keyboard support options.