Secure Boot enrollment produces a GRUB that refuses to boot #24
Labels
No labels
P0
P1
P2
P3
audio
bakery
boot
breadbug
bug
build
ci
dependencies
design
disk
docs
encryption
final
firewall
graphics
hardware
idle
installer
keybinds
nvidia
packages
phase-1
polish
recovery
reliability
reproducibility
secure-boot
security
shell
signing
snapshots
supply-chain
swap
tech-debt
theming
ux
website
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Breadway/bos#24
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
When the firmware is in Setup Mode, post-install runs
sbctl create-keys && sbctl enroll-keys --microsoft && sbctl sign-all -g. But GRUB was installed (lines 201-206) without--disable-shim-lock,--sbator built-in modules. Under Secure Boot without shim, upstream GRUB's shim_lock verifier rejects the kernel ("prohibited by secure boot policy") and won'tinsmodunsigned modules from/boot/grub/x86_64-efi/. So the enrolled path, the only path that sets Secure Boot up at all, most likely ends in an unbootable system. The kernel at/boot/vmlinuz-linuxalso needs to be in sbctl's database so its pacman hook re-signs it.Where
iso/airootfs/etc/calamares/post-install.shlines 197-220 and 236-247.Fix
SETUP_MODEbefore grub-install), install GRUB with--disable-shim-lock --sbat /usr/share/grub/sbat.csv --modules="<all needed: part_gpt part_msdos btrfs fat all_video gfxterm tpm cryptodisk luks luks2 gcry_* normal search ...>", following the Arch Wiki's "Unified Extensible Firmware Interface/Secure Boot" GRUB section.sbctl sign -seach ofEFI/BOS/grubx64.efi,EFI/BOOT/BOOTX64.EFIand/boot/vmlinuz-linux, so they're saved in sbctl's database for the hook.Acceptance
sbctl statusshows Secure Boot enabled with all files signed.pacman -S linuxafterwards: it still boots (the pacman hook re-signs).Source: BOS v0.6.2 source review (tag dated 2026-09-19); paths and line numbers refer to that tree. Read AGENTS.md first. One issue per branch/PR, match existing style. Verify with
FAST_BUILD=1 sudo ./build-local.shplus an OVMF VM with a Setup-Mode varstore (freshOVMF_VARScopy per test). Add a CHANGELOG[Unreleased]entry.PR: #54
Implemented Setup Mode GRUB installation with shim-lock disabled, SBAT metadata, built-in modules, and saved signatures for both EFI GRUB binaries and
/boot/vmlinuz-linux.bash -n,git diff --check, GRUB option inspection, EFI image generation with the configured modules, andFAST_BUILD=1ISO build passed. The build reported its existingnbd-clientinitramfs hook warning.The installed-OS acceptance checks remain outstanding: this ISO has not been installed in a fresh Setup Mode OVMF VM, Secure Boot has not been enabled to confirm the installed system boots, and
pacman -S linuxhas not been run to confirm the sbctl hook re-signs the kernel and it still boots. Leaving this issue in DOING until those checks are completed.Independent review of PR #54 found the Setup Mode GRUB flags and signatures present. Acceptance remains unverified: fresh Setup Mode OVMF boot with Secure Boot enabled,
sbctl status, and a post-pacman -S linuxreboot. Forgejo reports the PR is not mergeable. No VM validation is currently active, so returning BOS-24 to TODO.Updated existing PR #54 with current
origin/main(5ae8040), resolving theCHANGELOG.mdoverlap by preserving both entries. Head is1333dbe78b674f1ac8e9446ebd7a6041c3f56475.bash -n, static Setup Mode GRUB/signing checks, and PR-diff whitespace checks pass. BOS has no ordinary-push CI configured. Fresh Setup Mode OVMF installation, Secure Boot enabled boot,sbctl status, and post-pacman -S linuxreboot remain unverified. Root directed no further guest input and no additional VM, so returning BOS-24 to TODO pending those checks.PR #54 has the implementation and static GRUB/signing checks recorded on the rebased head. Fresh Setup Mode OVMF install, Secure Boot boot, sbctl status, and post-kernel-update boot acceptance remain outstanding; BOS has no ordinary push CI. Moving the implementation to REVIEW for the requested handoff. Do not treat as verified or done until those acceptance checks are recorded.