[Git-commits] [grml/grml-live] c5af17: Refresh Secure Boot support, supporting new 'debia...
Michael Prokop
noreply at github.com
Thu Jun 18 00:48:50 CEST 2020
Branch: refs/heads/mika/secureboot-working
Home: https://github.com/grml/grml-live
Commit: c5af178f9fe777ce51ea3b1490cd96ac9c6fa6c8
https://github.com/grml/grml-live/commit/c5af178f9fe777ce51ea3b1490cd96ac9c6fa6c8
Author: Michael Prokop <mika at grml.org>
Date: 2020-06-18 (Thu, 18 Jun 2020)
Changed paths:
M etc/grml/grml-live.conf
M grml-live
R templates/EFI/BOOT/README
R templates/EFI/BOOT/grubx64.efi.signed
R templates/EFI/BOOT/shimx64.efi.signed
A templates/EFI/debian/BOOT/README
A templates/EFI/debian/BOOT/grubx64.efi.signed
A templates/EFI/debian/BOOT/shimx64.efi.signed
A templates/EFI/ubuntu/BOOT/README
A templates/EFI/ubuntu/BOOT/grubx64.efi.signed
A templates/EFI/ubuntu/BOOT/shimx64.efi.signed
R templates/boot/grub/grmlenv.cfg
M templates/secureboot/grub.cfg
Log Message:
-----------
Refresh Secure Boot support, supporting new 'debian' method
Secure Boot mode wasn't reliably working (e.g. failing to boot in EFI
mode without Secure Boot being present) and hard to debug.
Now with our move from our own Grml kernel packages to the official
Debian kernel ones (which are signed and intended for usage with enabled
Secure Boot) it makes sense to support a proper Secure Boot chain
without hacks like we used (relying on and old GRUB binary from Ubuntu
which supported booting unsigned kernels).
We do NOT enable Secure Boot support by default *yet* though, since we
need to get more testing of this and we're in the middle between an RC
version (2020.06-rc1) and the upcoming new stable version of Grml.
Relevant changes:
* minimize templates/secureboot/grub.cfg: while it's certainly nice
to display only the entries that are actually working under Secure Boot,
it's annoying to have to maintain yet another place of boot menus.
Also if something fails with detection of Secure Boot then it's annoying
to have to debug this, instead let's display an error message and inform
the user about it and ask for debugging information
* move templates/EFI/BOOT towards templates/EFI/ubuntu/BOOT/ to be able
to support debian and ubuntu methods at the same time
* ship GRUB binaries in templates/EFI/debian/, similar to the ones in
templates/EFI/ubuntu
* switch Ubuntu's grubx64.efi.signed from grubx64.efi.signed to gcdx64.efi.signed;
they differ in what GRUB's $prefix variable is set to:
* gcdx64.efi.signed uses boot/grub/
* grubx64.efi.signed uses EFI/ubuntu/
-> the code in grml-live itself was adjusted accordingly and this also
enables us to generalize the Secure Boot methods debian + ubuntu to
use the same code path
* drop templates/boot/grub/grmlenv.cfg: depending on the GRUB version
being used the behavior is different and we switched from cpuid to
probe in the past already, while even probe isn't always reliable
to identify whether we're running under Secure Boot or not.
This is non-obvious and hard to debug and also adds another
indirection, so let's get rid of grmlenv.cfg.
FTR, instead of "if probe ; then ..." we could check for the
the return code using "probe; if [ $? = 30 ]; then"... when running
under Secure Boot, since loading additional modules is forbidden there
and will return with exit code 30 then. This behavior depends on
the GRUB version though, so if at all this needs to be handled in
custom templates.
* mention secure boot method in execution prompt/summary
* update etc/grml/grml-live.conf to properly reflect current state of
Secure Boot support
This work was funded by Grml-Forensic.
More information about the Git-commits
mailing list