Bazzite is the Linux gaming operating system that turned “install SteamOS on anything” from a hacky workaround into an officially supported, one-click download. Built by the Universal Blue community on top of Fedora’s atomic desktop stack, Bazzite now ships in six image variants covering everything from AMD desktops to Nvidia laptops to Steam Deck-style handhelds. This tutorial walks through the entire process — from checking hardware compatibility to enrolling Secure Boot keys to configuring Steam and Proton — in 13 steps, using only commands and settings confirmed against Bazzite’s own documentation.

What Is Bazzite, and Why Are Gamers Switching to It?

Bazzite is a custom Linux image built on Fedora Atomic Desktops (the immutable-OS lineage formerly known as Silverblue/Kinoite), maintained by the Universal Blue open-source community, as detailed on its Wikipedia entry. Instead of a traditional package-based install where any update can leave the system in an inconsistent state, Bazzite ships the entire operating system as a single signed container image. Updates are applied atomically, and if one goes wrong, the previous working version is still sitting in the boot menu, ready to roll back to in seconds. That design, borrowed directly from Valve’s own SteamOS 3, is the single biggest reason system administrators and security-conscious users have taken an interest in what started as a hobbyist gaming distro.

The project entered general availability in November 2023 as a Fedora 38-based image and has tracked Fedora’s release cycle ever since; the current line is built on Fedora 44, with new dated image builds published on a near-daily basis (the project’s GitHub tags show fresh test builds like 44.20260730 and 44.20260731 landing within hours of each other). According to a build note published by LinuxCompatible, the mid-July stable image bumped the kernel from 7.0.9 to 7.1.3 and refreshed Mesa to 26.1.4, specifically to improve handheld GPU and controller support — following on from the April 2026 release that GamingOnLinux called “a big release” for desktop gamers specifically. Bazzite is licensed under the Apache License 2.0 and, per the live GitHub repository, has accumulated 8,866 stars and over 1,000 forks — a large jump from the low thousands it had just a year earlier.

What makes Bazzite different from just “Fedora with Steam pre-installed” is everything bundled and pre-configured out of the box: Steam with Proton, Lutris, MangoHud, vkBasalt, OBS with VkCapture, and Waydroid all ship ready to use, and a dedicated Steam Gaming Mode image variant boots straight into a console-style interface for handhelds and HTPCs. A newer addition, the graphical Bazzite Portal app, now wraps most of the command-line ujust maintenance scripts in a point-and-click settings panel — lowering the barrier for users who want Bazzite’s stability without living in a terminal. The pillar page for this site’s broader gaming coverage has more on how Bazzite compares to Valve’s own SteamOS and to other community distros like Nobara.

AttributeDetail
DeveloperUniversal Blue community
Based onFedora Atomic Desktops (Fedora 44)
First releasedNovember 2023
Current image track44.2026xxxx (daily rolling builds)
LicenseApache License 2.0
GitHub stars8,866 (ublue-os/bazzite, live count)
PriceFree and open source
Default desktopKDE Plasma (GNOME also offered)
Official image variants6
Minimum RAM8 GB

Prerequisites: What You’ll Need Before You Start

Bazzite’s own documentation is explicit about what has to be in place before you start, and skipping any of these is the single biggest source of failed installs reported in its community forums. Gather everything below first.

  • A PC or handheld with a 2 GHz+ quad-core x86-64 CPU, 8 GB+ RAM, and a Vulkan 1.3-capable GPU (AMD and Intel Arc are best-supported; Nvidia works but with documented caveats, especially in Steam Gaming Mode)
  • A 16 GB or larger USB flash drive dedicated to the installer (it will be wiped)
  • A second device to download the ISO and read this guide from, or a printed copy of the key steps
  • balenaEtcher, Rufus, or Fedora Media Writer to flash the ISO — Fedora Media Writer is the option Bazzite’s own docs recommend first
  • A full backup of any personal files on the target drive — the installer will erase the selected disk
  • A stable internet connection (not required for the install itself, but needed immediately after for the first update)
  • A physical USB keyboard if you plan to enable disk encryption or Secure Boot, since the enrollment prompts don’t support on-screen keyboards
  • 10-15 GB of free space in your Windows partition if you’re setting up a dual-boot instead of a clean install

None of this requires paid software. Every tool listed above — the flashing utilities, Bazzite itself, and every package it installs — is free and open source, which matters for a security-focused readership evaluating supply-chain trust as much as cost.

Step 1: Check System Requirements and Hardware Compatibility

Before downloading anything, confirm your hardware actually clears Bazzite’s minimums. Per the official Hardware Compatibility for Gaming page, the baseline is modest by 2026 standards, but two requirements trip up more installs than the rest combined: UEFI firmware (the installer refuses to run under legacy BIOS/CSM boot) and a GPT-partitioned disk (an MBR-partitioned drive will fail during partitioning). If your target drive currently holds an older Windows install, it may still be MBR-formatted — Microsoft publishes a free MBR-to-GPT conversion tool if you need to convert without wiping data first.

ComponentMinimum Requirement
FirmwareUEFI (CSM/Legacy boot unsupported)
CPU2 GHz quad-core or better, x86-64 architecture only
RAM8 GB
GPUVulkan 1.3 or higher
Storage (minimum)50 GB free on an internal SSD
Storage (recommended)120 GB free on an internal SSD
Disk partition tableGPT (MBR is unsupported)
Steam Gaming Mode GPUAMD RX 400-series+ or 600M/700M iGPU; Nvidia and Intel Arc work with documented caveats

If you’re not sure whether your GPU meets the Vulkan 1.3 bar, you can check from inside any existing Linux live session (including the Bazzite installer’s own live environment, covered in Step 5) with a single command, which you’ll use again later to confirm the install worked:

vulkaninfo | grep 'Instance Version'

Example output on a supported card looks like this — anything below 1.3 means you’ll need the DXVK-Sarek workaround covered later in the Troubleshooting section:

Instance Version: 1.3.296

Also worth checking now: secondary drives you intend to store games on must eventually be formatted as BTRFS or Ext4 — Bazzite does not auto-mount NTFS, exFAT, or FAT32 volumes, which is a common surprise for anyone bringing over a drive from a Windows PC.

Step 2: Choose the Right Bazzite Image for Your Hardware

Bazzite ships six official image variants rather than one universal ISO, and picking the wrong one is the most common regret first-time installers report — usually GPU driver mismatches from grabbing a plain AMD/Intel image on an Nvidia machine. The split exists because Nvidia’s proprietary driver has to be baked directly into the image; there’s no clean way to “add Nvidia support” after the fact the way you might install a driver package on a traditional distro.

ImageDesktopBest For
bazziteKDE PlasmaAMD or Intel desktops and laptops
bazzite-nvidiaKDE PlasmaDesktops and laptops with Nvidia GPUs
bazzite-gnomeGNOMEAMD/Intel systems, for GNOME users
bazzite-gnome-nvidiaGNOMENvidia systems, for GNOME users
bazzite-deckKDE Plasma + Steam Gaming ModeSteam Deck, ROG Ally, Legion Go, other handhelds, HTPCs
bazzite-deck-gnomeGNOME + Steam Gaming ModeHandhelds/HTPCs where you prefer GNOME as the desktop session

The -deck images are not exclusive to Valve’s hardware — they’re the right pick for any handheld, including an ASUS ROG Ally or Lenovo Legion Go, or even a living-room HTPC, because Steam Gaming Mode is designed around controller navigation from the moment it boots. Regular desktop and laptop users should stick with the plain bazzite or bazzite-nvidia images and treat Steam Gaming Mode as an optional session they can still launch from the desktop later. Bazzite’s official download page walks through this exact choice with a hardware-and-GPU picker if you’d rather answer a few questions than read a table.

Step 3: Download the ISO and Verify Its SHA256 Checksum

Download your chosen image from bazzite.gg. Every ISO ships alongside a published SHA256 checksum, and verifying it before you flash anything is not optional if you take supply-chain integrity seriously — a corrupted or tampered download can produce an installer that appears to work but fails unpredictably later, which is a much harder problem to diagnose after the fact than a five-second hash check up front.

sha256sum bazzite-*.iso

Compare the output against the checksum published on the download page for that exact build. They must match character-for-character:

a1b2c3d4e5f678901234567890abcdef1234567890abcdef1234567890abcd  bazzite-44.20260713.iso

If a download manager reports the transfer failed partway or the hash doesn’t match, delete the file and download again rather than trying to flash it anyway — Bazzite’s own installer requirements page flags a slow or interrupted direct download as a known issue and specifically recommends a download manager like Motrix for unreliable connections.

Step 4: Create a Bootable USB Drive

With a verified ISO in hand, flash it to your 16 GB+ USB drive. Bazzite’s documentation recommends Fedora Media Writer first (available for Windows, macOS, and Linux), with Rufus as the Windows-only alternative and Ventoy as a multi-ISO option — though Ventoy needs extra manual steps to support Secure Boot, so first-time installers are better off with Fedora Media Writer or Rufus. On Linux, the dd command works directly from a terminal:

sudo dd if=bazzite-44.20260713.iso of=/dev/sdX bs=4M status=progress oflag=sync

Replace /dev/sdX with your actual USB device path (check with lsblk first) — dd will silently overwrite whatever disk you point it at, including your main drive if you get the device letter wrong. This is the step where more data has been accidentally destroyed across the Linux-installer ecosystem than any other, so double-check the device path before pressing Enter. Once the flash finishes, safely eject the drive before unplugging it.

Step 5: Back Up Your Data and Boot the Installer

Bazzite’s installer will erase whatever drive you select in the partitioning step, so back up anything on that drive you’re not prepared to lose before going further — there is no undo once partitioning is confirmed. With your data safely backed up, plug in the USB drive and boot into it. On a standard desktop or laptop, this usually means pressing a function key like F9, F11, or F12 during startup to open a one-time boot menu, though the exact key depends on your motherboard vendor — check your manual or search your model online if the on-screen prompt flashes by too fast to read.

On a handheld, the sequence is different and worth memorizing: hold Volume Down and press the Power button together, then release both as soon as you hear the boot chime. That drops you into the device’s boot manager, where you select the USB drive to launch the Bazzite installer. Once booted, you’ll land in a live desktop session — a good opportunity to confirm the UI looks right, but the project’s own docs caution against judging gaming performance from this environment, since the live session runs a different, more limited kernel than a proper installation.

Step 6: Partition the Disk or Configure Windows Dual-Boot

From the live desktop, launch the Bazzite installer and step through language, region, and keyboard layout selection. The partitioning screen is the point of no return: whichever drive you select here will be completely wiped, so triple-check you’ve picked the right one, especially on systems with multiple internal drives.

If you’re installing it as the only OS, choose automatic partitioning on your target drive and move on. If you want to keep Windows alongside Bazzite, the live ISO only supports automatic partitioning for dual-boot — manual partitioning requires downloading the separate Legacy ISO instead. For a shared-drive dual-boot, first boot into Windows and disable BitLocker and Fast Startup, then use Windows’ Disk Management tool to shrink the Windows partition and free up space for Bazzite. Boot back into the Bazzite installer, choose automatic partitioning, and after the install finishes, run one command to make Windows show up in the boot menu:

ujust regenerate-grub

A cleaner alternative, when you have a second drive available, is installing it entirely on its own disk and switching between operating systems via your motherboard’s UEFI boot menu — the docs call this the recommended approach whenever a dedicated drive is an option, since it sidesteps a documented upstream installer bug where the “format as EFI” dual-boot option actually just adds Bazzite to the existing Windows EFI partition rather than reformatting it.

Step 7: Run the Anaconda Installer and Create Your Account

Bazzite uses Fedora’s Anaconda installer under the hood. After partitioning, you’ll optionally be offered full-disk encryption via LUKS — worth enabling if you’re installing on a laptop that could be lost or stolen, though it does require a physical USB keyboard to enter the decryption password on every boot, and Bazzite’s docs are blunt that there’s no recovery path if you forget that password: the data is permanently gone.

Next, create your username and password. This same password doubles as your administrative (sudo) credential, so pick something you’ll actually remember — Bazzite’s own guidance specifically flags this as a common self-inflicted lockout, and recommends against enabling a separate root account at all. Review the installation summary screen carefully, since this is your last chance to catch a wrong-drive mistake before Anaconda starts writing to disk. Confirm, and let the installer run; on modern SSD hardware this typically finishes in under 10 minutes.

Step 8: Reboot and Enroll the Secure Boot Key

Reboot and remove the USB drive once the system starts powering back up. If Secure Boot is enabled in your firmware, Bazzite will not boot until you enroll Universal Blue’s signing key — this is the step most first-time installers skip, and the resulting error message looks alarming even though the fix is quick:

error: ../../grub-core/kern/efi/sb.c:182:bad shim signature.
error: ../../grub-core/loader/i386/efi/linux.c:256:you need to load the kernel first.

If you see a blue key-enrollment screen immediately after the first post-install reboot, select Enroll MOK and, when prompted for a password, type: universalblue. Note that the enrollment prompt is hard-coded to a US QWERTY keyboard layout regardless of your actual hardware layout, so on an AZERTY keyboard, for example, the A and Q keys are swapped from what you’d expect — type carefully, since the password field hides every character you type. If you already hit the boot error above instead, disable Secure Boot in your firmware first, boot normally, then run:

ujust enroll-secure-boot-key

Enter the same universalblue password when prompted, re-enable Secure Boot in your firmware, and reboot. You’ll see the blue MokManager screen once more — choose Enroll MOK, enter the password a final time, and from that point forward your system boots normally under Secure Boot with no further prompts. A handy related command jumps straight into firmware settings from inside Bazzite whenever you need to go back:

ujust bios

Step 9: Run Your First System Update

With Secure Boot sorted, open a terminal and run Bazzite’s all-in-one update command. This pulls the latest signed system image, refreshes Flatpak apps, and updates firmware in one pass:

ujust update

Under the hood, this calls rpm-ostree (increasingly being replaced by the newer bootc toolchain), which downloads the new image layer-by-layer and stages it as a separate boot entry rather than overwriting your running system. You can confirm your current and staged deployments at any time with:

rpm-ostree status

Example output shows exactly two deployments — the one you’re booted into and the newly staged update, each pinned to a specific image digest:

State: idle
Deployments:
● ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
                   Digest: sha256:9f2b1c...
                  Version: 44.20260801 (2026-08-01T09:14:22Z)

  ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable
                   Digest: sha256:7a4e08...
                  Version: 44.20260713 (2026-07-13T11:02:07Z)

Reboot once to switch into the newly staged deployment. This atomic-update model is the same mechanism that makes rollbacks trivial later on, covered in the Advanced Tips section below.

Step 10: Configure the Desktop and Explore the Bazzite Portal

On first boot into your desktop session, open Settings (KDE’s System Settings or GNOME’s Settings app, depending on your image) and adjust display scaling if text or icons look too small or large — a common first-boot rough edge on high-DPI laptop panels. If you didn’t set your password during the Anaconda installer’s legacy flow, this is also where you’d change it, under the User section.

From here, open the Bazzite Portal app — installed by default and reachable from your application launcher — which is the newest and most significant quality-of-life addition to the project’s setup flow. It organizes dozens of previously terminal-only ujust maintenance scripts into categorized panels: a “Welcome” section with one-click links to documentation, Discord support, and community announcements; an “Install Applications” section that installs common developer and gaming tools (VS Code, VSCodium, ASUS ROG Control Center, Android platform tools, and more) via Homebrew or Distrobox without touching a terminal at all; and dedicated sections for hardware-specific tweaks. For anyone who wants Bazzite’s atomic stability without memorizing command flags, the Portal is now the recommended starting point rather than the raw ujust command list.

If you’d rather work from the terminal, running ujust with no arguments lists every available script, and ujust --choose opens an interactive picker:

ujust
ujust --choose

Step 11: Verify Vulkan Support and Configure Steam and Proton

Steam ships pre-installed on every Bazzite image, already configured with Proton for Windows game compatibility. Launch it, sign in, and before installing anything, re-run the Vulkan check from Step 1 to confirm your GPU driver is working correctly post-install:

vulkaninfo | grep 'Instance Version'

In Steam, open Settings → Compatibility and enable “Force the use of a specific Steam Play compatibility tool for all other titles” so every Windows-only game runs through Proton by default rather than needing a per-game override. It pre-bundles a recent Proton build, but power users often prefer Proton-CachyOS or GloriousEggroll’s Proton-GE for specific compatibility fixes — both can be installed through ProtonUp-Qt or ProtonPlus without ever touching the base system image, keeping the atomic install untouched — check ProtonDB first if you’re unsure whether a specific title needs one of these alternate builds to run well.

If a game refuses to launch at all and your GPU only supports Vulkan 1.1 or 1.2, set this launch option in the game’s Steam properties to fall back to a compatibility layer rather than failing outright — though Bazzite’s docs specifically warn against using it with anti-cheat-protected or multiplayer titles:

PROTON_DXVK_SAREK=1 %command%

Step 12: Install Extra Software from the Bazaar App Store

Beyond Steam, most day-to-day software on Bazzite is installed through Bazaar, a graphical app store pre-installed on every image that pulls primarily from Flathub. This is the recommended path for launchers like our own Heroic Games Launcher setup guide covers, or Lutris for managing GOG, Epic, and Amazon Games titles side by side, plus emulation frontends like RetroArch. Installing through Flatpak keeps every app sandboxed and isolated from the base OS image, which is precisely what preserves the atomic-rollback guarantee — an app that misbehaves can be removed cleanly without ever touching the underlying system layer.

For software not available as a Flatpak, Bazzite documents three additional layers, in order of preference: Distrobox (runs a full containerized Linux distro’s package manager, isolated from the host), Homebrew (for command-line tools and some GUI casks), and rpm-ostree package layering as an explicit last resort, since layered packages are baked into the base image and re-applied on every update, slowing down the update process and increasing the chance of an update conflict over time. A typical Distrobox setup for a command-line tool looks like this:

distrobox create --name dev-box --image fedora:latest
distrobox enter dev-box

Reserve rpm-ostree install for the rare package that genuinely needs to live at the system level (certain kernel modules or firmware blobs), and treat Flatpak and Distrobox as the default for everything else.

Step 13: Enable Steam Gaming Mode and Decky Loader on Handhelds

If you installed one of the -deck images on a handheld or HTPC, your device already boots directly into Steam Gaming Mode — the console-style, controller-navigable interface popularized by the Steam Deck. Desktop Mode is one tap away through the power menu inside Gaming Mode, and everything covered in Steps 10-12 (Bazzite Portal, Bazaar, Distrobox) is fully available there when you need it.

To extend Gaming Mode itself with community plugins — custom themes, per-game audio profiles, on-screen frame-time graphs, and more — install Decky Loader, the plugin framework originally built for Steam Deck and fully supported on Bazzite:

ujust setup-decky

After installation, a new plugin icon appears in the Steam Gaming Mode quick-access menu, from which you can browse and install plugins from the community store. This is also the point in the process where it’s worth comparing notes with Valve’s own platform — our Bazzite vs SteamOS breakdown covers exactly where the two diverge on handheld hardware support.

Bazzite vs SteamOS vs Traditional Linux Distros

Bazzite occupies a specific niche between two alternatives readers frequently ask about. Against Valve’s own SteamOS 3, the trade-off is hardware breadth versus official support: SteamOS is officially validated only on Valve’s Steam Deck and a small list of Lenovo and ASUS handhelds, while Bazzite installs on essentially any x86-64 machine with a Vulkan 1.3 GPU, at the cost of not being Valve’s own product and therefore not eligible for Valve’s direct support channels. Our dedicated Bazzite vs SteamOS comparison covers the performance and compatibility gap between the two in more depth than fits here.

Against traditional, non-atomic gaming-focused distros like Nobara, the difference is architectural rather than a feature checklist: Nobara is a customized Fedora spin using standard package management, meaning updates modify the live system in place and a bad update can leave a system needing manual repair. Bazzite’s atomic model trades a small amount of flexibility (you generally don’t hand-edit core system files) for the guarantee that any update can be undone from the boot menu with zero manual intervention. Our Nobara vs Bazzite comparison walks through real-world performance differences between the two if you’re deciding between them specifically. Neither approach is strictly better — atomic distros suit users who want to install once and rarely think about system maintenance again, while traditional distros suit users who frequently modify low-level system configuration and want direct, unmediated access to do so.

Common Pitfalls When Installing Bazzite

Most failed Bazzite installs trace back to one of these seven mistakes, all avoidable by following the steps above in order.

  • Skipping the checksum verification. A silently corrupted download can produce an installer that boots fine but fails unpredictably mid-install or post-install — always run sha256sum before flashing.
  • Installing to an MBR-partitioned disk. Bazzite requires GPT; an MBR disk will fail during partitioning with no clear error pointing at the real cause. Convert to GPT first, or use a fresh drive.
  • Assuming Secure Boot “just works.” Without manually enrolling Universal Blue’s key via the MOK screen or ujust enroll-secure-boot-key, a Secure-Boot-enabled system will refuse to boot into Bazzite at all after install.
  • Typing the Secure Boot password on the wrong assumed keyboard layout. The enrollment screen is always US QWERTY regardless of your physical keyboard, which silently breaks the password on AZERTY and other non-QWERTY layouts.
  • Formatting a secondary game drive as NTFS or exFAT. Bazzite does not auto-mount these for gaming use — reformat to BTRFS or Ext4 first, after backing up the drive’s contents.
  • Reaching for rpm-ostree package layering by default. Layered packages persist across every future update and slow it down; Flatpak (via Bazaar) or Distrobox should be the first choice for nearly all software.
  • Expecting Nvidia support to match AMD out of the box. Nvidia GPUs work on Bazzite, including in Steam Gaming Mode, but the project’s own documentation is explicit that Nvidia carries “major caveats” the maintainers don’t control, since Nvidia’s driver isn’t open source.

Troubleshooting Bazzite: Common Issues and Fixes

Even a clean install occasionally runs into one of these — all ten are documented, reproducible issues with known fixes rather than open-ended mysteries.

  • “bad shim signature” / “you need to load the kernel first” at boot. Secure Boot key isn’t enrolled. Disable Secure Boot, boot in, run ujust enroll-secure-boot-key, then re-enable it and complete MOK enrollment on the next reboot.
  • Installer fails or refuses to proceed at the partitioning screen. The target disk is almost certainly still MBR-formatted. Convert it to GPT (this wipes the drive) or pick a different disk.
  • Wi-Fi adapter isn’t detected in the live installer environment. Some USB Wi-Fi chipsets lack Linux drivers. Connect via Ethernet for the install, or check Bazzite’s known-compatible adapter list before buying hardware.
  • Low frame rates or stuttering after a clean install. Re-run vulkaninfo | grep 'Instance Version' to confirm you’re actually on Vulkan 1.3+; if not, apply the PROTON_DXVK_SAREK=1 launch option from Step 11 as a stopgap.
  • Windows doesn’t appear in the boot menu after a dual-boot install. Run ujust regenerate-grub from inside Bazzite to rebuild the GRUB entries.
  • Games with kernel-level anti-cheat (certain competitive shooters) refuse to launch. This is a vendor decision, not a Bazzite bug — some anti-cheat systems explicitly block Linux/Proton and there is no user-side fix.
  • A system update leaves the desktop failing to boot properly. Reboot, and from the GRUB menu select the previous deployment to roll back instantly; no reinstall is required.
  • A secondary drive isn’t auto-mounting. Check its filesystem — Bazzite only auto-mounts BTRFS and Ext4. NTFS, exFAT, and FAT32 drives need reformatting (after backing up their contents).
  • Forgot your user password. Boot into rescue mode from the GRUB menu and follow Bazzite’s documented password-reset procedure rather than reinstalling from scratch.
  • BIOS update re-enables Secure Boot and breaks booting again. This is expected — firmware updates commonly reset Secure Boot state. Repeat “Method B” from Step 8 to re-enroll the key.

GPU-Specific Vulkan Issues

Older GPUs stuck on Vulkan 1.1 or 1.2 are the most common source of “why is this game unplayable” reports on the project’s community channels. If vulkaninfo confirms your card is below 1.3, install Proton-CachyOS via ProtonUp-Qt or ProtonPlus and apply the PROTON_DXVK_SAREK=1 %command% launch option per-game — but avoid it on anything with anti-cheat or ranked multiplayer, since the official docs flag it as incompatible with those systems. For GPUs with no Vulkan support at all, the more aggressive PROTON_USE_WINED3D=1 %command% option forces an OpenGL translation path instead — noticeably slower, but functional where Vulkan isn’t an option at all.

Advanced Tips for Power Users

Once the base install is stable, a handful of Bazzite-specific tools are worth knowing even if you don’t need them on day one.

  • Switch image variants without reinstalling. Realized you should have picked bazzite-nvidia instead of the plain image? Rebase in place rather than reinstalling from scratch: rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite:stable (swap the image name for whichever variant you actually need).
  • Roll back a bad update from the command line. rpm-ostree rollback reverts to the previous deployment without a reboot into the GRUB menu — useful for scripting or remote/headless troubleshooting.
  • Use ScopeBuddy for per-game Gamescope profiles. ScopeBuddy lets desktop users apply Gamescope’s handheld-style upscaling and frame-limiting on a per-game basis, rather than system-wide — handy for running a demanding title at a lower internal resolution without touching your desktop’s actual output resolution.
  • Set up Sunshine for self-hosted game streaming. Bazzite documents a built-in Sunshine setup for streaming your library to a phone, tablet, or Steam Deck over your own network — a self-hosted alternative to cloud game-streaming services that keeps your traffic off a third-party server entirely.
  • Jump straight to firmware settings. ujust bios reboots directly into your system’s BIOS/UEFI menu on supported hardware, skipping the usual function-key-mashing dance.

Building a Custom Bazzite Image

Advanced users who want to bake their own layered packages, dotfiles, or branding into a personal Bazzite variant can do so with BlueBuild, the same tooling Universal Blue uses to build the official images. Rather than manually layering packages with rpm-ostree on every machine, BlueBuild lets you define a custom image in a version-controlled recipe file, build it in CI, and rebase any machine onto your own signed image — keeping the same atomic-update and rollback guarantees as the stock Bazzite images, just with your own customizations baked in from the start. This is squarely a power-user path; most readers following this tutorial for a first install won’t need it.

Frequently Asked Questions

Is Bazzite free?
Yes. Bazzite is free and open source under the Apache License 2.0, with no paid tier, subscription, or premium edition.

Does Bazzite support Nvidia GPUs?
Yes, via the dedicated bazzite-nvidia and bazzite-gnome-nvidia images, which bundle Nvidia’s proprietary driver directly into the base image. Support works but carries documented caveats the maintainers don’t fully control, particularly in Steam Gaming Mode, since Nvidia’s driver isn’t open source.

Can I dual-boot Bazzite with Windows?
Yes, using automatic partitioning from the standard installer on a shared drive, or by installing each OS on its own separate drive and switching via your motherboard’s UEFI boot menu. Manual partitioning for dual-boot requires the separate Legacy ISO.

Will my anti-cheat-protected games work on Bazzite?
Some will, but games using kernel-level anti-cheat that explicitly blocks Linux or Proton will not launch, regardless of any Bazzite-side configuration — this is a decision made by the anti-cheat vendor, not a bug in Bazzite.

What’s the difference between Bazzite and SteamOS?
SteamOS is Valve’s own operating system, officially supported only on the Steam Deck and a handful of validated handhelds. Bazzite is a community-built alternative with the same atomic-update design philosophy, installable on essentially any x86-64 PC or handheld with a Vulkan 1.3 GPU. See our full Bazzite vs SteamOS comparison for a deeper breakdown.

Do I need to reinstall Bazzite to update it?
No. Updates are pulled as complete, signed image layers via ujust update (built on rpm-ostree/bootc) and staged as a new boot deployment. A single reboot switches to the update, and the previous deployment stays available for instant rollback if anything breaks.

Which Bazzite image should I choose for a Steam Deck or handheld?
bazzite-deck (KDE Plasma-based) or bazzite-deck-gnome (GNOME-based) — both boot directly into Steam Gaming Mode and are purpose-built for handheld and HTPC hardware.

Is Bazzite based on Ubuntu?
No. Bazzite is built on Fedora Atomic Desktops (currently tracking Fedora 44), not Ubuntu or Debian. This affects which package formats and repositories are relevant if you’re coming from an Ubuntu-based background.