bazzite¶
"Bazzite is a custom Fedora Atomic image built with cloud native technology that brings the best of Linux gaming to all of your devices - including your favorite handheld." - https://bazzite.gg
Bazzite is based on the Fedora Universal Blue architecture, which has several remixes.
Thoughts on the Universal Blue architecture¶
Fedora Universal Blue has a significantly different OS lifecycle than traditional linux distro in that it uses OCI containers for its base OS, and most application installations happen outside of the system space, in flatpak, or in user space. This can be a polarizing characteristic because it violates so much precedent and built up intuition about how a linux installation should behave, while at the same time it introduces some undeniable quality of life improvements.
The idea that applications live in user-space and elevated privileges are not needed to install them is great for security, and potentially for user data portability. Also, the separation of the OS files and update lifecycle into a separate layer from applications does offer a lot of neat aspects, like being able to rebase your OS underneath your user data, and of course being able to roll back to prior versions.
Installing apps in flatpak and distrobox is a big change from classic deb and rpm distros, and may consume significantly more disk space while also having an inferior or awkward application lifecycle and configuration system.
Notes¶
Based on https://universal-blue.org, "The Universal Blue project builds a diverse set of continuously delivered operating system images using bootc. That's nerdspeak for the ultimate Linux client: the reliability of a Chromebook, but with the flexibility and power of a traditional Linux desktop." The base OS is an OCI image, and any customizations that happen to the OS are done in the local filesystem that is layered on top of the base OS.
Notable, the base OS images are only hosted for 90 days, after which they are deleted.
OS operations are done through a custom just script called ujust which is just a just wrapper pointing to a specific configuration.
Network configuration is done through nmcli
Examples¶
Upgrade the OS¶
Show cached boot images¶
Using -v shows the index. IMHO this should be a default behavior.
$ rpm-ostree status -v
State: idle
AutomaticUpdates: disabled
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable (index: 0)
Digest: sha256:d63c82406dfb8c0dbd451b579150175fad27a39f9a835f4811d00906b61853b8
Version: 43.20260420 (2026-04-20T05:55:43Z)
Commit: e8d116a6e63e56f3be335296ee4b91f1807afc8e79fe135d6fcdc7f3375f227a
Staged: no
StateRoot: default
ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable (index: 1)
Digest: sha256:1fc15e091b0b668023588ab271a96b90433562bf882fb091888b621dec91496e
Version: 43.20260313 (2026-03-13T08:13:14Z)
Commit: cc9391370e00f3ef7bb8685993e56a0c5d5377fc32b3169b8da906209ee02a4c
StateRoot: default
Pin a boot image¶
This is useful if you want to try rebasing without the risk of losing your previous working base image.
Rebase¶
Rebasing can be done interactively with brh, or with a command like:
Links¶
- https://bazzite.gg
- https://universal-blue.org is the foundation for Bazzite.
- https://coreos.github.io/rpm-ostree