LinuxCommandLibrary

bootc

Manage and update operating system images

TLDR

Show deployments in the order they will appear in the bootloader

$ bootc status
copy

Check if any updates are available
$ bootc upgrade --check
copy

Prepare a new update and reboot into it
$ bootc upgrade --apply
copy

Change OS base to new container image
$ bootc switch [image]
copy

Reboot into the previous ostree deployment
$ bootc rollback
copy

Apply transactional changes to the system configuration
$ bootc edit
copy

SYNOPSIS

bootc [OPTIONS] <COMMAND> [<ARGS>...]

PARAMETERS

--help, -h
    Print help information

--version, -V
    Print version information

--json, -J
    Enable structured JSON output

DESCRIPTION

bootc manages Linux systems using OCI container images for the root filesystem, enabling atomic updates, rollbacks, and immutable deployments. The host runs as a container, pulled from registries like quay.io or GitHub Container Registry. It maintains multiple boot environments: currently booted, staged (pending), and history. Updates are staged first for verification before deployment.

Key features include integration with systemd-boot or EFI stubs for A/B booting, automatic verification via image digests, and compatibility with tools like podman. Designed for distros seeking Silverblue-like experiences without layering, bootc supports declarative OS definitions via image tags/refs. It requires a bootc-enabled kernel (6.11+) and configured bootloader. Usage simplifies fleet management, upgrades, and experimentation with zero-downtime staging.

Typical workflow: bootc status checks deployments, bootc fetch <ref> stages updates, bootc deploy activates.

CAVEATS

Requires bootc-patched kernel (v6.11+), systemd-boot or compatible EFI setup, and /var configured for container storage. Not suitable for non-bootc systems; may conflict with traditional package managers.

COMMON SUBCOMMANDS

status: Show boot/staged/pending deployments
update: Fetch, stage, and deploy latest pinned image
fetch <ref>: Stage new image by reference
deploy: Activate staged deployment
rollback: Revert to previous deployment
pin <ref>: Pin default update target

IMAGE REFERENCES

Use tags like quay.io/ublue-os/sericea:stable or digests. Supports local images via image:oci:/path.

HISTORY

Developed by Collabora starting 2023 for container-native OSes. Integrated experimentally in Fedora 41 (2024), inspired by rpm-ostree but OCI-focused. Rapid evolution with v1.0+ stabilizing core daemon and CLI.

SEE ALSO

podman(1), rpm-ostree(1), ostree(1), systemd-boot(7)

Copied to clipboard