Proxmox VE: Complete Guide to Linux Virtualization

Tested on: Proxmox VE 8.2 on Dell OptiPlex 7080, HP EliteDesk 800 G6, Beelink Mini S12 Pro — Last updated: June 2026
Proxmox VE is a Debian-based bare-metal hypervisor that combines KVM virtual machines and LXC containers under a single web interface. It replaced VMware ESXi as the default choice for serious home labs after Broadcom killed the free ESXi tier, and it runs in production at thousands of small businesses with zero licensing cost. This guide takes you from a blank machine to a fully configured Proxmox host with working VMs, containers, storage, backups, and a hardened post-install setup.
Why Proxmox Over the Alternatives
Before diving into installation, here's the honest comparison:
| Platform | Free | KVM | Containers | Web GUI | Best For |
|---|---|---|---|---|---|
| Proxmox VE | Yes (community) | Yes | LXC | Yes | Home labs, small business |
| VMware ESXi | No (post-Broadcom) | ESXi | No | Yes | Enterprise (costly) |
| XCP-ng | Yes | Xen | No | Xen Orchestra | Open XenServer replacement |
| QEMU/KVM | Yes | Yes | No | No | CLI power users |
| VirtualBox | Yes | Yes | No | Desktop only | Developer workstations |
The community edition of Proxmox is not a crippled demo. Clustering, live migration, ZFS, Ceph, backups, and HA are all fully available without a subscription. The paid tiers buy you access to the enterprise repository (more conservative package cadence) and commercial support — neither of which most home lab operators need.
Prerequisites
- CPU: 64-bit with hardware virtualization — Intel VT-x or AMD-V. Enable this in BIOS/UEFI if it isn't already. Verify with:
egrep -c '(vmx|svm)' /proc/cpuinfo— any result above 0 means you're good. - RAM: 8 GB minimum. 16–32 GB is the practical sweet spot for running multiple VMs simultaneously.
- Storage: Proxmox itself uses about 8 GB. SSDs are strongly recommended — NVMe for VM disk images, SATA SSD acceptable for backup storage. Spinning disks for primary VM storage will noticeably hurt performance.
- Network: Wired gigabit Ethernet. Wi-Fi is not supported as the primary management interface — the Linux bridge Proxmox creates requires a wired NIC.
- A dedicated machine: Proxmox installs on bare metal and replaces any existing OS on the target disk. Do not install it on a machine you need for anything else.
- USB drive: 8 GB or larger to write the installer ISO.
Download and Write the Installer
Get the ISO from proxmox.com/downloads. The current release is proxmox-ve_8.2-2.iso.
Write it to USB on Linux:
# Find your USB device first — do NOT guess
lsblk
# Write the ISO (replace sdX with your actual device, e.g., sdb)
sudo dd if=proxmox-ve_8.2-2.iso of=/dev/sdX bs=4M status=progress oflag=syncOn Windows or macOS, use Balena Etcher. On Windows, Rufus also works — write in DD mode, not ISO mode.
Installation
Boot from the USB (usually F12, F2, or Del for the boot menu depending on your hardware). Select Install Proxmox VE (Graphical).
Work through the installer screens:
- EULA: Accept.
- Target disk: Select your install disk. Click Options to choose the filesystem. For a single-disk system,
ext4is fine. For two or more disks, choose ZFS (RAID1) for mirror — this gives you data redundancy and snapshot capability at the OS level. - Country, timezone, keyboard.
- Password and email: Set a strong root password. This is your only admin account until you add more users.
- Network configuration:
- Management interface: select your wired NIC (usually
eno1oreth0) - Hostname: use FQDN format — e.g.,
pve.homelab.local - IP address: assign a static IP — never DHCP for the Proxmox host itself. Example:
192.168.1.10/24 - Gateway: your router IP, typically
192.168.1.1 - DNS:
1.1.1.1or8.8.8.8
- Management interface: select your wired NIC (usually
- Review the summary, click Install. Installation takes 5–10 minutes.
- Remove the USB when prompted, let the system reboot.
Post-Installation Setup
Access the Web Interface
From any machine on the same network, open:
https://192.168.1.10:8006Accept the self-signed certificate warning. Log in as root, Realm: PAM, using the password you set during installation.
Remove the Subscription Nag
Every login shows a subscription warning dialog if you haven't purchased a license. This one-liner patches the check:
ssh root@192.168.1.10
sed -i.bak "s/data.status !== 'Active'/false/g"
/usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js
systemctl restart pveproxyNote: this patch may need to be re-applied after Proxmox package updates.
Switch to the No-Subscription Repository
The enterprise repository requires a paid subscription and will cause apt update to fail with a 401 error. Switch to the community repo:
# Disable the enterprise repo
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/pve-enterprise.list
# Disable Ceph enterprise repo if it exists
[ -f /etc/apt/sources.list.d/ceph.list ] &&
sed -i 's/^deb/#deb/' /etc/apt/sources.list.d/ceph.list
# Add the no-subscription community repo
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription"
> /etc/apt/sources.list.d/pve-no-subscription.list
# Update and upgrade
apt update && apt dist-upgrade -yEnable IOMMU for PCIe Passthrough (Optional)
If you plan to pass through a GPU or NIC directly to a VM, enable IOMMU now:
# Edit GRUB config
nano /etc/default/grub
# For Intel CPUs, change GRUB_CMDLINE_LINUX_DEFAULT to:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt"
# For AMD CPUs:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt"
# Apply and reboot
update-grub
reboot# After reboot, verify IOMMU is active:
dmesg | grep -e DMAR -e IOMMU | head -5Creating Your First VM
Upload an ISO
In the left panel: pve → local → ISO Images → Upload. Upload an Ubuntu 26.04, Debian 12, or Windows ISO. Alternatively, click Download from URL and paste the direct ISO link — Proxmox fetches it directly without going through your workstation.
Create the VM
Click Create VM (top-right button) and configure each tab:
- General: VM ID (start at 100), Name (e.g.,
ubuntu-24) - OS: Select your ISO. Type: Linux, Version: 6.x - 2.6 Kernel
- System: Leave BIOS as SeaBIOS unless you need UEFI. Check Qemu Agent.
- Disks: Bus: VirtIO (fastest paravirtual driver). Storage: local-lvm. Size: 32 GB minimum for Linux, 60+ GB for Windows.
- CPU: Sockets: 1, Cores: 2. Type: host — this exposes the actual CPU flags to the VM and gives the best performance.
- Memory: 2048 MB for a basic Linux VM, 4096+ for desktop or Windows.
- Network: Bridge: vmbr0, Model: VirtIO.
Click Finish, then select the VM and click Start. Open Console to interact with the installer.
Install QEMU Guest Agent
After the OS is installed, run this inside the VM. Without it, Proxmox can't report the VM's IP address or do clean snapshot-consistent backups:
# Inside an Ubuntu/Debian VM:
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agentLXC Containers
LXC containers share the host kernel but have isolated filesystems, networking, and process trees. They start in under two seconds and use a fraction of the RAM a full VM requires. Use them for Linux-only services you trust — web servers, databases, monitoring stacks, DNS resolvers.
Download a Container Template
In the UI: local → CT Templates → Templates. Download ubuntu-24.04-standard or debian-12-standard.
Create a Container
Click Create CT and configure:
- General: Container ID (101+), hostname, root password or SSH public key
- Template: Select the downloaded template
- Disks: 8 GB is sufficient for most services
- CPU: 1 core
- Memory: 512 MB (bump to 1024+ for databases)
- Network: Set a static IP or use DHCP
Managing containers from the CLI is often faster than the UI:
# List all containers
pct list
# Start, stop, enter shell
pct start 101
pct stop 101
pct enter 101
# Create a container entirely from CLI
pct create 101
local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst
--hostname webserver
--rootfs local-lvm:8
--memory 512
--net0 name=eth0,bridge=vmbr0,ip=dhcp
--start 1Storage Configuration
Default Proxmox storage after installation:
- local — directory storage on the root partition. Holds ISO files, container templates, and VZDump backups.
- local-lvm — LVM thin pool on the same disk. Holds VM disk images and container rootfs volumes. Supports thin provisioning and fast snapshots.
To add a second disk for VMs or backups:
# Identify the new disk
lsblk
# Format and add as a directory store (simple approach)
mkfs.ext4 /dev/sdb
mkdir /mnt/data
echo '/dev/sdb /mnt/data ext4 defaults 0 2' >> /etc/fstab
mount -a
# Register it with Proxmox
pvesm add dir data-storage --path /mnt/data --content images,iso,backup# ZFS pool from two disks (mirror):
zpool create -f tank mirror /dev/sdb /dev/sdc
# Register ZFS pool as Proxmox storage
pvesm add zfspool tank-storage --pool tank --content images,rootdir
# Verify storage:
pvesm statusFor NAS integration, add NFS under Datacenter → Storage → Add → NFS. Specify the server IP, the export path, and set Content to Backups and ISO Images.
Backups and Snapshots
Snapshots
Select a VM or container → Snapshots → Take Snapshot. Snapshots are instant and stored on the same storage as the VM. They're perfect for saving state before a risky change — roll back with one click if something breaks. Don't use snapshots as a substitute
