Though the specification has been around since the late '90s, UEFI only recently started appearing on commodity hardware. Macs are a slight exception, though they do not strictly adhere to the UEFI standard. Linux can boot as usual in BIOS mode, however the ELILO boot loader or recent versions of Grub 2 are necessary to boot in UEFI mode. Linux 3.0-rc1 is reported to successfully boot in UEFI mode (details below), but older versions hang after the kernel gets loaded by grub.
Enabling UEFI boot in Debian
The following are steps to successfully boot in pure UEFI mode ("UEFI only" startup config menu). There are likely some that are redundant or unnecessary.
- Install 64-bit Debian in BIOS mode to an MBR partitioned disk.
- Install Kernel 3.0-rc1 or later. Enable CONFIG_EFI,CONFIG_FB_EFI,CONFIG_EFI_VARS,CONFIG_EFI_PARTITION.
- Create a small ~ 200MB Partition formatted to fat32 and enable the "boot" flag. The first partition is likely a good choice, but may not be strictly required. The "boot" flag is also likely superstitious.
- Burn some form of live cd that allows you access your Debian install in case something goes wrong and you are unable to boot.
- Mount the fat32 partition at /boot/efi
sudo mkdir /boot/efi
sudo mount /dev/sda1 /boot/efi
- Install the efi version of grub
aptitude install grub-efi-amd64
- Now run grub-install (ignore warnings about efivars)
sudo grub-install /dev/sda
- This should have created /boot/efi/efi/debian/grubx64.efi. In order to make this actually work without running efibootmgr (which is not possible in bios mode), just copy it to /boot/efi/efi/boot/bootx64.efi
sudo cp /boot/efi/efi/debian/grubx64.efi /boot/efi/efi/boot/bootx64.efi
- Create the directories structure /boot/efi/efi/boot
sudo mkdir -p /boot/efi/efi/boot
- Copy the grub.efi executabe into the efi partition
sudo cp /boot/grub/grub.efi /boot/efi/efi/boot/bootx64.efi
- Reboot, enter the Thinkvantage menu and set "UEFI only" or "UEFI First". Hopefully you still get a grub menu and it will actually boot the 3.0 kernel.