Grab any "top Proxmox VMs" list from a homelab forum and Ubuntu Server is almost always sitting near the top. It's free, it's got five years of security patches on the LTS releases, and just about every piece of self-hosted software ships a Docker image or install script that assumes you're running it. If you just installed Proxmox VE and you're staring at an empty node wondering what to spin up first, an Ubuntu VM is a genuinely good place to start.
This guide walks through the whole process on Proxmox VE 9.2: downloading the ISO, running through the Create VM wizard with settings that actually make sense for Ubuntu, getting through the installer, and doing the handful of post-install steps that turn a bare VM into something Proxmox can actually manage properly. None of this assumes you've built a VM before.
What You Will Learn
- How to get the Ubuntu Server ISO onto your Proxmox node
- How to configure a new VM correctly for a modern Linux guest
- How to get through the Ubuntu installer without tripping over the confusing parts
- How to install the QEMU Guest Agent so Proxmox can see the VM's IP address and shut it down cleanly
- What to do when the VM won't boot, has no network, or the installer loops back on itself
What Is This Feature?
A virtual machine (VM) is a full, isolated computer that runs on top of your physical Proxmox server. It gets its own virtual CPU, RAM, disk, and network card, and from the inside it has no idea it isn't real hardware. Proxmox VE uses KVM (Kernel-based Virtual Machine), a virtualization technology built into the Linux kernel, to run these VMs with performance close to bare metal.
An Ubuntu VM, specifically, means installing Ubuntu Server — the non-graphical, minimal edition of Ubuntu meant for servers rather than desktops — inside one of these virtual machines. You install it the same way you'd install it on a physical PC: boot from an ISO, click through the installer, end up with a working Linux system. The only difference is that "the PC" is a Proxmox VM instead of a box under your desk.
Why Would You Use It?
Ubuntu Server has become something of a default choice in the self-hosting world. Docker, Portainer, Nextcloud, Pi-hole, Home Assistant OS alternatives, Jellyfin — nearly all of it has documentation written with Ubuntu or Debian in mind, which saves you from translating install instructions written for a different distro.
Running it as a VM rather than installing it directly on hardware gives you a few things a bare-metal install can't: snapshots you can roll back to before you break something, the ability to clone the VM to test an upgrade, and the option to move it to a different physical server later if your hardware situation changes. If you're coming from VMware or just want one guest OS for Docker containers and another for testing, this is the natural building block.
Prerequisites
Before you start, make sure you have:
- A working Proxmox VE 9.x installation with access to the web UI (usually
https://your-node-ip:8006) - At least 20 GB of free space on the storage you plan to use for the VM's disk, plus a bit more for the ISO
- 2 GB of RAM to spare for the VM — Ubuntu Server will run on 1 GB, but 2 GB gives you breathing room if you're installing Docker or a database later
- An internet connection on the Proxmox host, so you can download the ISO and the VM can reach package repositories after install
You don't need a monitor or keyboard plugged into the server itself — everything here happens through the Proxmox web console in your browser.
Step-by-Step Tutorial
Step 1: Download the Ubuntu Server ISO
Head to ubuntu.com/download/server and grab the current LTS release. As of mid-2026 that's Ubuntu Server 24.04.3 LTS ("Noble Numbat"), which is the safer pick if you want five years of support and a version everyone else's tutorials are also using. Ubuntu 26.04 LTS ("Resolute Raccoon") is out too if you want the newest packages — the install process below is identical either way.
If your Proxmox node has internet access, it's often faster to skip the download-then-upload dance and pull the ISO straight onto the server. SSH into your Proxmox host and run:
wget -P /var/lib/vz/template/iso/ https://releases.ubuntu.com/24.04/ubuntu-24.04.3-live-server-amd64.iso
That drops the file directly into local storage's ISO folder, and it'll show up in the web UI without any manual upload.
Step 2: Upload the ISO (if you downloaded it locally instead)
If you downloaded the ISO to your own laptop, go to your node in the left-hand tree, click local storage, open the ISO Images tab, and click Upload. Pick the file and wait — a 24.04 server ISO is roughly 2.9 GB, so this can take a few minutes depending on your connection.
Step 3: Start the Create VM Wizard
Click the Create VM button in the top-right corner of the Proxmox web UI. On the General tab, pick a VM ID (Proxmox suggests the next free number, and there's rarely a reason to change it), and give it a name like ubuntu-server. The name is just a label for you — it doesn't need to match the hostname you'll set inside Ubuntu, though it's a lot less confusing if it does.
Step 4: OS Tab
Select the storage where you uploaded the ISO, then choose it from the ISO image dropdown. For Type, pick Linux, and for Version, choose 6.x – 2.6 Kernel. That option is really just "modern Linux kernel" — Proxmox uses it to pick sensible defaults elsewhere, and it covers Ubuntu 24.04 and 26.04 fine.
Step 5: System Tab
This is where a couple of defaults are worth changing. Set Machine to q35 — it emulates a newer chipset with PCIe support, and it's what current Linux distributions expect. Set BIOS to OVMF (UEFI) instead of the older SeaBIOS; Ubuntu boots fine either way, but UEFI is the modern standard and matches what you'd get on real hardware.
Choosing OVMF adds an EFI Storage field — pick the same storage you're using for the VM disk. It only needs about 4 MB, so don't worry about sizing it.
Further down, tick the Qemu Agent checkbox. This tells Proxmox to expect the QEMU Guest Agent once it's installed inside the VM — you'll actually install the agent software in Step 11, but flipping this switch now saves you a trip back here later.
Step 6: Disks Tab
Set Bus/Device to VirtIO SCSI single. VirtIO is a paravirtualized driver interface — instead of Proxmox pretending to be a real SATA or IDE controller, the guest talks to it through a much more efficient virtual channel, which means noticeably better disk throughput. Ubuntu has VirtIO drivers built into its kernel already, so there's nothing extra to install like there is on Windows.
Set the disk size to at least 20 GB — 32 GB is a comfortable default if you're planning to install Docker or anything with real storage needs later. If your underlying storage supports it (ZFS and most thin-provisioned storage do), tick Discard. That lets the guest tell the storage layer when blocks are no longer in use, so deleted files inside Ubuntu actually free up space on the host instead of the disk image just growing forever.
Step 7: CPU Tab
Give it 2 cores to start — you can always add more later without reinstalling anything. For Type, the default kvm64 is the safest choice if you might migrate this VM to a different physical CPU down the line, but if this server isn't part of a cluster, switching to host exposes your real CPU's full instruction set to the guest and usually gives a small but real performance bump.
Step 8: Memory Tab
2048 MB (2 GB) is a reasonable starting point for a general-purpose Ubuntu Server VM. Leave Ballooning Device enabled — it lets Proxmox reclaim unused memory from the VM under pressure rather than locking it away permanently, though for a single VM on a lightly loaded node it won't make a huge difference either way.
Step 9: Network Tab
Leave the bridge as vmbr0 (the default virtual network bridge that connects your VMs to your physical LAN) unless you've set up something custom. Set Model to VirtIO (paravirtualized) — same reasoning as the disk controller, it's faster than emulating a real NIC and Ubuntu supports it natively.
Step 10: Confirm and Start
Review the summary screen, tick Start after created if you want the wizard to boot it immediately, and click Finish. Proxmox creates the VM and, if you checked the box, powers it on straight into the Ubuntu installer.
Step 11: Run Through the Ubuntu Installer
Open the VM's console from the Proxmox UI (click the VM, then Console) and you'll land in Ubuntu's text-based installer, called Subiquity. It looks intimidating the first time but it's mostly "press Enter to accept the default":
- Pick your keyboard layout
- On the network screen, DHCP will already have grabbed an IP from your router — you can move on, or set a static IP here if you already know the address you want
- Skip the proxy and mirror screens unless you actually use one
- For storage, choose Use an entire disk and accept the LVM layout it proposes — this gives you the flexibility to resize the disk later without repartitioning by hand
- Set up your profile: your name, a username, and a password. Pick something you'll remember, because you're about to need it
- On the SSH screen, tick Install OpenSSH server. This is the step people skip and then regret — without it you're stuck using the Proxmox console for everything instead of a normal terminal
- Skip the snap package list — you can install anything you need later with plain
apt
The installer copies files and finishes with "Install complete!" Select Reboot Now.
Step 12: Remove the ISO After Reboot
Here's the part that trips up almost everyone the first time: after rebooting, the VM tries to boot from the installer ISO again instead of the disk, because the ISO is still attached as a virtual CD drive. When the installer prompts you to remove the medium and press Enter, just press Enter — Proxmox usually detaches it automatically at that point. If it boots back into the installer anyway, go to Hardware on the VM, select the CD/DVD Drive, click Edit, and set it to Do not use any media, then reset the VM.
Step 13: Log In and Update
Once it boots to a login prompt, sign in with the username and password you created. First thing, update the package lists and installed packages:
sudo apt update && sudo apt upgrade -y
This can take a minute or two on a fresh install since it's usually pulling a few months' worth of security patches.
Step 14: Install the QEMU Guest Agent
Remember that Qemu Agent checkbox from Step 5? This is where it actually gets used. Install the agent package inside Ubuntu:
sudo apt install qemu-guest-agent -y
sudo systemctl enable --now qemu-guest-agent
Go back to the VM's Summary tab in Proxmox and you should now see its actual IP address listed, instead of a blank field. Without this agent, Proxmox has no visibility into what's happening inside the guest — no IP address, and a "shutdown" click sends a hard power-off signal instead of a clean shutdown -h now.
Commands Explained
| Command | What it does |
|---|---|
wget -P /var/lib/vz/template/iso/ <url> | Downloads a file directly to Proxmox's default ISO storage folder, so it shows up in the web UI without a manual upload |
sudo apt update | Refreshes Ubuntu's local list of available packages and versions from its configured repositories — it doesn't install anything by itself |
sudo apt upgrade -y | Installs the newer versions of any packages that apt update found, automatically confirming the prompt |
sudo apt install qemu-guest-agent -y | Installs the guest-side service that lets Proxmox query the VM's status, IP address, and issue clean shutdowns |
sudo systemctl enable --now qemu-guest-agent | Starts the guest agent immediately and sets it to start automatically on every future boot |
ip a | Lists the VM's network interfaces and their assigned IP addresses — useful for confirming networking worked without relying on the Proxmox summary tab |
Common Errors
"No bootable device" right after creating the VM usually means the ISO never actually got attached, or you unchecked something during the wizard. Check Hardware on the VM and confirm the CD/DVD drive still points at your ISO.
The VM boots straight back into the installer after you thought you finished. This is almost always the ISO-still-mounted issue from Step 12 — the fix is detaching the CD/DVD drive.
Black screen with a blinking cursor and nothing else for more than a minute or two after boot often means the disk controller or display settings are mismatched with what the installer expects. Double-check you selected VirtIO SCSI single on the Disks tab and q35 on the System tab before installing — changing them after Ubuntu is already installed can leave the disk unreadable at boot.
Console shows the VM running but the Proxmox IP address field on the Summary tab stays blank indefinitely. That's the guest agent — either you forgot to install it inside Ubuntu, or you forgot to tick the Qemu Agent checkbox when creating the VM (fixable afterward under Options → QEMU Guest Agent).
Troubleshooting
If networking doesn't come up at all inside the VM — no IP from DHCP, ip a only shows lo — check that the VM's network device is actually attached to a bridge with real uplink, and that vmbr0 on the Proxmox host itself has a working physical NIC attached. A VM can be perfectly configured and still have no internet if the bridge itself isn't wired to anything.
If the installer seems to hang for a very long time on the "starting the installer" splash screen, give it a minute before assuming it's broken — Subiquity can be slow to load on a node with fewer than 2 vCPUs assigned. If it's genuinely frozen after five minutes, stop the VM, bump vCPU count to 2 or more, and try again.
If you enabled Discard on the disk but your host storage doesn't actually support TRIM, disk performance can occasionally suffer rather than improve. This mostly matters on ZFS or thin LVM — if you're using plain local directory storage on a spinning disk, it's safe to leave that box unchecked.
SSH connection refused after enabling OpenSSH during install? Give the VM a minute after boot — the SSH daemon starts a little after login becomes available. If it's still refused after that, run sudo systemctl status ssh inside the console to check whether the service actually started.
Best Practices
Take a snapshot right after the first successful boot and update, before you install anything else. It costs almost nothing in disk space and gives you an instant rollback point if a later change breaks something.
Stick with VirtIO SCSI single and the VirtIO network adapter for every Linux guest you build going forward — there's essentially no downside, and the performance difference over emulated hardware is real, especially on disk I/O.
Set a static IP either through the Ubuntu installer's network screen or with netplan afterward if this VM is going to run any kind of service. DHCP is fine for a quick test VM, but it's annoying to chase down a changed IP address for something you SSH into every day.
If you find yourself repeating these same steps for a third or fourth Ubuntu VM, it's worth looking into cloud-init templates instead — Proxmox can clone a pre-configured template and have a fully networked VM ready in under a minute, without touching the installer at all. It's a bigger topic on its own, but worth knowing the option exists once manual installs start feeling repetitive.
Frequently Asked Questions
Do I need to install VirtIO drivers separately for Ubuntu, like you do for Windows?
No. Ubuntu's kernel already includes VirtIO drivers, so as long as you pick VirtIO devices in the wizard, they work immediately with no extra installation step.
Should I use the Ubuntu Desktop ISO instead of Server?
Only if you actually need a graphical desktop inside the VM. Server is lighter, boots faster, and is what almost every self-hosted app's documentation assumes you're running.
24.04 LTS or 26.04 LTS — which should I pick?
24.04 LTS has been out longer and has a bigger pile of tested tutorials and compatibility reports behind it. 26.04 LTS is newer with more current packages. For a first VM, either is a fine choice — I'd lean 24.04 if you're following other guides alongside this one.
Can I resize the VM's disk after creation?
Yes, from the VM's Hardware tab, though you'll also need to grow the partition and filesystem inside Ubuntu afterward — resizing the virtual disk alone doesn't automatically expand what Ubuntu sees.
How much RAM does this actually need?
Ubuntu Server idles comfortably around 300-500 MB. 2 GB total gives you room for a handful of lightweight services; bump it up if you're planning to run Docker with several containers or anything memory-hungry like a database.
Conclusion
Once you've done this once, it's maybe a ten-minute process the second time around — most of that spent waiting on the installer rather than actually clicking anything. The two habits worth carrying forward are enabling OpenSSH during install and installing the guest agent right after first boot; skip either one and you'll be back here later trying to figure out why Proxmox can't see the VM's IP or why you're locked out of SSH. From here, a natural next step is turning this into an LXC container comparison for lighter workloads, or looking at cloud-init templates once you're tired of clicking through the same installer screens more than a couple of times.