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).
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.
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
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 installation image on a USB stick
(see Section 4.3.1, “Preparing a USB stick using a hybrid CD/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
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
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
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
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.
Windows offers a feature (called “fast boot” in Windows 8, “fast startup” in Windows 10) to cut down system startup time. Technically, when this feature is enabled, Windows 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 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 does. In that case the real state of the filesystem can be different from what Windows 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”/“fast startup” feature has to be disabled within Windows.
Furthermore, the Windows Update mechanism has (sometimes) been known to automatically re-enable this feature, after it has been previously disabled by the user. It is suggested to re-check this setting periodically.
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.
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.