If you've been running Rocky Linux or Debian VMs on your Proxmox box and you're wondering what all the fuss about AlmaLinux is, here's the short version: it's another free rebuild of Red Hat Enterprise Linux, it's stable, and it's a solid pick if you want something you can run for years without surprises. This walkthrough gets you from a downloaded ISO to a running AlmaLinux 9 virtual machine with the guest agent working, on a plain Proxmox VE host.
You don't need a cluster, shared storage, or any prior Red Hat experience. A single Proxmox node with a few gigabytes of free disk space is enough to follow along.
What You Will Learn
By the end of this guide you'll know how to:
- Download the right AlmaLinux ISO and get it onto your Proxmox storage
- Build a new VM with settings that actually make sense for a Linux server
- Walk through the AlmaLinux installer (Anaconda) without getting lost
- Install and enable the QEMU Guest Agent so Proxmox can talk to the VM properly
- Fix the handful of things that trip people up the first time
What Is This Feature?
AlmaLinux is a Linux distribution built to be binary-compatible with Red Hat Enterprise Linux (RHEL). When CentOS Linux stopped being a stable, long-term release back in 2020, AlmaLinux (along with a couple of other projects) stepped in to fill that gap. It's maintained by the AlmaLinux OS Foundation, it's free, and new major versions roughly follow RHEL's own release cadence — AlmaLinux 9 tracks RHEL 9, AlmaLinux 10 tracks RHEL 10, and so on.
In Proxmox terms, there's nothing exotic here. AlmaLinux installs the same way any Linux ISO does: you create a VM, attach the ISO as a virtual CD, and run through the installer. The interesting part is choosing settings that suit a server workload rather than a desktop, which is what most of this guide focuses on.
Why Would You Use It?
A few reasons people reach for AlmaLinux specifically:
- RHEL compatibility. If you're studying for a Red Hat certification, or you need something that behaves like production RHEL servers at work, AlmaLinux is close enough that muscle memory transfers directly.
- Long support windows. AlmaLinux 9 is supported into 2032, which matters if you're setting up something you don't want to rebuild every couple of years.
- dnf and rpm tooling. If you're more comfortable with Red Hat's package manager than Debian's apt, this is the natural home for that.
Honestly, if you're already happy running Debian or Ubuntu VMs and don't have a specific reason to switch, there's no urgent need to add AlmaLinux to the mix. But if you're supporting RHEL-based systems anywhere else, running the same family in your homelab or test environment saves you from relearning things twice.
Prerequisites
Before you start, make sure you have:
- A working Proxmox VE host (8.x or 9.x — this guide applies to both) that you can already log into via the web interface
- At least 32 GB of free space on whatever storage you plan to use for the VM disk
- At least 2 GB of RAM free for the VM (4 GB is more comfortable if you plan to install a desktop environment)
- A way to download files to your own computer, so you can upload the ISO to Proxmox
You don't need a subscription key for any of this — the free "no-subscription" repository is enough to build and run VMs.
Step-by-Step Tutorial
1. Download the AlmaLinux ISO
Grab the installer from almalinux.org/get-almalinux. You'll be offered a choice of images — for a first install, the DVD ISO (roughly 9-10 GB for AlmaLinux 9) is the safest option because it includes everything the installer needs without pulling packages from the internet during setup. There's also a smaller "minimal" ISO if your Proxmox host has fast, reliable internet access and you don't mind the installer fetching packages live.
2. Upload the ISO to Proxmox
In the Proxmox web interface, click your storage (usually local) in the left-hand tree, then open the ISO Images tab and click Upload. Pick the file you just downloaded. On a typical home internet connection, uploading a 10 GB file can take a while — if your Proxmox host itself has decent bandwidth, it's often faster to SSH in and use wget to pull the ISO directly into /var/lib/vz/template/iso/ instead of uploading through the browser.
3. Create the VM
Click Create VM in the top right. You'll step through several tabs:
- General: Give it a VM ID and a name like
almalinux9. Nothing unusual here. - OS: Select your uploaded ISO, and for Type choose Linux, with version 6.x - 2.6 Kernel (this covers any modern kernel, including AlmaLinux 9's).
- System: Leave Machine as
q35unless you have a specific reason to change it — it's a more modern, better-supported virtual chipset than the olderi440fx. For BIOS, either SeaBIOS or OVMF (UEFI) works fine for AlmaLinux; SeaBIOS is simpler and is what most people use unless they specifically need UEFI features. Tick Qemu Agent now — it saves a step later. - Disks: Set Bus/Device to SCSI, and change the SCSI Controller (back on the System tab, or under Disks depending on your Proxmox version) to VirtIO SCSI single. This is the fastest disk driver available and it's what current Proxmox defaults to on new installs. Give the disk at least 32 GB — AlmaLinux itself is small, but you'll want room to grow.
- CPU: 2 cores is plenty to start. For Type,
hostgives the VM the full instruction set of your physical CPU, which is faster, but makes the VM harder to migrate to different hardware later. For a single-node homelab setup,hostis the better choice. - Memory: 2048 MB minimum, 4096 MB if you're planning to run anything with a GUI.
- Network: Leave the model as VirtIO (paravirtualized) and the bridge as
vmbr0(or whichever bridge you use).
Review the summary and click Finish. Don't start the VM yet — start it manually from the VM's console so you can watch the boot process.
4. Run the AlmaLinux installer
Select your new VM, open the Console, and click Start Now. You'll land in the Anaconda installer, the same graphical installer RHEL and Fedora use.
Work through the menu screens:
- Installation Destination: Select the virtual disk and let AlmaLinux handle partitioning automatically unless you have a specific layout in mind. For a first VM, automatic partitioning is fine.
- Software Selection: For a headless server, pick Minimal Install. It boots faster, uses less RAM, and gives you a clean base to build on with
dnf installlater. - Network & Hostname: Turn the network interface on and set a hostname if you want one other than
localhost. - Root Password / User Creation: Set a root password, or better, create a regular user and tick Make this user administrator so you get sudo access without logging in as root directly.
Click Begin Installation. On a modern host this usually takes 8-12 minutes for a minimal install. When it finishes, remove the ISO (Proxmox usually prompts you, or you can do it manually under the VM's Hardware tab) and reboot.
5. Install the QEMU Guest Agent
Log in, then run:
sudo dnf install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
This is a small service that lets Proxmox get accurate information from inside the VM — things like the actual IP address, a clean shutdown signal, and filesystem-consistent snapshots. Without it, Proxmox is essentially guessing at what's happening inside the guest.
Commands Explained
| Command | What it does |
|---|---|
dnf install -y qemu-guest-agent | Installs the guest agent package without prompting for confirmation. dnf is AlmaLinux's package manager, the equivalent of apt on Debian. |
systemctl enable --now qemu-guest-agent | Enables the service to start on every boot, and starts it immediately with --now so you don't need a second command. |
dnf update | Refreshes package metadata and installs available updates — worth running right after your first login. |
ip a | Shows the VM's network interfaces and assigned addresses, useful for confirming the network actually came up. |
Common Errors
A few things catch people out during their first AlmaLinux install:
- Installer boots to a blank or garbled screen. This usually happens with certain display settings on older Proxmox versions. Switching the VM's display to Standard VGA under Hardware, or adding
nomodesetas a boot parameter at the Anaconda splash screen, almost always fixes it. - "No such device" or the disk doesn't show up in the installer. This means the SCSI controller wasn't set to VirtIO SCSI before the VM was created, or the driver mismatch confused the installer. Shut down, fix the controller type under Hardware, and try again — this has to be set before install, not after.
- VM has no IP address after install. Nine times out of ten this is just NetworkManager not activating the interface automatically. Run
nmcli con upfollowed by the connection name, or checknmcli device statusto see what's actually available.
Troubleshooting
If the guest agent shows as "not running" in the Proxmox summary tab even after you installed and enabled it, double check that you actually ticked Qemu Agent in the VM's Options tab — installing the service inside the VM does nothing if Proxmox itself isn't configured to look for it. You'll need to reboot the VM after ticking that box for it to take effect.
Slow disk performance inside the VM is almost always a controller mismatch. If you accidentally left the disk on the default IDE or SATA bus instead of VirtIO SCSI, you'll notice it — installs and updates that should take a couple of minutes drag on for much longer. Fixing this after the fact means adding a new disk with the correct bus, then either copying data across or reinstalling.
If the installer can't reach the internet during a minimal-ISO install (package downloads failing), check that the VM's network bridge actually has a path to your router. This is a Proxmox networking problem, not an AlmaLinux one — test it by pinging your gateway from inside the VM before blaming the OS.
Best Practices
A few habits that make life easier down the road:
- Take a snapshot immediately after the first successful boot and guest agent install. It costs almost nothing in disk space and gives you an easy rollback point before you start installing your actual workload.
- Stick with Minimal Install for anything server-related. You can always add a desktop environment later with
dnf groupinstall "Server with GUI"if you change your mind. - Run
dnf updateright after setup, then set up automatic security updates withdnf-automaticif this VM isn't something you'll be logging into daily. - If you're going to clone this VM repeatedly, convert it to a template after the base setup is done rather than reinstalling from scratch each time.
Frequently Asked Questions
Is AlmaLinux free to use?
Yes, completely. There's no subscription, no registration, and no feature gating between the free and paid tiers — because there isn't a paid tier.
Should I pick AlmaLinux or Rocky Linux?
Functionally they're extremely close — both are RHEL rebuilds with similar release timing. Pick whichever your workplace or community uses, or just go with the one you already have documentation for.
Do I need UEFI/OVMF for AlmaLinux?
No. Unlike Windows 11, AlmaLinux doesn't require Secure Boot or a virtual TPM. SeaBIOS works fine for a standard server install.
Can I run a desktop environment on this VM later?
Yes, though you'll want to bump the RAM allocation to at least 4 GB first. Install one with dnf groupinstall "Server with GUI" and reboot.
Why did Proxmox recommend q35 instead of i440fx?
q35 is the newer of the two virtual machine chipsets Proxmox can emulate, with better PCIe support. There's no real downside to using it for a fresh AlmaLinux install.
Conclusion
Once you've done this once, spinning up additional AlmaLinux VMs takes maybe fifteen minutes, most of which is just waiting for the installer to copy files. The settings that matter — VirtIO SCSI for disk, VirtIO for network, the guest agent ticked and installed — are the same ones you'd want for any Linux server VM on Proxmox, so this same process carries over directly if you ever branch out to Rocky Linux, CentOS Stream, or anything else in the RHEL family.
From here, a sensible next step is converting this VM into a template so you're not repeating the installer steps every time you need a fresh AlmaLinux box.