Creating Your First VM in Proxmox VE
Learn how to create and configure your first virtual machine in Proxmox VE, from uploading an ISO to installing the guest agent for optimal performance.
Before You Start
To create a virtual machine in Proxmox VE, you need two things: a working Proxmox installation and an ISO image of the operating system you want to install. This guide walks you through every step, from uploading the ISO to starting your VM and installing the QEMU Guest Agent for better integration with the Proxmox host.
We will use Ubuntu Server 24.04 LTS as our example, but the process is nearly identical for any Linux distribution, Windows, or FreeBSD.
Step 1: Upload an ISO Image
First, you need to get the installer ISO onto your Proxmox server.
Option A: Upload via the Web UI
- Log in to the Proxmox web interface at
https://your-server-ip:8006. - In the left sidebar, expand your node and click on your storage (usually local).
- Click ISO Images in the content panel.
- Click Upload and select the ISO file from your computer.
Option B: Download Directly on the Server
You can also download the ISO directly to the server using the Download from URL button, or via SSH:
cd /var/lib/vz/template/iso/
wget https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso
Step 2: Create the Virtual Machine
Click the Create VM button in the top-right corner of the Proxmox web UI. This opens the VM creation wizard with several tabs.
General Tab
- Node: Select the Proxmox node where the VM will run.
- VM ID: Proxmox assigns an ID automatically (e.g., 100). You can change this if you prefer a specific numbering scheme.
- Name: Give your VM a descriptive name, such as
ubuntu-server.
OS Tab
- ISO image: Select the ISO you uploaded from the dropdown.
- Type: Choose Linux and the appropriate kernel version (6.x for modern distributions).
System Tab
- Machine: Leave as
q35(recommended for modern OSes). - BIOS: Use OVMF (UEFI) for modern systems. This requires adding an EFI disk, which Proxmox will prompt you to create.
- SCSI Controller: Set to VirtIO SCSI Single for the best performance.
- Qemu Agent: Check this box — we will install the agent later.
Disks Tab
- Bus/Device: VirtIO Block or SCSI (both offer excellent performance with VirtIO SCSI controller).
- Storage: Select where to store the virtual disk (e.g.,
local-lvm). - Disk size: 32 GB is a good starting point for a Linux server. You can always expand later.
- Discard: Enable if your storage supports TRIM (SSD/thin provisioning).
CPU Tab
- Sockets: 1 (leave as default).
- Cores: Assign based on your workload. Start with 2 cores for a basic server.
- Type: Use host for the best performance if you do not plan to live-migrate the VM. Use x86-64-v2-AES or similar if you need migration compatibility.
Memory Tab
- Memory (MiB): 2048 MB (2 GB) is sufficient for a basic Ubuntu Server. Allocate more for heavier workloads.
- Ballooning: Leave enabled — this allows Proxmox to dynamically manage memory allocation.
Network Tab
- Bridge:
vmbr0(the default Linux bridge). - Model: VirtIO (paravirtualized) — this provides the best network performance.
- Firewall: Enable if you want Proxmox's built-in firewall to apply rules to this VM.
Confirm and Create
Review your settings on the Confirm tab and click Finish. Proxmox creates the VM in a few seconds.
Step 3: Install the Operating System
- Select your new VM in the left sidebar.
- Click Start in the top-right toolbar.
- Open the Console tab to see the VM's display.
- Follow the Ubuntu Server installer as you normally would — select your language, configure networking, partition the disk, create a user account, and install.
- When the installation completes, the VM will prompt you to reboot.
Tip: After the OS is installed, you can remove the ISO from the VM. Go to Hardware → CD/DVD Drive and select Do not use any media.
Step 4: Install the QEMU Guest Agent
The QEMU Guest Agent enables better communication between the Proxmox host and the VM. It allows Proxmox to cleanly shut down the VM, freeze the filesystem for consistent snapshots, and report the VM's IP address in the web UI.
SSH into your new VM (or use the console) and install the agent:
# On Debian/Ubuntu
sudo apt update
sudo apt install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
# On CentOS/RHEL/AlmaLinux
sudo dnf install -y qemu-guest-agent
sudo systemctl enable --now qemu-guest-agent
After installation, verify the agent is running:
sudo systemctl status qemu-guest-agent
Back in the Proxmox web UI, navigate to your VM's Summary tab. You should now see the VM's IP address listed, confirming the guest agent is communicating with the host. With a tool like ProxmoxR, you can also view guest agent data — including IP addresses — directly from your phone, making it easy to grab connection details when you are not at your workstation.
Step 5: Optimize VM Performance
With the basic VM running, consider these optimizations:
Enable VirtIO Drivers (Windows VMs)
If you are installing Windows, you will need to load VirtIO drivers during installation for the disk and network to be detected. Download the VirtIO ISO from the Proxmox website and attach it as a second CD/DVD drive before starting the installer.
Adjust CPU and Memory
Monitor your VM's resource usage in the Proxmox web UI. If you see consistently high CPU or memory usage, increase the allocation. You can change these settings while the VM is stopped — or hot-plug additional CPUs and memory if your OS supports it.
Take a Snapshot
Before making any significant changes, take a snapshot so you can easily roll back:
# Via the command line
qm snapshot 100 clean-install --description "Fresh OS install"
# Or use the Snapshots tab in the web UI
Common VM CLI Commands
While the web UI is convenient, you can also manage VMs from the command line:
# List all VMs
qm list
# Start a VM
qm start 100
# Stop a VM gracefully
qm shutdown 100
# Force stop a VM
qm stop 100
# View VM configuration
qm config 100
# Clone a VM
qm clone 100 101 --name ubuntu-clone
What to Do Next
With your first VM running, you are ready to explore more of what Proxmox VE offers. Try creating an LXC container for a lightweight service, set up automated backups, or experiment with snapshots and clones. Each step builds your confidence with the platform and prepares you for more advanced use cases like clustering and high availability.
Take Proxmox management mobile
All the features discussed in this guide — accessible from your phone with ProxmoxR. Real-time monitoring, power control, firewall management, and more.