How to Install Proxmox VE on CentOS Stream 10: A Complete Step-by-Step Guide
If you are looking to build a powerful, enterprise-grade virtualization environment at home or in a small data center β without spending a fortune β Proxmox VE combined with CentOS Stream 10 is one of the most compelling stacks you can deploy right now. Both are free, open-source, production-ready, and maintained by active communities with strong upstream ties.
In this guide, we will walk through the entire process: what these technologies are, why they work so well together, and exactly how to get CentOS Stream 10 up and running as a virtual machine inside Proxmox VE. By the end of this article, you will have a fully operational VM that is ready to host applications, test workloads, or serve as the backbone of a homelab or small production environment.
Let’s get into it.
What Is Proxmox VE?
Proxmox Virtual Environment (Proxmox VE) is an open-source, Type-1 hypervisor built on top of Debian Linux. It combines two powerful virtualization technologies under a single, web-based management interface:
- KVM (Kernel-based Virtual Machine) β for running full virtual machines with hardware-level isolation
- LXC (Linux Containers) β for lightweight, OS-level containers that share the host kernel
What makes Proxmox stand out from competitors is that it brings enterprise-class features β live migration, high availability clustering, built-in backup scheduling, ZFS storage, and Ceph integration β without any licensing fees for the core platform.
The latest stable release at the time of writing is Proxmox VE 9.1, released in November 2025. It ships with the Debian 13 “Trixie” base, Linux kernel 6.14, QEMU 10.0, LXC 6.0, and ZFS 2.3. The web dashboard is accessible via HTTPS on port 8006, making it easy to manage everything from any browser on your network without needing a dedicated monitor connected to the host.
What Is CentOS Stream 10?
CentOS Stream 10, officially codenamed “Coughlan” (named in memory of CentOS contributor Tom Coughlan), was released on December 12, 2024. Unlike the old CentOS Linux which was a downstream rebuild of Red Hat Enterprise Linux (RHEL), CentOS Stream sits upstream of RHEL β meaning it receives changes before they land in the next RHEL minor release.
This makes CentOS Stream 10 an excellent choice for teams who want:
- Early access to features that will become part of RHEL 10
- A stable, enterprise-oriented environment supported until at least 2030
- A free platform that is essentially a preview of what RHEL 10 will look like
Key highlights of CentOS Stream 10:
- Linux Kernel 6.12 β a major upgrade from the 5.14 kernel used in Stream 9
- GCC 14.2.1 and Python 3.12 β modern development toolchain out of the box
- GNOME 47 with Wayland as the default display stack (Xorg server removed)
- DNF 4.20 and RPM 4.19 for package management
- Valkey 7.2 as a Redis drop-in replacement
- PostgreSQL 16 (with pgvector support), MariaDB 10.11, MySQL 8.4
- Node.js 22, PHP 8.3, OpenJDK 21, Go 1.23
One important note: CentOS Stream 10 now targets the x86_64-v3 microarchitecture level, which means it requires a CPU supporting AVX and AVX2 instruction sets. Most processors manufactured after 2013 (Intel Haswell, AMD Excavator, and newer) meet this requirement β but make sure to verify before deploying.
Why Run CentOS Stream 10 on Proxmox VE?
Running CentOS Stream 10 as a virtual machine on Proxmox gives you the best of both worlds:
- Isolation β Your CentOS VM is sandboxed from the host and from other VMs. You can experiment freely without risking the stability of other workloads.
- Snapshots β Proxmox allows you to take point-in-time snapshots before making risky changes. Roll back in seconds if something goes wrong.
- Resource efficiency β Multiple CentOS VMs can run on a single physical machine, consolidating your hardware footprint.
- Easy cloning β Once configured, you can clone the VM into templates and spin up identical environments in minutes.
- Backup automation β Proxmox includes built-in scheduled backup tools that work for all your VMs, including CentOS instances.
Prerequisites and System Requirements
Before we start, make sure you have the following ready:
For the Proxmox Host Machine
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 64-bit with Intel VT-x or AMD-V | 8+ cores, modern gen |
| RAM | 4 GB | 16 GB or more |
| Storage (Host OS) | 120 GB SSD | 250 GB+ SSD |
| Storage (VM Disk) | Separate drive or partition | 100 GB+ per VM |
| Network | Wired Ethernet (NIC) | Gigabit wired |
| USB Drive | 8 GB (for Proxmox installer) | β |
Important: Wi-Fi is not supported as a primary network interface in Proxmox. A wired Ethernet connection is mandatory.
For the CentOS Stream 10 VM
| Component | Minimum | Recommended |
|---|---|---|
| vCPU | 2 | 4+ |
| RAM | 2 GB | 4 GB+ |
| Disk | 20 GB | 50 GB+ |
| CPU Architecture | x86_64-v3 (AVX/AVX2 support required) | β |
Software You Will Need
- Proxmox VE 9.1 ISO β download from proxmox.com/en/downloads
- CentOS Stream 10 ISO β download from centos.org (select the DVD or minimal ISO for x86_64)
- Rufus (Windows) or balenaEtcher (cross-platform) to flash the Proxmox ISO to USB
- A second computer or device with a web browser to access the Proxmox web UI
Part 1: Install Proxmox VE on Your Host Machine
If Proxmox VE is already installed and running, skip to Part 2. If you are starting from scratch, follow these steps.
Step 1.1 β Download and Verify the Proxmox ISO
Head to the official Proxmox downloads page and grab the latest Proxmox VE 9.1 ISO Installer (approximately 1.83 GB). The filename will follow the pattern proxmox-ve_9.1-1.iso.
After downloading, verify the checksum to make sure the file is not corrupted:
# On Linux/macOS
sha256sum proxmox-ve_9.1-1.iso
Compare the output with the SHA256 hash listed on the official downloads page. A mismatch means the file downloaded incorrectly β re-download before proceeding.
Step 1.2 β Flash the ISO to a USB Drive
On Windows: Open Rufus, select the Proxmox ISO, choose your USB drive, set the partition scheme to GPT, target system to UEFI, and select DD Image mode when prompted. Click Start.
On Linux/macOS:
# Replace /dev/sdX with your actual USB device path (be careful!)
sudo dd if=proxmox-ve_9.1-1.iso of=/dev/sdX bs=4M status=progress && sync
Step 1.3 β Boot and Install Proxmox VE
- Insert the USB drive into your target machine and boot from it (you may need to adjust boot order in BIOS/UEFI).
- Select Install Proxmox VE (Graphical) from the boot menu.
- Accept the End User License Agreement (EULA).
- Select the target hard disk where Proxmox will be installed. For most setups, leaving the default filesystem (ext4) is fine. If you plan to use ZFS with mirroring for redundancy, click “Options” to configure.
- Set your Country, Timezone, and Keyboard Layout.
- Create a strong root password (minimum 12 characters recommended) and enter a valid email address β Proxmox uses it for critical system alerts.
- Configure the network interface:
- Select your wired NIC from the dropdown
- Assign a static IP address (e.g.,
192.168.1.50) - Set the correct subnet mask (commonly
255.255.255.0) - Point the gateway to your router (e.g.,
192.168.1.1) - Set a DNS server (e.g.,
1.1.1.1or9.9.9.9) - Set a Fully Qualified Domain Name (FQDN) as the hostname (e.g.,
pve.home.lan)
- Review the installation summary and click Install.
- Wait 5β10 minutes for the installer to finish.
- Remove the USB drive and reboot when prompted.
Step 1.4 β Access the Proxmox Web Interface
After reboot, the console will show you a URL like:
https://192.168.1.50:8006
Open this address in a browser on another computer on the same network. You will see a security warning because Proxmox uses a self-signed SSL certificate β click “Advanced” and proceed. Log in with:
- Username:
root - Password: (the root password you set during installation)
- Realm:
Linux PAM standard authentication
You are now inside the Proxmox web dashboard.
Part 2: Upload the CentOS Stream 10 ISO to Proxmox
Before creating a VM, you need the CentOS Stream 10 installation ISO available on your Proxmox host.
Step 2.1 β Download the CentOS Stream 10 ISO
Go to centos.org and download the CentOS-Stream-10-latest-x86_64-dvd1.iso (full DVD, ~10 GB) or the Boot ISO if you prefer a minimal network install. For offline installation, the DVD ISO is recommended.
Step 2.2 β Upload the ISO via the Web UI
- In the Proxmox web interface, expand the left panel and click your node name (e.g.,
pve). - Click local (pve) under the node.
- In the right panel, select ISO Images.
- Click Upload and select the CentOS Stream 10 ISO from your local machine.
- Wait for the upload to complete. Large ISOs may take a few minutes depending on your connection speed.
Alternative: Download directly to Proxmox via URL
If your Proxmox host has internet access, you can download the ISO directly from the shell:
# SSH into your Proxmox host first
ssh root@192.168.1.50
# Navigate to ISO storage
cd /var/lib/vz/template/iso
# Download CentOS Stream 10 ISO (replace URL with latest mirror)
wget https://mirror.stream.centos.org/10-stream/BaseOS/x86_64/iso/CentOS-Stream-10-latest-x86_64-dvd1.iso
After downloading, it will appear automatically in the ISO Images section of the web UI.
Part 3: Create a New Virtual Machine for CentOS Stream 10
Now comes the core of this guide β building the VM.
Step 3.1 β Open the Create VM Wizard
In the Proxmox web UI, click the blue “Create VM” button in the top-right corner.
Step 3.2 β General Tab
- Node: Select your Proxmox node (e.g.,
pve) - VM ID: Leave the auto-generated ID (e.g.,
100) or assign a custom one - Name: Give your VM a descriptive name, e.g.,
centos-stream-10
Click Next.
Step 3.3 β OS Tab
- Use CD/DVD disc image file (iso): Selected by default
- Storage:
local - ISO image: Select
CentOS-Stream-10-latest-x86_64-dvd1.iso - Guest OS Type:
Linux - Version:
6.x - 2.6 Kernel(closest match for the kernel 6.12 in CentOS Stream 10)
Click Next.
Step 3.4 β System Tab
This is important for optimal performance with CentOS Stream 10:
- Graphic card:
Default - Machine:
q35β this gives access to PCIe and modern chipset emulation - BIOS:
OVMF (UEFI)β recommended for CentOS Stream 10 with Secure Boot considerations - Check “Add EFI Disk” and select your storage when prompted
- SCSI Controller:
VirtIO SCSI singleβ best performance for disk I/O - Qemu Agent: Check this box β this enables the QEMU Guest Agent, which gives Proxmox better visibility into the VM (IP address reporting, graceful shutdown, freeze-aware snapshots)
Click Next.
Step 3.5 β Disk Tab
- Bus/Device:
VirtIO BlockorSCSI(with VirtIO SCSI controller selected above, use SCSI) - Storage: Select your storage pool (e.g.,
local-lvm) - Disk size:
50 GBis a good starting point; adjust based on your planned workload - Cache:
Write back(better performance; useNoneif data integrity is critical without UPS) - Discard: Enable if your storage is SSD-backed (enables TRIM support)
Click Next.
Step 3.6 β CPU Tab
- Sockets:
1 - Cores:
2(minimum) or4(recommended for development/server use) - Type:
hostβ passes through the actual CPU flags of your host, which is important since CentOS Stream 10 requires x86_64-v3 support (AVX/AVX2). This ensures the VM has access to those instruction sets.
Tip: Using CPU type
hostmeans the VM cannot be live-migrated to a host with a different CPU model. For clustering with migration, usex86-64-v3instead.
Click Next.
Step 3.7 β Memory Tab
- Memory (MiB):
4096(4 GB) minimum;8192(8 GB) for heavier workloads - Leave Ballooning enabled if you want Proxmox to dynamically adjust memory allocation
Click Next.
Step 3.8 β Network Tab
- Bridge:
vmbr0β the default virtual bridge that connects VMs to your physical network - Model:
VirtIO (paravirtualized)β best performance - VLAN Tag: Leave blank unless you are using VLANs
- Firewall: Enable if desired
Click Next.
Step 3.9 β Confirm Tab
Review the full summary of your VM configuration. If everything looks correct, click Finish. The VM will appear in the left panel under your node.
Part 4: Install CentOS Stream 10 in the VM
Step 4.1 β Start the VM
Select the newly created VM in the left panel, then click Start. Open the console by clicking Console in the top menu (or click >_ Console on the VM’s Summary tab).
You will see the Anaconda installer boot menu. Select Install CentOS Stream 10 and press Enter.
Step 4.2 β Select Language and Keyboard
Choose your preferred installation language and keyboard layout. Click Continue.
Step 4.3 β Installation Summary Screen
This is the central Anaconda hub. You should configure the following before clicking “Begin Installation”:
Installation Destination
- Click on it and select the virtual disk Proxmox created (e.g.,
vdafor VirtIO orsdafor SCSI) - Choose Automatic partitioning for simplicity, or Custom if you need specific partition layouts
- Click Done
Software Selection
- Choose Minimal Install for a lean server base (no GUI)
- Or select Server with GUI if you want GNOME 47 desktop
- For most server/homelab purposes, Minimal Install + Standard is the right choice
Network and Hostname
- Toggle the network interface ON
- The VM will attempt to get an IP via DHCP automatically
- Set a hostname (e.g.,
centos10-vm.local) - Click Done
Time and Date
- Set your appropriate timezone
- Enable Network Time (NTP) if your VM has internet access
Root Password
- Set a strong root password, or
- Create a regular user with administrator privileges (note: CentOS Stream 10’s Anaconda now checks the “Make user administrator” box by default β review this before proceeding on multi-user systems)
Step 4.4 β Begin Installation
Click Begin Installation. The process typically takes 5β15 minutes depending on your hardware. When it completes, click Reboot System.
Step 4.5 β Post-Reboot First Login
After reboot, the VM will boot into CentOS Stream 10. Log in with root and the password you set. You should see a terminal prompt like:
[root@centos10-vm ~]#
Verify the OS version:
cat /etc/centos-release
Output should show something like:
CentOS Stream release 10
Check the kernel:
uname -r
Expected output: 6.12.x-xxx.el10.x86_64
Part 5: Post-Installation Configuration
Step 5.1 β Install the QEMU Guest Agent
This is the most important post-install step. The QEMU Guest Agent enables Proxmox to:
- Display the VM’s IP address in the web interface
- Perform graceful, file-system-aware shutdowns and snapshots
- Communicate with the VM even when network details change
# Install the QEMU guest agent
dnf install -y qemu-guest-agent
# Enable and start the service
systemctl enable --now qemu-guest-agent
# Verify it is running
systemctl status qemu-guest-agent
Once running, go back to the Proxmox web interface, select your VM’s Summary tab, and you should now see the VM’s IP address listed.
Step 5.2 β Update the System
Apply all available updates immediately after installation:
dnf update -y
CentOS Stream 10 uses DNF 4.20 and its two main repositories β BaseOS and AppStream β are enabled by default. The CRB (CodeReady Linux Builder) repository is available but disabled by default:
# Enable CRB repository if needed for development packages
dnf config-manager --set-enabled crb
Step 5.3 β Configure Static Networking (Optional)
If you prefer a static IP instead of DHCP, edit the network configuration:
# List available network interfaces
nmcli device status
# Assign a static IP (replace values as needed)
nmcli con mod ens18 ipv4.addresses 192.168.1.100/24
nmcli con mod ens18 ipv4.gateway 192.168.1.1
nmcli con mod ens18 ipv4.dns "1.1.1.1 8.8.8.8"
nmcli con mod ens18 ipv4.method manual
nmcli con up ens18
# Verify
ip addr show ens18
Step 5.4 β Enable and Configure Firewall
CentOS Stream 10 ships with firewalld as the default firewall. Enable it and open only the ports you need:
# Start and enable firewalld
systemctl enable --now firewalld
# Check the current zone
firewall-cmd --get-active-zones
# Allow SSH (if not already allowed)
firewall-cmd --permanent --add-service=ssh
# Reload firewall rules
firewall-cmd --reload
Step 5.5 β Install VirtIO Drivers (Already Included)
Good news: CentOS Stream 10 ships with VirtIO drivers built into the kernel. Since we selected the VirtIO network and disk adapters during VM creation, the system already uses them natively. No additional driver installation is required.
Verify:
# Check that the VirtIO network driver is loaded
lsmod | grep virtio_net
# Check that the VirtIO block driver is loaded
lsmod | grep virtio_blk
Step 5.6 β Take Your First Proxmox Snapshot
Now that CentOS Stream 10 is installed and configured, this is a perfect time to take a baseline snapshot in Proxmox. This gives you a recovery point before any future configuration changes.
- In the Proxmox web UI, select your VM
- Click the Snapshots tab
- Click Take Snapshot
- Name it something meaningful:
fresh-install-centos10 - Optionally add a description and check Include RAM if you want to capture the live memory state
- Click Take Snapshot
Proxmox VM Settings: Quick Reference Cheat Sheet
| Setting | Recommended Value for CentOS Stream 10 |
|---|---|
| Machine Type | q35 |
| BIOS | OVMF (UEFI) |
| SCSI Controller | VirtIO SCSI single |
| Disk Interface | VirtIO / SCSI |
| Network Model | VirtIO (paravirtualized) |
| CPU Type | host (single node) or x86-64-v3 (cluster) |
| QEMU Guest Agent | Enabled |
| Discard (TRIM) | Enabled (for SSD storage) |
Troubleshooting Common Issues
VM fails to boot or shows kernel panic
This is often caused by a CPU type mismatch. CentOS Stream 10 requires x86_64-v3 support (AVX/AVX2). Go to the VM’s Hardware β CPU and change the type to host or verify your host CPU supports these extensions with grep -m1 flags /proc/cpuinfo | grep -o "avx2".
QEMU Guest Agent not showing IP in Proxmox
Make sure the agent is installed, enabled, and running inside the VM (systemctl status qemu-guest-agent). Also confirm the Qemu Agent checkbox was enabled in VM Options within Proxmox.
Network not working after installation
Check if the interface is up (nmcli device status) and whether NetworkManager is running (systemctl status NetworkManager). For DHCP, run nmcli con up ens18.
Installer shows “This hardware is not supported” warning
CentOS Stream 10 added deprecation warnings for CPUs that meet the v3 minimum but may not be supported in future releases. This is a warning, not a blocker β installation will proceed normally.
Disk not recognized during installation
If you chose a VirtIO disk bus and the Anaconda installer cannot detect the disk, switch the disk bus to SATA in the VM hardware settings for the installation, then switch back to VirtIO after installing and installing VirtIO drivers manually.
Final Thoughts
Getting Proxmox VE and CentOS Stream 10 running together is not complicated once you understand the workflow β but the details matter. Choosing the right machine type (q35), using VirtIO adapters, enabling the QEMU Guest Agent, and selecting the correct CPU type are the small decisions that separate a well-performing VM from a frustrating one.
CentOS Stream 10 “Coughlan” is a compelling choice for anyone building on the RHEL ecosystem without the licensing cost. With Linux kernel 6.12, a modern toolchain, and support until at least 2030, it is a solid foundation for running web servers, databases, containers, and more inside your Proxmox environment.
Whether you are building a homelab, testing enterprise workloads, or learning Linux virtualization β this stack gives you professional-grade capabilities at zero licensing cost. Happy building!







