On this page
You created a Windows VM on Proxmox, booted the installer, clicked through to “Where do you want to install Windows?” — and the disk list is empty. Nothing is broken. Windows just can’t see the fast VirtIO disk you gave it, because setup doesn’t ship the driver for it. This is the single most common wall people hit installing Windows on Proxmox VE, and it’s a five-minute fix once you know the trick.
This post is the fourth in the Proxmox Virtualization Basics series and picks up right where creating your first VM leaves off — the VM exists, now let’s get Windows actually installed on it with fast disk and network drivers and a working guest agent.
The commands and steps below use placeholder values — swap them for yours before running anything:
100— the VM’s ID (<vmid>); use your VM’s number.local-lvm— the storage for the VM disk and the TPM; use whatever storage you created.local— the storage that holds your ISOs.vmbr0— the Linux bridge your NIC attaches to.
If a value looks specific to one machine, it’s a placeholder to change — not a literal to copy.
The one thing that trips everyone up
Windows setup carries drivers for emulated hardware — an old Intel NIC, a SATA controller — so it can install onto those without help. It does not carry a driver for the paravirtualized VirtIO SCSI controller, which is the whole point of VirtIO: instead of pretending to be a real disk controller (slow), it talks to the host almost directly (fast). No driver, no disk in the list. Here’s the exact moment and the fix:
The rest of this post is really just three things: set the VM up so it uses VirtIO, load the driver mid-install so Windows can see the disk, then install the guest tools so networking and clean shutdowns work.
Task 1: Set up the VM and attach the driver ISO
First download the VirtIO driver ISO onto your Proxmox host and configure the VM to use VirtIO hardware. The Proxmox Windows guest guide recommends exactly this layout.
Grab the stable virtio-win.iso into your ISO storage. The stable build tracks what ships with the current Red Hat Enterprise Linux release, so it’s the safe default over latest.
cd /var/lib/vz/template/iso
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
In Datacenter → your VM → Hardware, set the disk’s SCSI Controller to VirtIO SCSI single, put the disk on the SCSI bus with Write back cache and Discard on, and set the network device to VirtIO (paravirtualized). In Options, tick QEMU Guest Agent. If you prefer the shell, the same config from the host is:
qm set 100 --scsihw virtio-scsi-single
qm set 100 --scsi0 local-lvm:64,cache=writeback,discard=on,iothread=1
qm set 100 --net0 model=virtio,bridge=vmbr0
qm set 100 --agent enabled=1
qm set 100 --ostype win11
Add a second CD-ROM drive and point it at virtio-win.iso. Keep your Windows install ISO where it is (Proxmox puts it on ide2 by default) and give the driver ISO its own slot — ide0 — so the two never collide.
qm set 100 --ide0 media=cdrom,file=local:iso/virtio-win.iso
Windows 11’s official requirements include TPM version 2.0 and UEFI Secure Boot, so a Windows 11 VM needs a virtual TPM plus OVMF (UEFI) firmware on the q35 machine type — see the Proxmox Windows 11 guide. Add the TPM from the host with qm set 100 --tpmstate0 local-lvm:1,version=v2.0. Windows 10 doesn’t need this.
Task 2: Load the storage driver during setup
Boot the VM from the Windows ISO and click through until you reach the disk-selection screen with the empty list. This is where the driver goes in.
Click Load driver → Browse, open the virtio-win CD, and navigate to the folder for your Windows version: vioscsi\w11\amd64 for Windows 11 (or vioscsi\w10\amd64 for Windows 10). Select Red Hat VirtIO SCSI pass-through controller and click Next. The disk appears in the list.
Use w11 for Windows 11 and w10 for Windows 10 or Server 2016/2019. Picking the wrong version’s folder is the usual reason “I loaded the driver and it still didn’t work” — the driver loads but doesn’t match, so no disk shows.
While you’re here, load the network driver so Windows has internet the moment it boots: Load driver → Browse → NetKVM\w11\amd64 (or w10), and select Redhat VirtIO Ethernet Adapter. Now finish the install normally — pick the disk and let Windows copy files.
Task 3: Install the guest tools after first boot
Windows is installed, but it’s still missing the balloon driver and the guest agent that lets Proxmox talk to it. The VirtIO ISO is still mounted, so finish the job from inside Windows.
Open the virtio-win CD in File Explorer and run virtio-win-gt-x64.msi. This installs every remaining VirtIO driver (balloon, serial, and friends) in one pass, so you don’t have to hunt through Device Manager for yellow warning icons.
From the same CD, run guest-agent\qemu-ga-x86_64.msi. This is what makes the Qemu Agent box you ticked in Task 1 actually do something: clean shutdowns from the Proxmox UI, the VM’s real IP shown in the summary, and filesystem-consistent backups.
Back in the Proxmox web UI, the VM’s Summary page should now show its IP address next to the network device instead of “Guest Agent not running.” That’s your one-glance proof the agent is alive.
What’s next
That’s a fully paravirtualized Windows guest — fast disk, fast network, clean shutdowns, consistent backups. From here you can template it and clone Windows VMs in seconds with Cloud-Init-style templating, or hand it a real GPU with PCIe passthrough if it’s going to do graphics work. And if you ever wonder whether a workload even needs a full VM at all, the VM-vs-LXC decision guide (below) is the place to start.
Related posts:
- Creating Your First Proxmox VM: A Complete Walkthrough — build the VM this post installs Windows into
- Proxmox VM vs LXC: When to Use Each — decide whether a workload should be a VM at all
- Proxmox GPU Passthrough: Give One VM the Whole Card — hand a physical GPU to your Windows guest
- Proxmox Cloud-Init Templates: New VMs in 30 Seconds Flat — template this Windows VM and clone it fast
- Configure a Windows VirtIO VM from the CLI — the copy-paste qm commands behind this guide
- Proxmox Storage Guide: LVM, ZFS, NFS, and Ceph — where the VM disk and the VirtIO ISO live
Comments
Comments are powered by GitHub Discussions — sign in with a GitHub account to join the conversation.