Encrypted installs cannot unlock root in the initramfs #23
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#23
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
GRUB is wired to unlock LUKS (
GRUB_ENABLE_CRYPTODISK=y, cryptodisk modules ingrub-install), and theencrypt/sd-encrypthook is added to mkinitcpio. But nothing tells the initramfs which device to open:cryptdevice=(udevencrypthook) orrd.luks.uuid=(systemdsd-encrypt) is ever written toGRUB_CMDLINE_LINUX/etc/crypttab.initramfsis writtengrubcfgmodule, which normally adds these, is deliberately not insettings.conf's exec sequence, andluksbootkeyfileis missing toogrep -rn 'cryptdevice\|rd.luks\|crypttab\|keyfile' iso scriptsreturns nothing. The site claims the encryption wiring means "it actually boots".Where
iso/airootfs/etc/calamares/post-install.shlines 11-22 (detection), 139-148 (hook), 166-175 (GRUB), 197-220 (grub-install / mkconfig)iso/airootfs/etc/calamares/settings.confexec sequenceFix
lsblk -no PKNAME "$ROOT_SRC", then runcryptsetup luksUUIDon it.ENCRYPT_HOOK:encrypt: addcryptdevice=UUID=<luks-uuid>:<mapper-name>toGRUB_CMDLINE_LINUXsd-encrypt: addrd.luks.name=<luks-uuid>=<mapper-name>(or write/etc/crypttab.initramfs)root=points at the unlocked mapper (/dev/mapper/<name>), or that grub-mkconfig's UUID resolves after unlocking.dd bs=512 count=4 if=/dev/random), add it withcryptsetup luksAddKey, put it inFILES=in mkinitcpio.conf with mode 0600, and passcryptkey=rootfs:/crypto_keyfile.bin(udev), or reference it in crypttab.initramfs (systemd). Alternatively add Calamares'luksbootkeyfilemodule to the exec sequence and check what it writes.mkinitcpio -P(line 179) andgrub-mkconfig.Acceptance
scripts/smoke-test.shchecks, when root iscrypt, that/proc/cmdlinecontainscryptdevice=orrd.luks.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 (commented shell, per-step
WARN:, idempotent steps). Verify withFAST_BUILD=1 sudo ./build-local.shplus QEMU/OVMF (UEFI) and SeaBIOS (BIOS) VM installs where relevant; encryption needs an OVMF VM. Add a CHANGELOG[Unreleased]entry.PR opened: #53
Calamares now creates and registers the boot keyfile before fstab, and encrypted root is configured in mkinitcpio before initramfs generation. Bash syntax, Calamares YAML parsing, diff checks, and the FAST_BUILD ISO build passed. The build had an existing nbd-client initramfs hook warning but completed. UEFI and BIOS encrypted VM install/boot checks have not been run, so this issue remains in doing pending that validation.
Review outcome: acceptance is not yet verified, so PR #53 is blocked and BOS-23 should remain DOING while boot validation is active.
Acceptance interpretation:
cryptdevice=orrd.luks.name=parameter.The diff maps the setup to
settings.conf:34-47,prepare-encrypted-root.sh:31-64, andpost-install.sh's encrypted GRUB parameter block.scripts/smoke-test.sh:116-122checks the boot parameter. The reported FAST_BUILD ISO and this command-line check do not establish that either UEFI or BIOS unlocks root successfully, or that UEFI prompts only once. Please record successful encrypted Erase disk installs and boots to breadgreet on both firmware modes, including the GRUB prompt behavior, before moving this issue to review/done.Current PR metadata also reports
mergeable: false; the commit status endpoint has no recorded statuses.Independent review of PR #53 found the code path covers the planned GRUB unlock configuration, but acceptance is still unverified: fresh encrypted UEFI and BIOS installs must prompt once, unlock root, and reach breadgreet. The smoke test only checks the kernel command line. Forgejo also reports the PR is not mergeable. No test run is currently active, so returning BOS-23 to TODO until VM evidence and mergeability are addressed.
Updated existing PR #53 branch with current
origin/main(5ae8040), producing head49bb927f8aa80d4671aa7a7fd40af378e1a0e32d. Shell syntax, static encrypted-root wiring checks, and merge-diff whitespace checks pass. BOS has no ordinary-push CI configured. UEFI and BIOS encrypted Calamares installs and boot-to-breadgreet checks remain unrun. Root directed no further guest input and no additional VM, so this acceptance cannot be completed in the current run. Returning BOS-23 to TODO pending those exact checks.PR #53 has the implementation and static wiring checks recorded on the rebased head. Fresh encrypted UEFI/BIOS Calamares installs and boot-to-breadgreet 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.