831aea9168cbb5f4ff496745ae3d7482f1f9dbd8
[platform/upstream/gummiboot.git] / README
1 Simple UEFI boot loader which executes configured EFI images, where the
2 default entry is selected by a configured pattern (glob) or an on-screen
3 menu.
4
5 Operates on the EFI System Partition (ESP) only. Configuration file fragments,
6 kernels, initrds, other EFI images need to reside on the EFS. Linux kernels
7 need to be built with CONFIG_EFI_STUB to be able to be directly executed as
8 an EFI image.
9
10 Reads simple and entirely generic boot loader configurion files; one
11 file per boot loader entry to select from.
12
13 Pressing the space (or most other) keys during bootup will show
14 an on-screen menu with all configured loader entries to select from.
15 Pressing enter on the selected entry loads and starts the EFI image.
16
17 If no timeout is configured and no key pressed during bootup, the default
18 entry is booted right away.
19
20 The config files should be named like:
21   (ESP)/loader/entries/<vendor>-<release>.conf
22
23   $ cat /boot/loader/entries/fedora-3.5.4-1.fc18.x86_64.conf
24   title   Fedora 18 (3.5.4-1.fc17.x86_64)
25   linux   /fedora/vmlinuz-3.5.4-1.fc17.x86_64
26   initrd  /fedora/initrd-3.5.4-1.fc17.x86_64
27   options root=UUID=f8f83f73-df71-445c-87f7-31f70263b83b
28
29   $ cat /boot/loader/entries/custom-kernel.conf
30   title   My test Kernel - without initramfs
31   options root=PARTUUID=084917b7-8be2-4e86-838d-f771a9902e08
32   linux   /bzImage
33
34   $ cat /boot/loader/entries/redhat-grub.conf
35   title   GRUB
36   efi     /EFI/redhat/grub2-efi/grub.efi
37
38   $ cat /boot/loader/entries/zzz-efi-shell.conf
39   title   EFI Shell
40   efi     /EFI/shell/Shell.efi
41
42 Paths are automatically converted from '/' to '\', and a leading '\' is
43 added if needed.
44
45 Loader options can be stored in:
46   (ESP)/loader/loader.conf
47
48   $ cat /boot/loader/loader.conf
49   timeout 10
50   default fedora-*
51
52 The timeout is specified in seconds, the default is 0, which suppresses the
53 menu. If a timeout is given, in the config file or in the EFI variable
54 "LoaderConfigTimeout", the on-screen menu with the default entry selected is
55 shown, and a timer counting downwards.
56
57 Pressing the '+' or '-' key in the menu will set or clear a custom timeout
58 value. The setting is stored persistently in the EFI variable "LoaderConfigTimeout".
59
60 The default entry is selected by a pattern match on the configuration file
61 names. The matched strings are basenames of the config files translated to
62 lowercase and without the ".conf" suffix. The last matching entry in the
63 sorted list is selected. If no match pattern is specified, the last entry in
64 the list is selected.
65
66 This will automatically select the latest Fedora kernel entry:
67    default fedora-*
68
69 This will automatically select the latest Fedora 18 kernel:
70    default fedora-*.fc18.*
71
72 Pressing the 'd' key in the menu will mark the selected entry as the default
73 boot entry. The entry is identified by a leading '*'. Pressing the 'd' key again
74 will clear the setting. The setting is stored persistently in the EFI variable
75 "LoaderConfigDefault".
76
77 Pressing 'o' allows to edit the options for this bootup.
78
79 Pressing 'v' shows the loader and EFI version numbers.
80
81 Pressing 'F1' will show the available keys.
82
83 The EFI variable LoaderEntryOneShot= can be used to specify a loader entry
84 for the next and only the next reboot. The variable will always be cleared
85 directly after it is read.
86
87 Before executing the selected image, the boot entry indentifier is stored in
88 the EFI variable "LoaderEntrySelected" and available during runtime at:
89   /sys/firmware/efi/vars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f/
90
91 The allocated random UUID 4a67b082-0a4c-41cf-b6c7-440b29bb8c4f is meant to be
92 shared across tools which implement the config file layout, format, and the EFI
93 variables.