Chapter 9. Building and provisioning a minimal raw image


The minimal-raw image is a pre-packaged, bootable, minimal RPM image, compressed in the xz format. The image consists of a file containing a partition layout with an existing deployed OSTree commit in it. You can build a RHEL for Edge Minimal Raw image type by using RHEL image builder and deploy the Minimal Raw image to the aarch64 and x86 architectures.

9.1. The minimal raw image build and deployment

Build a RHEL for Edge Minimal Raw image by using the minimal-raw image type. To boot the image, you must decompress it and copy to any bootable device, such as an SD card or a USB flash drive. You can log in to the deployed system with the user name and password that you specified in the blueprint that you used to create the RHEL for Edge Minimal Raw image.

Composing and deploying a RHEL for Edge Minimal Raw image involves the following high-level steps:

  1. Install and register a RHEL system
  2. Install RHEL image builder
  3. Using RHEL image builder, create a blueprint with your customizations for RHEL for Edge Minimal Raw image
  4. Import the RHEL for Edge blueprint in RHEL image builder
  5. Create a RHEL for Edge Minimal Raw image
  6. Download and decompress the RHEL for Edge Minimal Raw image
  7. Create a bootable USB drive from the decompressed Raw image
  8. Deploy the RHEL for Edge Minimal Raw image

Create a blueprint, and customize it with a username and a password. You can use the resulting blueprint to create a Minimal Raw image and log in to it by using the credentials that you configured in the blueprint.

Procedure

  1. Create a plain text file in the Tom’s Obvious, Minimal Language (TOML) format, with the following content:

    name = "minimal-raw-blueprint"
    description = "blueprint for the Minimal Raw image"
    version = "0.0.1"
    packages = []
    modules = []
    groups = []
    distro = ""
    
    [[customizations.user]]
    name = "admin"
    password = "admin"
    groups = ["users", "wheel"]
    • name is the name and description is the description for your blueprint.
    • 0.0.1 is the version number according to the Semantic Versioning scheme.
    • Modules describe the package name and matching version glob to be installed into the image, for example, the package name = "tmux" and the matching version glob is version = "2.9a". Currently there are no differences between packages and modules.
    • Groups are packages groups to be installed into the image, for example the anaconda-tools group package. If you do not know the modules and groups, leave them empty.
    • Under customizations.user:

      • name is the username to login to the image
      • password is a password of your choice
      • groups are any user groups, such as "widget"
  2. Import the blueprint to the RHEL image builder server:

    # composer-cli blueprints push <blueprint_name>.toml
  3. Check if the blueprint is available on the system:

    # composer-cli blueprints list
  4. Check the validity of components, versions, and their dependencies in the blueprint:

    # composer-cli blueprints depsolve <blueprint_name>

Create a RHEL for Edge Minimal Raw image with the RHEL image builder command-line interface.

Prerequisites

  • You created a blueprint for the RHEL for Edge Minimal Raw image.

Procedure

  1. Build the image.

    # composer-cli compose start <blueprint_name> minimal-raw
    • <blueprint_name> is the RHEL for Edge blueprint name
    • minimal-raw is the image type
  2. Check the image compose status.

    # composer-cli compose status

    The output displays the status in the following format:

    # <UUID> RUNNING date <blueprint_name> blueprint-version minimal-raw

Download the RHEL for Edge Minimal Raw image by using RHEL image builder command-line interface, and then decompress the image to be able to boot it.

Prerequisites

  • You have created a RHEL for Edge Minimal Raw image.

Procedure

  1. Review the RHEL for Edge Minimal Raw image compose status.

    # composer-cli compose status

    The output must display the following details:

    $ <UUID> FINISHED date <blueprint_name> <blueprint_version> minimal-raw
  2. Download the image:

    # composer-cli compose image <UUID>

    Image builder downloads the image into your working directory. The following output is an example:

    3f9223c1-6ddb-4915-92fe-9e0869b8e209-raw.img.xz
  3. Decompress the image:

    $ xz -d <UUID>-raw.img.xz

Next

Use the decompressed bootable RHEL for Edge Minimal Raw image to create a bootable installation medium and use it as a boot device. The following documentation describes the procedure of creating an USB bootable device from an ISO image. However, the same steps apply to the RAW images, because the RAW image is equivalent to the ISO image.

See Creating a bootable USB device on Linux for more details.

After you created a bootable USB installation medium from the customized RHEL for Edge Minimal Raw image, you can continue the installation process by deploying the Minimal Raw image from the USB flash drive and booting your customized image.

Prerequisites

  • You have a 8 GB USB flash drive.
  • You have created a bootable installation medium from the RHEL for Edge Minimal Raw image to the USB drive.

Procedure

  1. Connect the USB flash drive to the computer where you want to boot your customized image.
  2. Power on the system.
  3. Boot the RHEL for Edge Minimal Raw image from the USB flash drive. The boot menu shows you the following options:

    Install Red Hat Enterprise Linux 9
    Test this media & install Red Hat Enterprise Linux 9
  4. Choose Install Red Hat Enterprise Linux 9. This starts the system installation.

Verification

  1. Boot into the image by using the username and password you configured in the blueprint.

    1. Check the release:

      $ cat /etc/os-release
    2. List the block devices in the system:

      $ lsblk

Create a RHEL for Edge Container image to serve it to a running container.

Prerequisites

  • You have created a RHEL for Edge Minimal Raw image and downloaded it.

Procedure

  1. Create a blueprint for the rhel-edge-container image type, for example:

    name = "rhel-edge-container-no-users"
    description = ""
    version = "0.0.1"
  2. Build a rhel-edge-container image:

    # composer-cli compose start-ostree <rhel-edge-container-no-users> rhel-edge-container
  3. Check if the image is ready:

    # composer-cli compose status
  4. Download the rhel-edge-container image as a .tar file:

    # composer-cli compose image <UUID>
  5. Import the RHEL for Edge Container into Podman:

    $ skopeo copy oci-archive:_<UUID>_-container.tar \
    containers-storage:localhost/rfe-93-mirror:latest
  6. Start the container and make it available by using the port 8080:

    $ podman run -d --rm --name <rfe-93-mirror> -p 8080:8080 localhost/<rfe-93-mirror>
  7. Create a blueprint for the edge-raw-image image type, for example:

    name = "<edge-raw>"
    description = ""
    version = "0.0.1"
    [[customizations.user]]
    name = "admin"
    password = "admin"
    groups = ["wheel"]
  8. Build a RHEL for Edge Raw image by serving the RHEL Edge Container to it:

    # composer-cli compose start-ostree edge-raw edge-raw-image \
    --url http://10.88.0.1:8080/repo
  9. Download the RHEL for Edge Raw image as a .raw file:

    # composer-cli compose image <UUID>
  10. Decompress the RHEL for Edge Raw image:

    # xz --decompress <UUID>>-image.raw.xz
Red Hat logoGithubredditYoutubeTwitter

Learn

Try, buy, & sell

Communities

About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust. Explore our recent updates.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

Theme

© 2026 Red Hat
Back to top