Skip to main content
Redhat Developers  Logo
  • Products

    Platforms

    • Red Hat Enterprise Linux
      Red Hat Enterprise Linux Icon
    • Red Hat AI
      Red Hat AI
    • Red Hat OpenShift
      Openshift icon
    • Red Hat Ansible Automation Platform
      Ansible icon
    • See all Red Hat products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat Developer Hub
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat OpenShift Local
    • Red Hat Developer Sandbox

      Try Red Hat products and technologies without setup or configuration fees for 30 days with this shared Red Hat OpenShift and Kubernetes cluster.
    • Try at no cost
  • Technologies

    Featured

    • AI/ML
      AI/ML Icon
    • Linux
      Linux Icon
    • Kubernetes
      Cloud icon
    • Automation
      Automation Icon showing arrows moving in a circle around a gear
    • See all technologies
    • Programming languages & frameworks

      • Java
      • Python
      • JavaScript
    • System design & architecture

      • Red Hat architecture and design patterns
      • Microservices
      • Event-Driven Architecture
      • Databases
    • Developer experience

      • Productivity
      • Tools
      • GitOps
    • Automated data processing

      • AI/ML
      • Data science
      • Apache Kafka on Kubernetes
    • Platform engineering

      • DevOps
      • DevSecOps
      • Red Hat Ansible Automation Platform for applications and services
    • Secure development & architectures

      • Security
      • Secure coding
  • Learn

    Featured

    • Kubernetes & cloud native
      Openshift icon
    • Linux
      Rhel icon
    • Automation
      Ansible cloud icon
    • AI/ML
      AI/ML Icon
    • See all learning resources

    E-books

    • GitOps cookbook
    • Podman in action
    • Kubernetes operators
    • The path to GitOps
    • See all e-books

    Cheat sheets

    • Linux commands
    • Bash commands
    • Git
    • systemd commands
    • See all cheat sheets

    Documentation

    • Product documentation
    • API catalog
    • Legacy documentation
  • Developer Sandbox

    Developer Sandbox

    • Access Red Hat’s products and technologies without setup or configuration, and start developing quicker than ever before with our new, no-cost sandbox environments.
    • Explore the Developer Sandbox

    Featured Developer Sandbox activities

    • Get started with your Developer Sandbox
    • OpenShift virtualization and application modernization using the Developer Sandbox
    • Explore all Developer Sandbox activities

    Ready to start developing apps?

    • Try at no cost
  • Blog
  • Events
  • Videos

Control updates with download-only mode in bootc

February 18, 2026
Mohan Shash Wei Shi
Related topics:
CI/CDLinuxPlatform engineering
Related products:
Image mode for Red Hat Enterprise LinuxRed Hat Enterprise Linux

The bootc utility has changed the way we think about system updates in image mode for Red Hat Enterprise Linux (RHEL). By treating the entire operating system as a container image, we gain atomicity, easy rollbacks, and a simplified deployment model. However, as many system administrators know, atomic doesn't always mean at the right time. Until recently, running a bootc upgrade would download and stage an update that would automatically apply on the next reboot—regardless of why that reboot occurred. 

For production environments with strict maintenance windows, this auto-apply behavior could lead to unintended changes during routine hardware checks or emergency restarts. To address this, we are introducing download-only mode. This feature gives administrators explicit control over when a staged update is allowed to become the active boot environment.

What is download-only mode?

This workflow is essential for organizations that require update validation before application, or for operations teams managing fleet-wide rollouts where network-intensive downloads and system-altering reboots must happen at different times. The download-only mode separates the update process into three distinct phases:

  1. Download and stage: Pulling and preparing the new system image on disk.
  2. Lock: Instructing the system not to switch to the new image on the next reboot.
  3. Explicit application: The administrator explicitly triggers the finalization when they are ready for the update to take effect.

Putting it into practice

The primary interface for this feature is the introduction of the --download-only and --from-downloaded flags within the bootc upgrade command.

Staging an update without applying

When you want to pre-load a security patch during business hours without risking an accidental update, you can run the following command:

# bootc upgrade --download-only

This command pulls the latest image and prepares the new deployment. However, it is important to note that the state of this staged image does not persist across reboots. If the system reboots for any reason before you explicitly apply the update, it will clear the staged deployment to prevent stale updates from lingering on disk.

Checking the status

To see if you have a download-only update, you can use the enhanced bootc status output (using the --verbose flag for full details) as follows:

# bootc status --verbose
[...]
Staged:
  Image: quay.io/example/rhel-guest:latest
  Version: 10.2.20260126
  download-only: yes

The download-only: yes line provides immediate visibility, confirming that the system will not automatically switch to this version on the next boot.

Applying the update

When your maintenance window arrives, you can unlock the staged deployment for automatic application on the next shutdown or reboot using the --from-downloaded flag:

# bootc upgrade --from-downloaded

This command specifically targets the downloaded image without attempting to fetch new updates. It sets the download-only status to false and readying the system to switch on the next reboot.

Applying the update immediately, the following command unlocks the staged deployment and immediately reboots into it.

# bootc upgrade --from-downloaded --apply

Why this matters for the enterprise

The introduction of download-only mode brings bootc to feature parity with rpm-ostree, which many users relied on for Fedora CoreOS and Fedora IoT. It enables several critical enterprise use cases:

  • Pre-deployment testing: QA teams can download updates to a staging environment, inspect the contents, and run validation scripts before committing to the reboot.
  • Compliance and change control: The separation of "download" from "apply" allows for distinct approval steps in automated CI/CD pipelines.
  • Maintenance windows: Administrators can pre-download updates during the day and choose exactly when to apply them (e.g., 2 AM) to maximize uptime.

Behind the scenes: OSTree and Composefs

Under the hood, this feature leverages new public APIs in the OSTree backend. While Phase 1 (available in RHEL 10.2) focuses on the OSTree backend, the architecture is designed to be backend-agnostic.

It is worth noting that this feature is not yet implemented for the Composefs-native backend. If attempted on a system using the experimental Composefs backend, bootc will provide this clear error message: "This feature is not supported on composefs backend."

Final thoughts

Control is a prerequisite for stability. By introducing the download-only mode, bootc provides the flexibility needed to run image-based RHEL in the most demanding production environments. You can now separate the network-heavy task of fetching images from the mission-critical task of updating the system state.

Related Posts

  • Image mode for RHEL 10: Updates in seconds with soft reboot

  • What is an image mode 3-way merge?

  • How to build, deploy, and manage image mode for RHEL

  • How image mode for RHEL improves security

Recent Posts

  • Control updates with download-only mode in bootc

  • Optimize infrastructure health with Red Hat Lightspeed MCP

  • Manage AI resource use with TokenRateLimitPolicy

  • The uncomfortable truth about vibe coding

  • How the contextual SBOM pattern improves vulnerability management

What’s up next?

Learning Path Bootable-Container-images-LP-feature-image

Build and run a bootable container image with image mode for RHEL and Podman Desktop

Learn how to locally build and run a bootable container (bootc) image in...
Red Hat Developers logo LinkedIn YouTube Twitter Facebook

Platforms

  • Red Hat AI
  • Red Hat Enterprise Linux
  • Red Hat OpenShift
  • Red Hat Ansible Automation Platform
  • See all products

Build

  • Developer Sandbox
  • Developer tools
  • Interactive tutorials
  • API catalog

Quicklinks

  • Learning resources
  • E-books
  • Cheat sheets
  • Blog
  • Events
  • Newsletter

Communicate

  • About us
  • Contact sales
  • Find a partner
  • Report a website issue
  • Site status dashboard
  • Report a security problem

RED HAT DEVELOPER

Build here. Go anywhere.

We serve the builders. The problem solvers who create careers with code.

Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

Sign me up

Red Hat legal and privacy links

  • About Red Hat
  • Jobs
  • Events
  • Locations
  • Contact Red Hat
  • Red Hat Blog
  • Inclusion at Red Hat
  • Cool Stuff Store
  • Red Hat Summit
© 2025 Red Hat

Red Hat legal and privacy links

  • Privacy statement
  • Terms of use
  • All policies and guidelines
  • Digital accessibility

Report a website issue