Simple UEFI Boot Manager
Switch branches/tags
Clone or download
Pull request Compare This branch is 33 commits ahead of msekletar:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
project Synced with the latest sources from the 'systemd' project. May 26, 2018
samples/uefi_root/loader Added main project build script. Added sample configuration entries f… Dec 10, 2017
.gitignore Final preparations. Dec 10, 2017
LICENSE
README.md Updated the link to the latest published release. May 26, 2018
build_project.sh Prepared new release (26-May-2018) and added some useful automations … May 26, 2018
generate_mll_iso_32.sh
generate_mll_iso_64.sh
generate_release.sh
prepare_third_party_software.sh
qemu_uefi_32.sh
qemu_uefi_64.sh

README.md

systemd-boot

systemd-boot (previously known as gummyboot) is a simple UEFI boot manager. Its main job is to launch the selected boot menu entry. 'systemd-boot' leverages APIs provided by the UEFI and offloads all the heavy lifting to the firmware (e.g. loading files from disk, executing EFI images). This allows for very minimal implementation, but feature complete to support common usecases (desktop, laptop).

Precompiled 'systemd-boot' UEFI images and sample configuration files are available in the release section. The latest stable release is systemd-boot_26-May-2018. Each release contains the following artifacts:

  • UEFI compliant directory structure with general purpose 'systemd-boot' UEFI boot loader images for 'x86' and 'x86_64' architectures.
  • Sample configuration files for 'x86' and 'x86_64' machines which describe the boot entries for Minimal Linux Live.

The primary use case of this project is to provide precompiled general purpose 'systemd-boot' UEFI boot loader images which in turn support the UEFI boot process of Minimal Linux Live.

The raw source code, along with build documentation can be found in the project folder. Most probably you don't need it, unless you really want to build 'systemd-boot' from scratch.

The shell scripts in the main folder rely on the precompiled binaries and on other third party software. You don't need these scripts, nor you need the third party software, unless you want to build custom Minimal Linux Live ISO image which boots on UEFI systems. This serves as proof of concept that the precompiled binaries work fine.

How to use

Good documentation regarding 'systemd-boot' can be found here:

The helper scripts in the main folder do the following:

  • Download and prepare third party software dependencies, e.g. the precompiled UEFI boot loader images, OVMF images, Syslinux, sample kernel/initramfs files, etc.
  • Genrate sample 'El Torito' boot image as described in UEFI sepcification 2.7, sections 13.3.1.x and 13.3.2.x.
  • Generate sample ISO image with UEFI boot support.
  • Run QEMU with UEFI enabled configuration and attached sample ISO image.

Note that you need QEMU on your system in order to test the sample ISO images. You can install it like this (Ubuntu):

  • sudo apt install qemu

Please consider all helper scritps just as helper scripts. You can use them to gain some more knowledge about the 'systemd-boot' UEFI boot loader insfrastructure and how to create UEFI compatible ISO images.