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/UEFI/system firmware settings for your system. The “BIOS/UEFI” 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/UEFI provides the basic functions needed to boot your machine and to allow your operating system to access your hardware. Your system provides a BIOS/UEFI setup menu, which is used to configure the BIOS/UEFI. To enter the BIOS/UEFI 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/UEFI 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/UEFI 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/UEFI 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/UEFI, 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/UEFI 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/UEFI setup to make
the device from which the
debian-installer shall be booted the primary boot device.
Unfortunately some computers may contain buggy BIOS/UEFI versions. Booting
a USB stick might not work even if there is an appropriate option in the
BIOS/UEFI 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/UEFI 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/UEFI to enable “USB legacy support”.
If you cannot manipulate the BIOS/UEFI 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 separate 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. Debian includes a “shim” bootloader signed by Microsoft, so should work correctly on systems with secure boot enabled.
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.