1 (U)EFI bootloaders updater
2 ==========================
7 (U)EFI systems boot using boot loaders on a special EFI System Partition.
8 Many different boot loaders may be present at a time. These are not only
9 traditional boot loaders like GRUB, but arbitrary 'EFI applications'.
11 Xen or Linux kernel can be built as an EFI application too and booted directly
12 from the EFI firmware. The problem is the kernels and data or config files
13 needed for boot must be stored on the EFI System Partition, but that is not
14 the place where they are installed on package upgrade. And it is hard to
15 install files from RPM packages there directly.
17 efi-boot-update script makes it easy to manage the files on the EFI system
18 partition. Those files are to be installed in the regular Linux system and
19 will be copied to the EFI system partition using rules defined in
20 /etc/efi-boot/update.d/*.conf files (efi-boot-update modules).
22 efi-boot-update will also manage EFI boot manager configuration, adding
23 the configured boot loaders to the platform boot menu, provided the 'efibootmgr'
24 package is installed and functional.
30 This is not another configuration interface for the bootloaders. efi-boot-update can copy
31 bootloader configuration files to the EFI system partition, but it doesn't
32 care about their contents or syntax.
37 When efi-boot-update is installed it should be automatically called whenever
38 any package containing EFI boot loader/application (or data for such
39 application) is installed, upgraded or removed.
41 The administrator may alter efi-boot-update operation editing the
42 global /etc/efi-boot/update.conf file and the efi-boot-update modules
43 in /etc/efi-boot/update.d (these configure rules for a specific application).
45 The administrator is also responsible to edit any configuration files used by
46 the boot loaders (usually in /etc/efi-boot).
48 /etc/efi-boot/update.conf
49 .........................
51 This file provide global settings for the efi-boot-update script. The
52 file uses POSIX shell syntax to set shell variables. Values containing
53 spaces should be quoted with double quotes.
55 Following variables can be set there:
57 * LABEL_PREFIX – the text to be prepended to every boot manager entry label
58 created by efi-boot-update.
59 * ORDER – preferred boot loader order. The value should contain
60 space-separated names of efi-boot-update modules in /etc/efi/update.d
61 (filenames there with '.conf' stripped).
62 * PLATFORM_DIR – subdirectory of the 'EFI' directory in the EFI system
63 partition where the EFI applications and data files will be stored.
64 The value may contain '@ARCH@', which will be replaced with the
65 architecture ('x64' or 'x32') for which the application was built (boot
66 loaders may have both 32-bit and 64-bit versions and it may be different
67 architecture that the one Linux is running).
69 modules in /etc/efi-boot/update.d
70 .................................
72 The *.conf files in the /etc/efi-boot/update.d directory provide rules for installing
73 a boot loader and creating the EFI boot manager label for it.
75 Following variables can be be set for each module:
77 * ENABLED – when 'yes', then the files will be copied and a boot manager entry will be created
78 for the application (provided BINARY is also set)
79 * LABEL – label to use for the boot manager entry (defaults to the module name)
80 * BINARY – name of the EFI binary installed in /boot/efi/EFI/$PLATFORM_DIR or a
81 path to any EFI binary existing on the EFI system partition
82 * ARGS – command line arguments for the EFI application
83 * ARCH – architecture the binary is built for
85 The module may define more configurable variables, but should use own unique prefix for them.
87 The module file should also contain a install_files() function definition which defines
88 what files are to be installed on the EFI system partition.
90 It can contain any shell code, but should not define any new global variables. For
91 convenience following are defined:
93 * '$DESTDIR' variable – defines the directory where the files should be copied to
94 that will be /boot/efi/EFI/$PLATFORM_DIR
95 * 'update_file' function – copies a file to the EFI partition
98 update_file [--missingok] SOURCE DEST
101 SOURCE – absolute path to the file to be copied
102 DEST – destination file name. Absolute (but should be in
103 /boot/efi) or, preferably, Relative to $DESTDIR
104 --missingok – when used, he command will not complain when the SOURCE does not exist
106 update_file behaviour depends on the '--verbose' and '--force' options
107 passed to the efi-boot-update script.