Linux & DevOps

How to Test Sealed Bootable Images for Fedora Atomic Desktops: A Step-by-Step Guide

2026-05-01 13:59:09

Introduction

Fedora Atomic Desktops are now offering sealed bootable container images for testing. These images create a fully verified boot chain — from firmware to the operating system — using Secure Boot on UEFI systems (x86_64 and aarch64). The sealed images include a signed systemd-boot bootloader, a Unified Kernel Image (UKI) containing the Linux kernel, initrd, and kernel command line, and a composefs repository with fs-verity enabled. The primary benefit of this setup is enabling secure, passwordless disk unlocking via the TPM.

How to Test Sealed Bootable Images for Fedora Atomic Desktops: A Step-by-Step Guide
Source: fedoramagazine.org

This guide will walk you through obtaining, writing, and booting these test images — either using pre-built disk images or building your own from container images. Follow the steps carefully, and remember: these are test images, not suitable for production environments.

What You Need

Step-by-Step Instructions

Step 1: Download a Sealed Bootable Image

Visit the official GitHub repository. Under the Releases section, you’ll find pre-built disk images (e.g., .raw.zst files) and container image references. Choose the appropriate architecture (x86_64 or aarch64). The disk image contains everything needed to boot directly from a USB drive.

Step 2: Write the Disk Image to a USB Drive

Insert your USB drive. Use a tool like dd (Linux/macOS) or balenaEtcher (cross-platform) to write the raw image. For example, on Linux: sudo dd if=fedora-atomic-desktops-sealed.x86_64.raw of=/dev/sdX bs=4M status=progress Replace /dev/sdX with your USB device (be careful not to overwrite your system disk). After writing, safely eject the drive.

Step 3: Boot from the USB Drive

Restart your computer and enter the UEFI/BIOS setup (usually by pressing F2, F12, Del, or Esc). Set the boot order to prioritize USB, or use the one-time boot menu to select the USB device. If Secure Boot is enabled, you will likely see a warning that the image’s bootloader and UKI are signed with test keys (not official Fedora keys). You have two options:

The system should boot into the Fedora Atomic Desktop environment. Note: the root account has no password set, and SSH is enabled for debugging. Use sudo without a password to run commands.

Step 4: Test TPM-Based Unlocking (Optional)

If you have a TPM 2.0 module, you can verify that passwordless disk unlocking works. When the system boots, it should automatically unlock encrypted partitions (if any) using the TPM. To test, reboot and watch for any prompts. No manual password entry should be required. This is a key feature of sealed images.

How to Test Sealed Bootable Images for Fedora Atomic Desktops: A Step-by-Step Guide
Source: fedoramagazine.org

Step 5: Build Your Own Sealed Image (Advanced)

If you prefer to customize the image, the repository provides a container-based build process. Clone the repo: git clone https://github.com/travier/fedora-atomic-desktops-sealed.git

Inside the repository, you’ll find a Containerfile and scripts to generate a disk image. Use Podman or Buildah to build the container, then run the script to output a raw image. Ensure you have the required dependencies (e.g., systemd-boot, UKI generation tools). The repository’s README details the exact commands.

Step 6: Report Issues and Provide Feedback

Check the Known Issues list on the GitHub repository. If you encounter bugs or have suggestions, open a new issue. The maintainers will redirect to the appropriate upstream projects (bootc, composefs, systemd, etc.). Your feedback helps improve the technology.

Tips and Warnings

By following these steps, you can help validate the sealed bootable container images for Fedora Atomic Desktops. Your testing is valuable for bringing secure, verified boot chains to the broader Fedora community.

Explore

Python Security Response Team Overhauls Governance, Welcomes First New Member in Two Years How to Implement Single-Vesicle Profiling for Next-Generation Liquid Biopsies Everything About PyTorch Lightning Compromised in PyPI Supply Chain Attack to... Rust to Remove --allow-undefined Flag from WebAssembly Targets, Risking Project Breaks Get a Sneak Peek: Early Recreation of Google's New Workspace Icons