RFC: EFI System partition and native EFI binaries (xen.efi, vmlinuz.efi, etc)

Jacek Konieczny jajcus at jajcus.net
Mon Oct 29 13:50:39 CET 2012


Hi,

It seems I was too fast with my 'Xen boots from GRUB2 on EFI without
problems' statement… It seems Xen booted this way has some big problems
(only one CPU visible, invalid IRQ mapping, no ACPI, etc.)…

It seems, the right way to boot Xen is to compile Xen as an EFI binary
and run that directly from the UEFI firmware… I will try that, but this
already makes me wonder…

How should we handle such EFI binaries and EFI bootloader options in
PLD?

It is not only Xen. Linux kernel can also be compiled into an EFI binary
and could be booted without GRUB. All is needed is to write it to the
EFI system partition and make a bootloader entry with efibootmgr utility
or the UEFI firmware configuration interface…

The straight-forward way to do that would be to have the EFI system
partition mounted at /boot/efi and creat xen-efi and kernel-efi packages
which would put their files into /boot/efi/EFI/pld-linux/ directory and
update bootloader entries in %post… but…

1. how can we ensure the EFI system partition is mounted at /boot/efi
when the packages are installed? And the right one, in case multiple
disks with such partition are installed.
2. the EFI system partition is FAT32… that means case insensitive… Will
the EFI directory be /boot/efi/EFI, /boot/efi/Efi, /boot/efi/efi? Can
RPM handle such variations?
3. what if someone want to manage the bootloader entries manually?

The other option is to package the files in some other location
(/lib/efi?) and then copy them to the EFI partitions. It would be
similar to what GRUB does, but we probably want that unified somehow for
all packages that need that.

Create an efi-update script, that would copy the files from /lib/efi and
update the bootloader configuration?

But I don't want to create another monster like the infamous rc-boot…

Any thoughts? Does anybody know how other distros solve this problem?

Greets,
        Jacek


More information about the pld-devel-en mailing list