Skip to content

install: Add discoverable-partitions config option#2123

Open
cgwalters wants to merge 3 commits intobootc-dev:mainfrom
cgwalters:topic/bli-detection
Open

install: Add discoverable-partitions config option#2123
cgwalters wants to merge 3 commits intobootc-dev:mainfrom
cgwalters:topic/bli-detection

Conversation

@cgwalters
Copy link
Copy Markdown
Collaborator

Right now we default to DPS for composefs + systemd-boot.

In Fedora 43+, GRUB has the bli module and supports this, so it can be used there.

Make this configurable (mainly intended for base image builders) so that those with new enough GRUB can flip it on by default.

We had a hacky thing here that removed the auto-injected root= arg if we detected composefs + sdboot; that can now instead flip on this flag, and then we ensure we don't inject it at all.

Assisted-by: OpenCode (Claude Opus 4)

The upgrade test image (localhost/bootc-upgrade) was previously a simple
one-layer addition on top of localhost/bootc that did not go through the
sealing pipeline. This meant sealed composefs builds could not properly
test upgrades, since the upgrade image lacked a signed UKI with the
correct composefs digest.

Rework Dockerfile.upgrade into a multi-stage build that mirrors the main
Dockerfile sealing flow: when boot_type=uki, it computes the composefs
digest of the upgrade rootfs, generates and optionally signs a UKI via
seal-uki, and finalizes it with finalize-uki. For non-UKI builds, the
extra stages are effectively no-ops and the image remains a simple
derived layer.

Update _build-upgrade-image in the Justfile to pass the required build
arguments (boot_type, seal_state, filesystem) and build secrets
(secureboot keys). Extra container capabilities (CAP_ALL, fuse device)
are only added for UKI builds that need composefs support.

Assisted-by: OpenCode (claude-opus-4)
Signed-off-by: Colin Walters <walters@verbum.org>
The goal is ensuring we have upgrade coverage also for sealed UKIs;
most of the other update code paths (because tmt doesn't make it easy
to have a registry) do on-machine synthetic updates.

Assisted-by: OpenCode (claude-opus-4)
Signed-off-by: Colin Walters <walters@verbum.org>
@github-actions github-actions bot added area/install Issues related to `bootc install` area/documentation Updates to the documentation labels Apr 3, 2026
@bootc-bot bootc-bot bot requested a review from jmarrero April 3, 2026 14:56
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces support for the Discoverable Partitions Specification (DPS) for root partition discovery. It adds a new discoverable-partitions configuration option that, when enabled, omits the root= kernel argument, allowing systemd-gpt-auto-generator to locate the root partition via its DPS type GUID. This feature is enabled by default for systemd-boot and can be configured for GRUB builds that include the Boot Loader Interface (BLI) module. Feedback was provided regarding the use of println! for logging within library code, suggesting a transition to the tracing crate for better consistency with the rest of the codebase.

Right now we default to DPS for composefs + systemd-boot.

In Fedora 43+, GRUB has the `bli` module and supports this,
so it *can* be used there.

Make this configurable (mainly intended for base image builders)
so that those with new enough GRUB can flip it on by default.

We had a hacky thing here that removed the auto-injected `root=`
arg if we detected composefs + sdboot; that can now instead
flip on this flag, and then we ensure we don't inject it
at all.

Assisted-by: OpenCode (Claude Opus 4)
Signed-off-by: Colin Walters <walters@verbum.org>
@cgwalters cgwalters force-pushed the topic/bli-detection branch from f4cddb4 to cb07c2e Compare April 3, 2026 15:16
@jmarrero
Copy link
Copy Markdown
Contributor

jmarrero commented Apr 4, 2026

looks like the CI failures here are the merge conflict.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/documentation Updates to the documentation area/install Issues related to `bootc install`

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants