By Edy Werder — IT Consultant & Tech Blogger
Introduction
Installing Ubuntu as a virtual machine on Proxmox VE provides a powerful combination of enterprise-grade virtualization with one of the most popular Linux distributions. This guide covers the complete process of creating Ubuntu VMs within the Proxmox virtual environment, from initial preparation through post-installation optimization.

What This Guide Covers
This guide includes uploading ISO images to Proxmox VE, creating virtual machines through the web interface and shell, completing the Ubuntu installation process, and configuring essential post-installation settings. We focus specifically on Ubuntu Server deployments.
What This Guide Doesn’t Cover
This guide does not cover installing Proxmox VE itself on bare metal hardware, installing Proxmox on existing Debian systems, or running Proxmox VE on Ubuntu host systems. For initial Proxmox VE installation, refer to my dedicated Proxmox installation guide.
Who This Is For
This guide is designed for system administrators, homelab enthusiasts, and IT professionals working with virtualization platforms.
Why This Matters
Ubuntu VMs or Debian VM are probably the most installed guests operating systems on Proxmox VE. It enables cost-effective server configuration with various services like Samba file server, Web server, database server and various other Linux tools.
What You’ll Learn:
- Create and configure Ubuntu virtual machines on Proxmox VE
- Upload and manage ISO images through the proxmox web interface
- Optimize network and performance settings
- Troubleshoot common installation and connectivity issues
Understanding Proxmox VE and Ubuntu Virtualization
Proxmox VE is an open-source virtualization platform built on Debian that combines KVM hypervisor technology with LXC containers in a unified web-based management interface.
The Proxmox virtual environment leverages the same code base as enterprise virtualization solutions while maintaining open-source accessibility. The platform uses KVM (Kernel-based Virtual Machine) technology to run full virtual machines, including Ubuntu operating systems, with near-native performance on physical servers.
The proxmox ve web interface provides comprehensive tools to manage virtual machines, configure network settings, handle storage allocation, and monitor system performance without requiring command-line interface access for basic operations.
Why Ubuntu Virtual Machines on Proxmox
Ubuntu LTS (Long Term Support) releases offer five years of security updates and stability, making them ideal candidates for virtual machine deployments. The Ubuntu operating system provides excellent hardware detection, extensive package repositories, and strong community support that translates well to virtualized environments.
Resource efficiency compared to bare-metal installations allows multiple Ubuntu VMs to run on a single Proxmox host, maximizing hardware utilization. Additionally, Proxmox VE’s snapshot and backup capabilities provide robust data protection for Ubuntu systems during development and testing phases.
Prerequisites and Preparation Steps
Before creating Ubuntu virtual machines, ensure your Proxmox VE environment meets the necessary requirements and gather the required installation materials.
System Requirements for Ubuntu VMs
Proxmox VE version 7.0 or newer provides optimal compatibility with modern Ubuntu releases. The Proxmox host system should have sufficient resources to allocate to virtual machines while maintaining host system stability.
For Ubuntu Server installations, allocate at least 2GB RAM and 20GB storage space. Ubuntu Desktop requires 4GB RAM minimum and 25GB storage space for adequate performance. These requirements scale based on intended workload and the number of concurrent virtual machines.
Downloading Ubuntu ISO Files
Ubuntu 24.04 LTS Server offers a minimal installation ideal for server workloads, while Ubuntu Desktop provides a complete graphical environment suitable for development and testing scenarios. Download the appropriate ISO image file from the official ubuntu.com website to ensure authenticity and latest security patches.
Server editions typically require 1.5GB download size, while Desktop editions approach 3-4GB. Both versions provide the same underlying Linux kernel and package management capabilities, differing primarily in pre-installed software packages and default configurations.
Transition: With prerequisites confirmed and materials prepared, we can proceed to the step-by-step Ubuntu VM installation process.
Step-by-Step Ubuntu VM Installation Process
Creating Ubuntu virtual machines on Proxmox VE involves uploading the installation medium, configuring virtual hardware, and completing the Ubuntu installation process through the VM console.
Step-by-Step: Uploading ISO image of Ubuntu to Proxmox
When to use this: Before creating any Ubuntu virtual machine on Proxmox VE.
- Navigate to Storage: Click your Proxmox node in the left sidebar, expand the storage section, and select “local” storage
- Access ISO Images: Click “ISO Images” in the content area to view uploaded installation media
- Upload File: Click the “Upload” button, select your Ubuntu ISO file from local computer, and confirm the upload
- Verify Completion: Wait for upload progress to reach 100% and confirm the ISO appears in the images list

I have written a separate article detailing the steps to upload an ISO image in Proxmox.
Creating a virtual machine (Web-GUI method)
To install Ubuntu in Proxmox, create a VM with a Linux OS type, a VirtIO SCSI controller, and enable the QEMU guest agent.
Navigate to the “Create VM” button in the top-right corner of the Proxmox interface to launch the virtual machine creation wizard. The wizard guides you through essential configuration steps for optimal Ubuntu performance.
General: Assign a unique VM ID (typically starting from 100) and provide a descriptive name like “ubuntu-server-01” or “ubuntu-desktop-test” for easy identification in the VM list.
OS Tab: Select “Linux” as the operating system type and choose your uploaded Ubuntu ISO image as the installation medium. Enable “QEMU Guest Agent” option for enhanced VM management capabilities.
System Options: Keep default settings for most configurations, ensuring SCSI controller type remains “VirtIO SCSI” for optimal performance with Ubuntu’s VirtIO drivers. Enable “QEMU Guest Agent” option for enhanced VM management capabilities. I also recommend to use the UEFI BIOS

Hard Disk: Allocate 25GB storage space for Ubuntu Desktop or 20GB for Ubuntu Server. Select “VirtIO Block” as the bus type and choose an appropriate storage location based on your Proxmox VE configuration. For cache, I recommend “write back”
There is also an option to set a backup for these virtual machines.

CPU Configuration: Assign 2 CPU cores for basic Ubuntu installations, adjusting as needed based on the intended workload requirements. I usually don’t change the settings except the cores.
Memory Allocation: Configure 4GB RAM for Ubuntu Desktop or 2GB for Ubuntu Server installations. Enable ballooning if available to allow dynamic memory adjustment. Memory is in MB, so 4GB is 4096MB
Network Settings: Use the default vmbr0 bridge with VirtIO network adapter for optimal network performance and compatibility with Ubuntu’s built-in VirtIO drivers. Additionally, employing the VirtIO paravirtualized network device ensures efficient and high-performance networking within your Proxmox virtual machines.

Creating the Ubuntu Virtual Machine from Proxmox Node Shell (Alternative method)
Creating a Proxmox VM without the GUI – just copy and paste the below scripted code in the node shell and Proxmox will create a virtual machine. Adjust the first section for a different VM name or disk size.
# --- adjust these ---
VMID=120
NAME="Ubuntu-Server-24.04"
STORAGE="local-zfs" # e.g., local-lvm, tank, etc.
ISO="local:iso/ubuntu-24.04.2-live-server-amd64.iso"
DISK_GB=25
BRIDGE="vmbr0"
# --- create VM skeleton ---
qm create $VMID --name "$NAME" --ostype l26
--memory 4096 --cores 2 --sockets 1 --cpu host
--machine q35 --bios ovmf --scsihw virtio-scsi-pci
--agent enabled=1
--net0 virtio,bridge=$BRIDGE,firewall=1
# EFI vars disk + TPM 2.0 (matches your GUI summary)
qm set $VMID --efidisk0 ${STORAGE}:1,efitype=4m,pre-enrolled-keys=1
qm set $VMID --tpmstate0 ${STORAGE}:1,version=v2.0
# System disk on SCSI (SSD flag + discard)
qm set $VMID --scsi0 ${STORAGE}:$DISK_GB,ssd=1,discard=on
# Attach the Ubuntu ISO as a CD-ROM on SATA (most reliable with OVMF)
qm set $VMID --sata0 $ISO,media=cdrom
# Make the VM boot from the ISO first, then the system disk
qm set $VMID --boot order=sata0;scsi0
# OPTIONAL: start on host boot
qm set $VMID --onboot 1
# Start the VM and run the Ubuntu installer
qm start $VMIDBelow, you see a choice of mini-PCs that run Proxmox. These are great for testing Proxmox clusters in your IT department or home lab.
-
Buy on Amazon$1,139.00I earn a commission if you make a purchase, at no additional cost to you.
11/03/2025 06:02 pm GMT -
Buy on Amazon$349.99I earn a commission if you make a purchase, at no additional cost to you.
11/03/2025 06:02 pm GMT
Proxmox Ubuntu install
Pick your path
Scenario | Cloud-Init Template (recommended) | Normal GUI Install (ISO) |
|---|---|---|
Deploying multiple Ubuntu servers fast | ✅ Best choice | |
One-off Desktop or interactive server | ✅ Use the installer | |
Standardized, repeatable builds | ✅ | |
Click-through wizard preferred | ✅ | |
No installer; boots ready with SSH user/key | ✅ |
A) Normal GUI Install (using the VM we created)
Start the newly created VM and access the console through the proxmox web interface to begin Ubuntu installation. The console displays the Ubuntu boot menu with installation options.

Select “Try or Install Ubuntu Server” and proceed.
Configure language preferences, keyboard layout, and regional settings according to your requirements.
Type of Installation: Leave Ubuntu Server (already select install option
Network Configuration: Ubuntu installer typically detects the VM network automatically through DHCP. For static IP address assignment, manually configure network settings during installation or modify configuration post-installation.

Proxy configuration: in most cases not needed.
Archive mirror configuration: The mirror address should be according to your regional settings. In my case it is Switzerland (CH)

Disk Partitioning: Choose “Use entire disk” for guided partitioning in test environments, or select manual partitioning for custom layouts. The installer automatically recognizes VirtIO disks in properly configured VMs. I would not select “Set up this disk LVM group”
What’s an LVM group (in plain English)?
An LVM group (Volume Group) is a storage pool that merges one or more disks/partitions into a single “big bucket.” From that bucket you carve out Logical Volumes (LVs) that act like flexible partitions for VM disks. It’s fast and simple, and with LVM-thin you can even thin-provision space.
Why you might skip it in Proxmox’s guided setup:
LVM doesn’t provide data integrity checksums, built-in compression, or ZFS-style snapshots/rollbacks. Expanding or moving volumes can be trickier than with ZFS, and you’ll often end up with two storages anyway (e.g., local for ISOs/templates and local-lvm for VM disks). If you want snapshots, integrity, and easy growth, many homelab users prefer ZFS; if you want maximum simplicity and don’t need those features, LVM (or LVM-thin) is fine.
Profile configuration Create an administrative user account with sudo privileges. Set the hostname for the server
Upgrade to Ubuntu Pro

Here’s the quick value prop for Ubuntu Pro:
- Longer security coverage: extends LTS to up to 10 years and adds Expanded Security Maintenance (ESM) for thousands of Universe packages—so not just the core OS gets fixes. Ubuntu Documentation
- Kernel Livepatch: apply critical kernel patches without rebooting, improving uptime on hosts/VMs. Ubuntu Community Hub
- Compliance & hardening options: access FIPS 140-2 certified crypto, CIS hardening (Ubuntu Security Guide), and related tooling—useful if you ever need stricter policies. Ubuntu Documentation
- Free tier: free for personal use up to 5 machines (and up to 50 for official Ubuntu community members).
Bottom line: For homelab/SMB VMs, enabling Ubuntu Pro provides broader security updates and live patching at no additional cost (within the free tier), which is ideal for long-lived Proxmox guests.
SSH configuration: I recommend selecting “Install OpenSSH server” and, optionally, import your SSH public key.
The feature server snaps are the last screen before the installation starts.
Installation timing varies from 10 to 30 minutes, depending on selected packages, VM storage performance, and network connectivity for package downloads.
B) Cloud-Init Template (fast, repeatable) from the command line
Using a cloud-init image is the most efficient method for deploying new Ubuntu VMs.
This path uses the Ubuntu cloud image (not the installer ISO). I create a template once, then clone it in seconds. Proxmox injects per-VM settings (user, SSH key, hostname, IP) via a tiny cloudinit drive.
Below you see a ready script to paste in the Proxmox node shell. Change the variable and set a disk size – in my example, it is 300GB. There are also ways to define default settings in the script cloud-init.
After you run the script, you’ll see the newly created VM in the Web-GUI. Don’t start the VM yet,
Why should you not start the VM?
On first boot, Ubuntu generates host-unique secrets and IDs. If you boot the base and then template it, every clone inherits those settings, which is undesirable.
# variables you can adapt
VMID=9000
STOR=local-zfs
NAME="Edy-ubuntu-cloud2"
DISK_SIZE=300G # <-- desired virtual disk size
#download from URL current image - in this example Ubuntu noble 24.04 LTS
wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
# Create VM (SeaBIOS default, no UEFI)
qm create $VMID --memory 2048 --cores 2 --name "$NAME" --net0 virtio,bridge=vmbr0
# Import the Ubuntu cloud image as the OS disk
qm disk import $VMID noble-server-cloudimg-amd64.img $STOR
# Attach it as scsi0 (virtio-scsi)
qm set $VMID --scsihw virtio-scsi-pci --scsi0 $STOR:vm-$VMID-disk-0
# Resize the disk to your desired size
qm resize $VMID scsi0 $DISK_SIZE
# Add Cloud-Init drive and minimal defaults
qm set $VMID --ide2 local:cloudinit
# (optional) add user naem and dhcp
# qm set $VMID --ciuser edy --ipconfig0 ip=dhcp
# (optional) add your SSH key:
# qm set $VMID --sshkey ~/.ssh/id_rsa.pub
# Legacy boot from scsi0 (SeaBIOS)
qm set $VMID --bootdisk scsi0 --boot order=scsi0
qm set $VMID --serial0 socket --vga serial0
Above you see my Cloud-Init settings. I set the DNS server and IP Config to DHCP.
To convert the Cloud-Image to a Proxmox template just right-click the VM and choose “convert to template”
After that you can use the template to clone it to a new VM.

Post-Installation Configuration and Optimization
Proper post-install steps ensure great performance and smooth management in Proxmox VE.
Enables clean shutdowns, IP address reporting in the Proxmox UI, and safer snapshots.
sudo apt update && sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agentIn Proxmox: open the VM → Options → QEMU Guest Agent → Enabled (if it was Off).
(Tip: after first enabling, reboot once so Proxmox reads the agent state.)
Network check (quick sanity)
ip -br a # concise IP overview
hostname -I # primary IP(s)
ping -c 3 1.1.1.1 # basic connectivity
ping -c 3 google.com # DNS + routing
curl -I https://ubuntu.comSet a static IPs: edit Netplan (network configuration file) in /etc/netplan/*.yaml,
sudo netplan try # safe apply with rollback
# or
sudo netplan applyDisk growth (if you resized the VM disk)
Most Ubuntu cloud images auto-grow on first boot. If not:
sudo apt install -y cloud-guest-utils
sudo growpart /dev/sda 1
sudo resize2fs /dev/sda1 # use xfs_growfs if root is XFSTemplate hygiene (cloud-init path)
When using cloud-init, don’t boot the base VM before templating—each clone should be the first boot. This guarantees unique machine-id, SSH host keys, and fresh cloud-init runs.
What this guide covered
- Creating a new VM via the GUI
- Creating a new VM from the Proxmox shell
- Normal ISO install (interactive Ubuntu installer)
- Cloud-Init approach (template → instant, repeatable clones)
Conclusion & Next Steps
- For one-off desktop testing, the ISO wizard is perfect.
- For repeatable servers, the cloud-init template is faster and safer.
- Install the QEMU Guest Agent on every VM.
- Add backups (Proxmox backup jobs) and consider Ubuntu Pro for extended security (free for up to 5 machines).
- Optional: automate post-install with Ansible or per-clone cloud-init snippets (packages, users, hardening).
I’d love to hear from you — was this article helpful? Share your thoughts in the comments below. If you prefer, you can also reach me by email or connect with me on Reddit at Navigatetech.
Before you go …
Before you go, if you’re setting up Proxmox on Ubuntu, chances are you’re also thinking about the right hardware to run your home lab efficiently. Choosing the right system can make a huge difference in performance, energy usage, and scalability. I recently explored some top compact options that balance power and price exceptionally well. If you’re considering a small but capable machine for virtualization or container workloads, take a look at The Best Mini PC for Home Server. It might just help you find the perfect hardware match for your Proxmox setup.
IT Consultant & Blogger
Hi, I’m Edy Werder. I’m an IT consultant and the publisher of Edy’s Tech Blog. With 30+ years in the industry, I write hands-on guides about homelabs, Proxmox, NAS, and WordPress—tested in my own lab before I hit publish. If this article helped, consider supporting the site or sharing it with a friend.
Enjoying the content?
No sponsors, no fluff—just real configs and results.


