osteffen/Grub2-BootLoaderSpec
Project ID: 73594
Description
Grub2 with some additions to make it more compatible with:
- the Boot Loader Specification,
most notably scanning for unified kernel images (UKI) in the EFI System Partition and
/boot
, - the Boot Loader Interface, providing basic support for systemd-gpt-auto-generator and the Discoverable Partitions Specification.
Additions:
- In EFI Mode
- Searches ESP and
$root
for unified kernel images (UKI) in\EFI\Linux
and adds them to the menu. - Set
LoaderDevicePartUUID
to the GPT partition GUID of the ESP. Can be used by systemd to discover and auto-mount partitions. - Set
LoaderInfo
to indicate Grub as the boot loader.
- Searches ESP and
- In BIOS Mode (i386-pc)
- Ability to load UKIs via the
linux
andinitrd
commands. - Discovery of ESP partition (in case running form a device with a GPT).
- Scanning of the ESP and
$root
for UKIs (in the usual locations:/EFI/Linux
and/boot/EFI/Linux
) - Auto-discovery of the root partition via partition type GUID in case the embedded cmdline of the UKI does not contain
root=...
.root=PARTUUID=....
is appended in that case.
- Ability to load UKIs via the
Source
- Dist-Git: https://src.fedoraproject.org/fork/osteffen/rpms/grub2
- Source: https://github.com/osteffenrh/grub2-blscfg
- Boot Loader Interface patches on the upstream mailing list: https://mail.gnu.org/archive/html/grub-devel/2023-01/msg00104.html
Current Status
It works, but needs cleanup.
Notes
Loading of UKI in EFI mode can be done with the chainloader
command. In BIOS mode, use the normal linux
and initrd
commads on the (same) UKI file.
I am thinking about unifying this by introducing a new command, let's say load_uki
for both EFI and BIOS mode.
Installation Instructions
Install grub2 from this repo instead. No further config needed to use it. UKIs on the ESP and the boot partition will be added to the menu.
Active Releases
The following unofficial repositories are provided as-is by owner of this project. Contact the owner directly for bugs or issues (IE: not bugzilla).
Release | Architectures | Repo Download |
---|---|---|
Fedora 40 | aarch64 (56)*, x86_64 (69)* | Fedora 40 (24 downloads) |
Fedora 41 | aarch64 (54)*, x86_64 (75)* | Fedora 41 (10 downloads) |
Fedora rawhide | aarch64 (136)*, x86_64 (218)* | Fedora rawhide (56 downloads) |
* Total number of downloaded packages.
Quick Enable
#> dnf copr enable osteffen/Grub2-BootLoaderSpec
More info about enabling Copr repositories