Gummiboot is a UEFI boot manager written by Kay Sievers and Harald Hoyer. It is simple to configure, but can only start EFI executables, the Linux kernel (with CONFIG_EFI_STUB enabled), grub.efi, and such.
Installfrom [extra] and copy the bootloader to the EFI partition:
If you are on a 64-bit UEFI system:
# cp /usr/lib/gummiboot/gummibootx64.efi $esp/EFI/gummiboot/gummiboot.efi
If you are on a 32-bit UEFI system:
# cp /usr/lib/gummiboot/gummibootia32.efi $esp/EFI/gummiboot/gummiboot.efi
Then add it to the boot configuration: (only needs to be done once; skip this when upgrading)
# efibootmgr -c -d /dev/sdX -p Y -w -L "Gummiboot" -l '\EFI\gummiboot\gummiboot.efi'
where /dev/sdX is the drive and Y is the partition number of your UEFISYS partition.
The basic configuration is kept in
$esp/loader/loader.conf, with just two possible configuration options:
default– default entry to select (without the
.confsuffix); can be a wildcard like
timeout– menu timeout in seconds. If this is not set, the menu will only be shown when you hold the space key while booting.
default arch timeout 4
Note that both options can be changed in the boot menu itself, which will store them as EFI variables.
Adding boot entries
Gummiboot searches for boot menu items in
$esp/loader/entries/*.conf – each file found must contain exactly one boot entry. The possible options are:
title– operating system name. Required.
version– kernel version, shown only when multiple entries with same title exist. Optional.
machine-id– machine identifier from
/etc/machine-id, shown only when multiple entries with same title+version exist. Optional.
efi– EFI program to start; e.g.
/vmlinuz-linux. Either this or
linux(see below) is required.
options– Command-line options to pass to the EFI program. Optional, but you will need at least
root=devif booting Linux.
For Linux, you can specify
linux path-to-vmlinuz and
initrd path-to-initramfs; this will be automatically translated to
efi path and
options initrd=path – this syntax is only supported for convenience and has no differences in function.
An example entry for Arch Linux:
title Arch Linux linux /vmlinuz-linux initrd /initramfs-linux.img options root=PARTUUID=14420948-2cea-4de7-b042-40f67c618660 ro
You can also add other EFI programs such as
\EFI\Microsoft\Boot\Bootmgfw.efi (the Windows 7 boot manager). The EFI Shell, if installed, will be shown automatically.
title UEFI Shell efi \shellx64.efi
Separate boot and EFI partitions
TODO: link my kernel-post-upgrade stuff, https://github.com/grawity/code/tree/master/os/arch
TODO: document keybindings from http://freedesktop.org/wiki/Software/gummiboot
Transferring to new HDD causes breakage
Twice now I have transferred my installation from one disk to another, ESP included, and both times this broke my gummiboot setup. With a lot of trial and error, I have discovered that gummiboot does not like configuration files that have been tranfserred from one disk to another (I used rsync).
To solve this, delete the $ESP/loader directory and all of its contents, and recreate the necessary configuration files.
Though it has no additional info, here is my relevent forum thread.