Windows on Proxmox: Building a Windows Server VM That Doesn't Crawl

Hi there! It's BOB.

Proxmox VE is a home lab favorite. It's free, it's powerful, and it runs on just about any old PC you've got lying around. But the first time you install Windows on it, something odd happens: Windows Setup looks at your nice new virtual disk and says…

"We couldn't find any drives."

Don't panic! Windows just doesn't speak Proxmox's fastest "languages" out of the box. Today we'll teach it, and build a Windows Server VM that runs quickly, shuts down politely and reports back to Proxmox like a good houseguest.

Why Windows Needs Help

Proxmox can pretend to be old, familiar hardware (an IDE disk, an Intel network card), and Windows has drivers for those. But pretending is slow.

The fast option is VirtIO: paravirtualized devices built for virtual machines. Instead of imitating real hardware, the VM and the host cooperate directly. Linux has VirtIO drivers built in. Windows needs them installed, from a free ISO maintained by the Fedora project.

So before you start, upload two ISOs to your Proxmox storage:

  1. Your Windows Server ISO (the free evaluation works great for labs).
  2. The VirtIO drivers ISO (virtio-win.iso, the "stable" one).

1. Create the VM (the Settings That Matter)

Click Create VM and walk through the tabs. Here's what to change from the defaults:

Tab Setting Pick this Why
OS Guest OS type Microsoft Windows 11/2022/2025 Proxmox applies Windows-friendly tweaks
System Machine q35 Modern virtual chipset
System BIOS OVMF (UEFI), add an EFI disk Required for Secure Boot and Server 2025/Windows 11
System TPM Add TPM, v2.0 Windows 11 needs it; Server 2025 is happier with it
System Qemu Agent ✅ Checked Lets Proxmox talk to Windows (more on that below)
Disks Bus/Device SCSI Fastest and most featureful
System SCSI Controller VirtIO SCSI single One controller per disk, works with IO Thread
Disks Discard / IO thread ✅ both Frees unused space; better disk performance
Disks Cache Write back Proxmox's recommended choice for Windows guests
CPU Type host (single node) Gives Windows every CPU feature you've got
Network Model VirtIO (paravirtualized) Way faster than the emulated Intel E1000

💡 BOB's tip: About that CPU type. host passes your real CPU straight through, which is fastest. But if you have more than one Proxmox node with different CPUs and want to live-migrate VMs between them, stick with the default (x86-64-v2-AES) so every node can run the VM.

Memory: 4 GB is a comfortable start for a Server with the desktop. 2 GB is fine for Server Core.

2. Add the Second CD Drive

Before you start the VM, go to Hardware → Add → CD/DVD Drive and mount the VirtIO ISO on it. Now the VM has two "discs": Windows and the drivers. (Proxmox's docs suggest putting the VirtIO ISO on IDE 0.)

3. Install Windows (and Load One Driver)

Start the VM and run Windows Setup like usual. When you reach "Where do you want to install Windows?" and the list is empty:

  1. Click Load driver → Browse.
  2. Open the VirtIO CD, go to vioscsi, then the folder for your Windows version (2k22 for Server 2022, 2k25 for Server 2025), then amd64.
  3. Select Red Hat VirtIO SCSI pass-through controller and click Next.

Your disk appears like magic. ✨ Finish the install.

⚠️ Heads up: The network card won't work yet. That's normal! Windows has no VirtIO network driver until the next step. Don't spend twenty minutes troubleshooting DHCP. (Ask me how I know.)

4. Install the Rest of the Drivers and the Guest Agent

Once you're at the desktop, open the VirtIO CD and run:

  • virtio-win-guest-tools.exe, which installs all the VirtIO drivers (network, balloon, serial and friends) and the QEMU Guest Agent in one go.

If you prefer to do it piece by piece, virtio-win-gt-x64.msi installs the drivers and guest-agent\qemu-ga-x86_64.msi installs the agent.

Then check:

Get-NetAdapter                                 # should show "Red Hat VirtIO Ethernet Adapter", Up
Get-Service QEMU-GA                            # the guest agent, Running

And in Proxmox, the VM's Summary page should now show its IP addresses. That's the guest agent reporting in.

What the Guest Agent Does for You

The QEMU Guest Agent is a small service inside Windows that Proxmox can talk to. It's worth the 30 seconds:

  • Clean shutdowns. Proxmox's Shutdown button (and host reboots) can ask Windows to shut down properly, instead of pulling the virtual power cord.
  • IP addresses show up in the Proxmox web interface.
  • Consistent backups. During a backup, Proxmox can ask Windows to freeze and flush its file systems (using VSS), so your backup isn't caught mid-write.

5. A Few Finishing Touches

  • Remove the ISOs from both CD drives when you're done, so the VM doesn't hold them (and so a template doesn't carry them around).
  • Ballooning lets Proxmox reclaim unused memory from the VM. It works with the VirtIO balloon driver, but Windows sometimes reports memory oddly with it. For a small lab, setting Minimum memory equal to Memory (effectively a fixed size) keeps things predictable.
  • Patch it. Run Windows Update before you do anything clever.
  • Time zone and name. Set them now, before joining a domain.

💡 BOB's tip: Once you've got this VM looking perfect, don't do it all again for the next one. Turn it into a template! That's the subject of my next Proxmox article.

Quick Checklist

  • ✅ OS type Windows 11/2022/2025, q35, OVMF + EFI disk, TPM v2.0
  • ✅ VirtIO SCSI single, SCSI disk with Discard and IO thread
  • ✅ VirtIO network
  • ✅ Qemu Agent checked in Proxmox and installed in Windows
  • ✅ VirtIO ISO mounted as a second CD; vioscsi loaded during setup
  • ✅ virtio-win-guest-tools.exe run after install

Wrapping Up

Windows and Proxmox get along great once they're properly introduced. Use VirtIO for disks and networking, load the vioscsi driver during setup, install the guest tools afterwards, and keep the guest agent running. Your VMs will boot fast, back up cleanly and shut down politely.

See you next time!

— BOB

Sources

Author

jrainey

Just another HTMLy user