Running Fedora 43 Cloud Base (qcow2) on OCI Compute – Step-by-Step Guide

 Overview

Oracle Cloud Infrastructure (OCI) allows users to import custom OS images and run operating systems beyond the marketplace-provided images. This capability is particularly useful for testing cutting-edge Linux distributions, validating application compatibility, or standardizing OS builds across environments.

In this post, I demonstrate how to import and run a Fedora 43 Cloud Base image (qcow2) on OCI Compute, using OCI Object Storage and the Custom Image feature.

Note that Fedora is not listed as supported operating system on OCI - https://docs.oracle.com/en-us/iaas/Content/Compute/Tasks/importingcustomimagelinux.htm

⚠️ This demonstration is performed in a personal OCI tenancy using test resources only.
No customer data, environments, or screenshots are used.


Oracle Products Used

  • Oracle Cloud Infrastructure
  • OCI Compute
  • OCI Custom Images
  • OCI Object Storage
  • OCI IAM
  • Virtual Cloud Network (VCN)

Why Fedora Cloud Image on OCI?

The Fedora Cloud Base image is:

  • Optimized for cloud environments
  • Minimal and lightweight
  • Cloud-init enabled
  • Ideal for testing next-generation Linux features

 

Running Fedora on OCI is useful for:

  • OS compatibility testing
  • CI/CD build agents
  • Developer sandboxes
  • Learning OCI custom image workflows

High-Level Architecture

Fedora Cloud qcow2 Image

        |

        |  Upload

        |

OCI Object Storage Bucket

        |

        |  Custom Image Import

        |

OCI Compute Instance


Prerequisites

OCI Requirements

  • Active OCI tenancy (Free Tier is sufficient)
  • Permission to manage:
    • Object Storage
    • Compute Images
    • Compute Instances

Local System

  • Browser access to OCI Console
  • Fedora Cloud Base qcow2 image downloaded locally

Step 1: Download Fedora 43 Cloud Base Image

Download the qcow2 cloud image from Fedora Cloud images repository.

Example filename:

Fedora-Cloud-Base-Generic-43-1.6.x86_64.qcow2

Local local system – Fedora Cloud Base qcow2 image downloaded


Step 2: Upload Image to OCI Object Storage

  1. Navigate to Storage → Object Storage → Buckets
  2. Create a new bucket (e.g., custom-images)
  3. Upload the Fedora qcow2 file

OCI Console – Object Storage bucket with Fedora qcow2 uploaded


Step 3: Create a Custom Image in OCI

  1. Go to Compute → Custom Images
  2. Click Create Custom Image
  3. Choose Import from Object Storage
  4. Select:
    • Bucket name
    • Fedora qcow2 object
  5. Image type:
    • QCOW2
  6. Launch mode:
    • Paravirtualized (recommended)

OCI Console – Custom image creation screen


Step 4: Monitor Image Import

The image will move through states:

IMPORTING → AVAILABLE

Import time depends on image size and region.

OCI Console – Custom image status showing AVAILABLE


Step 5: Create a Compute Instance Using the Custom Image

  1. Navigate to Compute → Instances
  2. Click Create Instance
  3. Select:
    • Image source: Custom Image
    • Fedora 43 custom image
  4. Choose shape:
    • VM.Standard.E5.Flex (or Free Tier–eligible shape)
  5. Configure networking:
    • VCN + subnet
  6. Add SSH public key

OCI Console – Instance creation using custom Fedora image

Instance being provisioned in a public subnet


Step 6: First Boot Considerations (cloud-init)

Fedora Cloud images rely on cloud-init for:

  • SSH key injection
  • User creation
  • Network configuration

OCI automatically supports cloud-init.

Wait 2–3 minutes after instance launch before attempting SSH. Ensure that you selected one NSG which allows you to connect over SSH.

OCI Console – Instance status RUNNING


Step 7: Connect to Fedora Instance via SSH

From your local system:

ssh fedora@<instance-public-ip>

Verify OS version:

cat /etc/os-release

Expected output:

Fedora Linux 43

SSH session showing Fedora 43 login, connected using the username “fedora”


Step 8: Post-Launch Validation

Check cloud-init status

cloud-init status

Verify network configuration

ip a

ip route

Update system packages

sudo dnf update -y

then reboot once

Successful cloud-init completion and network validation

Optional – configure VNC

sudo dnf install tigervnc-server -y

Set the VNC password (repeat for all the users created)

vncpasswd

Map your user to a display: Edit the mapping file to assign your username to a specific display number (e.g., :1).

sudo nano /etc/tigervnc/vncserver.users

Add this line (replace yourusername with your actual username):

:1=yourusername

Direct VNC to Launch Budgie

By default, VNC may try to launch a basic window manager or GNOME. You must tell it to use Budgie.

Create a local config directory: mkdir -p ~/.vnc

Create the startup script: nano ~/.vnc/config

Add the session type:

session=budgie-desktop

securitytypes=vncauth,tlsvnc

desktop=Budgie

geometry=1920x1080

Enable and Start the Service

Fedora uses systemd to manage VNC sessions. Use the display number you defined in Step 2.

# Reload systemd to pick up new configurations

sudo systemctl daemon-reload

# Start and enable the service for display :1

sudo systemctl enable vncserver@:1 –now

Make sure the NSG allows the port 5901, 5902 etc for each of the users sessions

I have connected using the “fedora” user-


Common Issues & Troubleshooting

Issue

Resolution

SSH not working

Wait for cloud-init completion

No user access

Use fedora default user

Boot failure

Verify Paravirtualized mode

Slow import

Use same region bucket


Security Considerations

  • Restrict SSH access using Security Lists / NSGs
  • Rotate SSH keys regularly
  • Disable password authentication
  • Use Bastion or P2S VPN for admin access
  • Apply regular OS updates

Use Cases

  • Fedora feature testing
  • Application compatibility validation
  • Custom AMI-style workflows on OCI
  • CI/CD build agents
  • Training and labs

Lessons Learned

  • OCI custom images work seamlessly with cloud-init
  • qcow2 format is fully supported
  • Object Storage simplifies image staging
  • Paravirtualized mode provides best compatibility
  • Non-marketplace OS images are first-class citizens in OCI

Conclusion

This demonstration shows how Oracle Cloud Infrastructure Compute enables users to run custom Linux distributions, such as Fedora 43 Cloud Base, using native image import capabilities.

The workflow is secure, repeatable, and suitable for both experimentation and enterprise testing scenarios.


References

  • OCI Custom Images Documentation
  • OCI Compute Documentation
  • Fedora Cloud Image Documentation

🔗 About the Author

Debapriya Biswas
Oracle ACE Apprentice | Sr. Consultant – Cloud Technologies
Focused on OCI Compute, Automation, and Advanced Networking

Comments

Popular posts from this blog

Access Oracle OCI Object Storage through GUI Client

Instance OS Baseline Configuration Runbook

Accessing OCI Compute Instances Using VNC Console (Instance Console Connection)