Skip to content

Build a Linux Image

For most Linux distributions, we recommend starting from an official cloud image rather than installing the operating system from an ISO.

Cloud images already include cloud-init and are optimized for virtualized environments.

Official cloud images are available for many popular distributions:

  • Ubuntu
  • Debian
  • AlmaLinux
  • Rocky Linux
  • Fedora
  • openSUSE

Workflow

text
Download Cloud Image

Customize (Optional)

Convert to RAW

Compress

Upload

Use URL in Custom Profile

Download a Cloud Image

Example (Ubuntu 24.04):

bash
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img

Most cloud images are provided in QCOW2 format.

Customize the Image (Optional)

If you need additional software, you can boot the image in a virtual machine and make your changes.

Common customizations include:

  • Installing packages
  • Creating users
  • Configuring services
  • Adding application files

When customization is complete, shut down the virtual machine cleanly.

Convert to RAW

Convert the image to RAW format:

bash
qemu-img convert \
    -O raw \
    noble-server-cloudimg-amd64.img \
    ubuntu.raw

Compress the Image

We recommend Zstandard compression:

bash
zstd -19 ubuntu.raw

This produces:

text
ubuntu.raw.zst

Upload the Image

Upload the compressed image to a location accessible via HTTP or HTTPS.

Examples:

  • S3-compatible storage
  • Cloudflare R2
  • GitHub Releases
  • Web servers
  • CDN providers

The resulting URL can be used directly in a Custom Profile.

Example:

text
https://example.com/images/ubuntu.raw.zst

Alternative: Build from an ISO

If a cloud image is not available for your distribution, you can install the operating system from an ISO.

Requirements

  • cloud-init must be installed
  • the system must boot successfully
  • shut down the virtual machine before capturing the image

No additional cloud-init configuration is required. TinyInstaller automatically configures cloud-init during deployment.

After installation:

  1. Shut down the virtual machine.
  2. Convert the disk to RAW format.
  3. Compress the RAW image.
  4. Upload the image and use its URL in your Custom Profile.

Notes

For the best compatibility and deployment speed:

  • Prefer official cloud images whenever possible.
  • Use RAW images compressed with Zstandard (.raw.zst).
  • Compressed images are supported only for RAW disk images.
  • Avoid distributing compressed virtual disk formats such as .qcow2.zst, .vhdx.gz, or .vmdk.xz.
  • Convert the image to RAW before compression.