How bootc updates work
bootc (Boot Container) is an image-based update system that treats your operating system as an immutable container image:- Your system boots from a container image stored in
/usr/lib/bootc - Updates download new container images without modifying your running system
- Each update creates a new deployment that you boot into after restarting
- Previous deployments are kept for easy rollback
- All changes are atomic - either fully applied or not at all
Zirconium is configured to automatically stage updates weekly. Updates are downloaded and prepared but won’t take effect until you reboot.
Checking for updates
To check if updates are available:- Your current deployment version
- Available updates
- Staged updates (if any)
- Previously booted deployments
Applying updates
Zirconium automatically checks for updates weekly using a systemd timer (bootc-fetch-apply-updates.timer). Updates are staged automatically but require a reboot to take effect.
Manually update your system
To manually fetch and stage updates:This downloads the latest Zirconium image and stages it for the next boot.
Rolling back updates
If an update causes issues, you can easily roll back to a previous deployment.List available deployments
View all bootable deployments:Look for the “Staged” and “Rollback” deployments in the output.
Roll back at boot
During system boot, the GRUB bootloader shows a menu. Select the previous deployment to boot into the older version.
Update frequency and release channels
Zirconium follows a continuous delivery model:- Update frequency: Automatic checks run weekly (configured in
bootc-fetch-apply-updates.timer) - Release channel:
latest- receives all updates as they’re published - Container registry:
ghcr.io/zirconium-dev/zirconium:latest(orzirconium-nvidia:latest)
Understanding the update policy
Zirconium is configured withAutomaticUpdatePolicy=stage in /etc/rpm-ostreed.conf, which means:
- Updates are automatically downloaded and staged
- Updates are not automatically applied (no automatic reboots)
- You control when to reboot and apply updates
Checking which image you’re running
To see your current Zirconium image:- Base image:
ghcr.io/zirconium-dev/zirconium:latestorzirconium-nvidia:latest - Image digest: A unique hash identifying the exact build
- Build date: When the image was created