summaryrefslogtreecommitdiff
path: root/Software/systemd/BootLoaderInterface.mdwn
blob: 319ddb08a1f413f3bc965e862f9e3edb101231eb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[[Back to systemd|http://www.freedesktop.org/wiki/Software/systemd/]] 


-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------


# This page is obsolete.
## Current version is at [[https://systemd.io/BOOT_LOADER_INTERFACE]].


-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------

# Boot Loader Interface

systemd can interface with the boot loader to receive performance data and other information. This is only supported on EFI systems. Data is transferred from the boot loader to systemd in EFI variables. All EFI variables use the vendor UUID `4a67b082-0a4c-41cf-b6c7-440b29bb8c4f`. 

* The EFI Variable **LoaderTimeInitUSec** contains the timestamp in microseconds when the loader was initialized. This value is the time spent in the firmware for initialization, it is formatted as numeric, decimal string, in UTF-16. 
* The EFI Variable **LoaderTimeExecUSec** contains the timestamp in microseconds when the loader finished its work and is about to execute the kernel. The time spent in the loader is the difference between `LoaderTimeExecUSec` and `LoaderTimeInitUSec`. This value is formatted the same way as `LoaderTimeInitUSec`. 
* The EFI variable **LoaderDevicePartUUID** contains the partition GUID of the ESP the boot loader was run from formatted as UTF16 string, in normal GUID syntax. 
If `LoaderTimeInitUSec` and `LoaderTimeExecUSec` are set, `systemd-analyze` will include them in its boot-time analysis.  If `LoaderDevicePartUUID` is set, systemd will mount the ESP that was used for the boot to /boot, but only if that directory is empty otherwise, and only if no other file systems are mounted there via user mount units or `/etc/fstab`. 

This interface is currently implemented by <strike>Gummiboot</strike> sd-boot (see
[bootctl(1)](https://www.freedesktop.org/software/systemd/man/bootctl.html)).