Skip to main content

How to Upload Custom Images

Custom images allow you to import your own Linux operating system images to our platform. You can create VMs from these custom images, enabling you to migrate existing workloads and maintain your configured environments without rebuilding from scratch.

Raff Technologies avatar
Written by Raff Technologies
Updated over 2 months ago

Image Requirements

Images you upload must meet the following requirements:

Operating System

  • Linux/Unix: Most distributions supported (see supported OS list below)

  • Windows: Limited support (requires specific package)

  • FreeBSD: Supported with specific package requirements

File Format

Images must be in one of the following formats:

  • Raw (.img, .raw)

  • qcow2 (.qcow2, .qcow)

  • VMDK (.vmdk)

  • VHD/VHDX (.vhd, .vhdx)

  • VDI (.vdi)

Size Limitations

  • Maximum uncompressed size: 100 GB

  • Images are automatically scanned and processed during upload

Contextualization

Important: Your image does NOT need cloud-init pre-installed. Our system automatically injects the context package during processing, which handles:

  • Network configuration

  • SSH key injection

  • User data scripts

  • VM initialization

The context package is compatible with our environments and provides similar functionality to cloud-init.
​

Other Requirements

  • SSH Server: sshd must be installed and configured to start on boot

  • Filesystem: ext3, ext4, xfs, or btrfs for Linux; NTFS for Windows

  • Partition Table: Valid MBR or GPT partition table

Supported Operating Systems

Currently validated and supported:

  • AlmaLinux: 8, 9, 10

  • Rocky Linux: 8, 9, 10

  • RHEL: 8, 9, 10

  • Oracle Linux: 8, 9, 10

  • Ubuntu: 20.04, 22.04, 24.04

  • Debian: 11, 12, 13

  • Devuan: 5

  • openSUSE: 15

Note: Unsupported OS versions will fail during the detection phase.
​

Upload Methods

Method 1: Direct Upload

  1. Navigate to My Files

  2. Click the Images tab

  3. Click Upload Image

  4. Select your image file from your computer

  5. Wait for processing to complete

Method 2: URL Import

  1. Navigate to My Files

  2. Click the Images tab

  3. Click Upload Image

  4. Select "Import from URL"

  5. Enter the direct URL to your image file

    • The URL must be publicly accessible and end with the correct file extension

    • Supported URL protocols: HTTP, HTTPS

Upload Process

Once you initiate an upload, your image goes through the following automated pipeline:

  1. Upload Stage: File is transferred to temporary storage

  2. Virus Scanning: Comprehensive malware and virus scan

  3. OS Detection: Automatic detection of operating system and version

  4. Format Conversion: If needed, converts to qcow2 format

  5. Context Injection: Automatically installs context package for your OS

  6. Final Upload: Moves to permanent storage and becomes available

Processing Status

You can monitor your image processing through the Jobs panel:

  • Uploading: Initial file transfer in progress

  • Virus Scanning: Security scan in progress

  • OS Detecting: Identifying operating system

  • Converting: Converting image format if needed

  • Context Injecting: Installing context package

  • Completed: Image ready for use

  • Failed: Processing failed (see error message)

  • Quarantined: Virus/malware detected

What is context?

Context is automatically injected into your image during processing. It provides:

  • Automatic network configuration from DHCP or static configuration

  • SSH key injection for secure access

  • User data script execution for custom initialization

  • Hostname configuration

  • Growing root filesystem to match disk size

You don't need to pre-install this - our system handles it automatically based on your OS.
​

Common Issues and Solutions

Failed to Mount Image

  • Ensure your image has a valid partition table (MBR or GPT)

  • Verify the filesystem is not corrupted

  • Check that the image format is correctly detected

OS Not Supported

  • Verify your OS is in the supported list above

  • Ensure the OS version matches exactly

  • For custom distributions, ensure they're based on a supported OS

Image Format Conversion Failed

  • Verify the image file is not corrupted

  • Ensure the file extension matches the actual format

  • Try converting to qcow2 locally before uploading

Context Injection Failed

  • Ensure the root filesystem is accessible and not encrypted

  • Verify sufficient free space in the image for package installation

  • Check that the package manager (apt/yum/dnf) is functional

Best Practices

  • Test Locally First: Verify your image boots and functions in a local VM

  • Use qcow2 Format: Pre-convert to qcow2 to skip conversion step

  • Keep Images Small: Remove unnecessary files and packages to reduce size

  • Document Your Image: Include notes about installed software and configuration

Storage and Cleanup

  • Successfully processed images are stored permanently in your account

  • Failed images are moved to a failed images folder

  • Processing temporary files are automatically cleaned up after completion

Security Notes

  • All images undergo mandatory virus scanning

  • Infected images are immediately quarantined

  • Images are isolated per account

  • Consider removing sensitive data before uploading

Need Help?

If you encounter issues not covered here:

  1. Check the job error message for specific details

  2. Verify your image meets all requirements

  3. Contact support with your job ID for assistance

Did this answer your question?