UEFI - Debian Wiki. This page is mainly intended to describe UEFI for Debian purposes: what's supported in Debian and how to use it, plus some troubleshooting tips. See the Wikipedia page for vastly more information about it in general, or there's lots of other information in the Links section below. What is UEFI?(U)EFI stands for (Unified) Extensible Firmware Interface. It's a standard specification for the firmware interface on a computer, and it has been implemented by multiple vendors on various platforms. History and naming.
UEFI started life as Intel's EFI specification. It was first seen in the wild on Itanium (ia. Debian's first support started too. Later, Intel passed control over the EFI specification to the UEFI Forum and they continued developing newer versions of the specification. The U for Unified was added to the name at this point.
In most references here and elsewhere on the net, EFI and UEFI are interchangeable terms to describe the same thing. Architectures supported.
UEFI has been supported to some extent on 5 architectures: 6. Itanium (ia. 64 in Debian) 6. ARM (armel/armhf) 6. Aarch. 64 (arm. 64) There are some caveats, though..
As of the Debian Jessie release (8. While support for 3. ARM systems exists in the latest version of the UEFI specification, the patches needed to use it with the Linux kernel have not yet been accepted upstream. This means that current support for UEFI in Debian Jessie is limited to amd.
PC platform: BIOS, UEFI, CSM etc. On the PC architectures (amd.
UEFI- based firmware is a relatively new replacement for the ancient BIOS (Basic Input/Output System) that has existed ever since the PC was first developed in the 1. The old BIOS systems have strict limitations due to their ancient design, running in 1. MB of memory, and limited access to other resources like disks.
UEFI firmware is normally fully native and so should be able to access all the system memory and all the devices. For the sake of backwards compatibility, most current PCs using UEFI also include a Compatibility Support Module (CSM), extra support code that will continue to boot in the old BIOS style. Over time, this support will most likely be phased out.
Some systems were already being sold UEFI- only (i. CSM) in 2. 01. 4.
ARM6. 4 platform: UEFI, U- Boot, Fastboot, etc. Some Aarch. 64 machines (arm. U- Boot or other firmware options like Fastboot for their firmware, but most general- purpose arm. UEFI. Disk partitioning: MS- DOS and GPTHistorically, the most common method of partitioning disks on PC platforms has been the MS- DOS standard using a Master Boot Record (MBR) and a tiny limited partition table with space to describe only 4 "primary" partitions. This is what BIOS systems still use to date. There are several important limitations that come with this scheme, but the most obvious one is the size limit of 2.
TB per disk. Back when this partitioning format was invented, a 1. MB disk was large.
This article or section is a candidate for moving to Unified Extensible Firmware Interface/Secure Boot. Notes: Secure Boot is a direct UEFI feature. (Discuss in Talk:Secure Boot#Move to 'Unified Extensible Firmware.
Today, multi- terabyte disks are the norm. UEFI also includes support for a newer partitioning format: the GUID Partition Table (GPT). It allows for using and booting from much larger disks, up to 8.
ZB (i. e. 8,0. 00,0. TB), plus much better definitions of what each partition might be used for. Booting a UEFI machine normally. Regular UEFI boot has several lists of possible boot entries, stored in UEFI config variables (normally in NVRAM), and boot order config variables stored alongside them.
Sounds good, and I will try it. But first, I have a question: I have a D:drive (internal to my laptop) as well as an external drive that have the pesky EFI partition. Could you tell me whether there is a way to have the Clean. I bought a new Sony Vaio S series laptop. It uses Insyde H2O BIOS EFI, and trying to install Linux on it is driving me crazy. root@kubuntu:~# parted /dev/sda print Model: ATA Hitachi HTS72756 (scsi) Disk /dev/sda: 640GB Sector.
It allows for many different boot options, and a properly- defined fallback order. In many cases, you can even list and choose which OS / boot loader to use from the system boot menu (similar to the boot device menu implemented in many BIOSes). Unfortunately, a lot of PC UEFI implementations have got this wrong and so don't work properly. The correct way for this to work when booting off local disk is for a boot variable to point to a vendor- specific bootloader program in \EFI\$vendor\$bootloader.
EFI System Partition (ESP), a specially tagged partition which is normally formatted using FAT3. Debian installs grub- efi for its EFI bootloader, as: Architecture. Path amd. 64 \EFI\debian\grubx. EFI\debian\grubia.
EFI\debian\grubaa. Each version of grub here contains all the code and configuration that grub needs to work from that point. By using separate vendor directories like this, UEFI allows for clean interoperability between vendors.
If only the firmware developers were competent.. Some implementations ignore the boot order altogether, some filter it and will only run things that claim to be "Windows", etc. See below for tips on how to work around some of the known bugs in broken UEFI implementations. If there are no boot variables pointing to a bootloader program in the ESP, or if the user has told the system appropriately, it will look for bootloaders in certain specific paths too.
On each device, it will look for FAT3. Within each of those, it will look for a specifically- named bootloader file, again with a different name per architecture: Architecture.
Path amd. 64 \EFI\boot\bootx. EFI\boot\bootia. 32. EFI\boot\bootaa. 64. The different names are deliberate - it allows for one disk or CD to contain boot files for multiple architectures with no clashes.
On Debian installation media, each of these files is again a copy of grub- efi with sufficient built- in code and configuration to find the rest of the system from there. UEFI is mostly contained in two modules. First comes the partman- efi module, and this will be loaded automatically if d- i recognises it has been booted in UEFI mode. MS- DOS and GPT partitioned disks, but will offer to use GPT by preference on disks that are not already partitioned.
It knows how to set up an ESP with appropriate partition type and filesystem if necessary, and will ensure it's correctly mounted on the installed system later. If the system already has an ESP, partman- efi will attempt to use that rather than create a new one. This is for interoperability with existing operating systems in dual- boot systems. Once the normal installation process has been completed, the second major component with UEFI support comes into play: grub- installer. It will install the grub- efi bootloader to the right location in the ESP and will use efibootmgr to register that bootloader with the firmware.
On correctly- working systems, this should work without needing any user interaction. This module will automatically find the ESP and install its files in the right place, leaving no space for confusion on where boot files are saved (as can happen with MBR/MS- DOS systems). The initial support to make UEFI amd.
Debian was added in Wheezy (7. Support was later added for i. Jessie (8. 0), along with a number of quirks and bug workarounds. See below for more details about those. The Linux kernel gives access to the UEFI configuration variables via a set of files under /sys, using two different interfaces. The older interface is efivars, showing files under /sys/firmware/efi/vars, and this is what is used by default in both Wheezy and Jessie.
The new interface is efivarfs, which will expose things in a slightly different format under /sys/firmware/efi/efivars. This is the new preferred way of using UEFI configuration variables, and Debian will switch to it in the future.
The exact details of these interfaces are hidden from view somewhat by efibootmgr and efivar, userland software packages written to work with them. Previously, all of the code was written directly in efibootmgr but more recently the lower- level code has been split out into the library efivar to make it easier to share this code with other utilities. Read the man pages for these for full details, but here are a couple of examples from a system with many devices: efibootmgr example 1 - display boot entries# efibootmgr. Boot. Current: 0.
Timeout: 0 seconds. Boot. Order: 0. 01. A,0. 00. B,0. 00. C,0. 00. D,0. 00.
E,0. 00. F,0. 01. Boot. 00. 00 Setup.
Boot. 00. 01 Boot Menu. Boot. 00. 02 Diagnostic Splash Screen. Boot. 00. 03 Startup Interrupt Menu. Boot. 00. 04 ME Configuration Menu. Boot. 00. 05 Rescue and Recovery. Boot. 00. 06* USB CD.
Boot. 00. 07* USB FDD. Boot. 00. 08* ATAPI CD0. Boot. 00. 09* ATA HDD2. Boot. 00. 0A* ATA HDD0. Boot. 00. 0B* ATA HDD1.
Boot. 00. 0C* USB HDD. Boot. 00. 0D* PCI LAN. Boot. 00. 0E* ATAPI CD1. Boot. 00. 0F* ATAPI CD2. Boot. 00. 10 Other CD. Boot. 00. 11* ATA HDD3. Boot. 00. 12* ATA HDD4.
Boot. 00. 13 Other HDD. Boot. 00. 14* IDER BOOT CDROM. Boot. 00. 15* IDER BOOT Floppy. Boot. 00. 16* ATA HDD. Boot. 00. 17* ATAPI CD.
Boot. 00. 18* PCI LAN. Boot. 00. 19* debianefibootmgr example 2 - verbose display of boot entries. The same as example 1, but with more detail (including the GUIDs used to identify devices). Boot. Current: 0. Timeout: 0 seconds. Boot. Order: 0. 01.
A,0. 00. B,0. 00. C,0. 00. D,0. 00. E,0. 00. F,0. 01.
Boot. 00. 00 Setup Fv. File(7. 21c. 8b. 66- 4. Boot. 00. 01 Boot Menu Fv. File(1. 26a. 76. 2d- 5. Boot. 00. 02 Diagnostic Splash Screen Fv.
File(a. 7d. 8d. 9a. Boot. 00. 03 Startup Interrupt Menu Fv. File(f. 46ee. 6f. Boot. 00. 04 ME Configuration Menu Fv.
File(8. 29. 88. 42. Boot. 00. 05 Rescue and Recovery Fv. File(6. 65d. 3f. 60- ad. Boot. 00. 06* USB CD Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 07* USB FDD Ven.
Msg(bc. 78. 38d. 2- 0f. Boot. 00. 08* ATAPI CD0 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 09* ATA HDD2 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 0A* ATA HDD0 Ven. Msg(bc. 78. 38d. 2- 0f.
Boot. 00. 0B* ATA HDD1 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 0C* USB HDD Ven.
Msg(bc. 78. 38d. 2- 0f. Boot. 00. 0D* PCI LAN Ven. Msg(bc. 78. 38d. 2- 0f.
Boot. 00. 0E* ATAPI CD1 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 0F* ATAPI CD2 Ven.
Msg(bc. 78. 38d. 2- 0f. Boot. 00. 10 Other CD Ven.
Msg(bc. 78. 38d. 2- 0f. Boot. 00. 11* ATA HDD3 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 12* ATA HDD4 Ven. Msg(bc. 78. 38d. 2- 0f. Boot. 00. 13 Other HDD Ven.
Msg(bc. 78. 38d. 2- 0f. Boot. 00. 14* IDER BOOT CDROM ACPI(a. PCI(1. 6,2)ATAPI(0,1,0).
Boot. 00. 15* IDER BOOT Floppy ACPI(a. PCI(1. 6,2)ATAPI(0,0,0). Boot. 00. 16* ATA HDD Ven.