How to Create a Windows Virtual Machine in Proxmox VE / Virtualization / Proxmox / How to Create a Windows Virtual Machine in Proxmox VE

In this article, we will show you how to create a virtual machine on the Proxmox Virtual Environment hypervisor and install the Windows 10/11 or Windows Server 2022/2019/2016 guest operating system on it.

First, you need:

Upload both ISO files to the PVE storage.

upload iso imahes to Proxmox storage

Create a Windows VM on Proxmox VE

The next step is to create a new Proxmox virtual machine for the Windows guest operating system.

  1. Open the Proxmox VE web management interface (WAC) and click on the Create VM button;
  2. Set the VM name;
  3. Then go to the OS tab and select your Windows install ISO that you uploaded earlier. Proxmox should automatically detect the type of OS in the image and set the type of guest OS of the virtual machine (Microsoft Windows version 10/2016/2019); mount windows 10 setup iso imagein proxmox vm
  4. Go to the System tab, enable the Qemu Agent option, and the VirtIO SCSI disk controller type; VirtIO SCSI disk controller in Windows VM
  5. Then go to the Hard Disk tab and configure the virtual machine disk settings. Bus/Device: SCSI (IDE is used by default), Storage: select the Proxmox storage where the VM virtual disk will be placed, and specify the size of the virtual disk (at least 25 GB). Here you can choose between two types of virtual disks: raw (better performance) or qcow2 (advanced functionality and snapshot support). You can also pass a physical disk or USB flash drive into a virtual machine (Passthrough Physical Disk in Proxmox VE). Here you can enable the Write back cache and Discard options (This is similar to TRIM for SSD, designed to efficiently clean deleted data). This will improve VM performance, but there is a risk of data loss in the event of a power failure;
  6. On the CPU and Memory tabs, specify the number of processor cores you want to allocate to the virtual machine (at least 2 kvm64 core) and the amount of RAM (at least 2GB); set cpu number and ram size for windows vm on proxmox
  7. Go to the Network tab. Select VirtIO (paravirtualised) virtual adapter type instead of Intel E1000. Disable the Firewall option if you want to use the built-in Windows Defender firewall in the guest operating system; Proxmox VM: VirtIO (paravirtualized) network adapter
  8. Review the settings and click Finish to create the VM;
  9. Once you have created a new virtual machine in Proxmox for Windows, open its settings and add another CD/DVD drive. Mount the ISO file with the VirtIO drivers.

By default, the BIOS x64 emulator (SeaBIOS) is used as the firmware for the virtual machine.

seabios on proxmox vm

If you want to use UEFI firmware for the VM, change the BIOS type to OVMF (UEFI) and add an EFI partition for the VM (you can add it manually via Add -> EFI Disk, or enable the Add EFI Disk option when creating a VM).

proxmox: enable uefi firmware for windows vm

For Windows 11, you will also need to enable the TPM 2.0 module: tick the Add TPM option, enable the Pre-Enroll keys option, and select your PVE storage as the TPM storage.

Enable TPM 2.0 for Windows 11 VM on Proxmox

If you want to change the VM firmware type from BIOS to UEFI after installing Windows, you must convert the Windows MBR disc using the mbr2gpt tool.

If you plan to use WSL inside a Windows 10 or 11 virtual machine, you must enable nested virtualization support in Proxmox. To do this, change the type in CPU settings from default (kvm64) to host.

proxmox host processor type for nested vm


Install Windows as a Guest OS on a Proxmox VM

The Proxmox virtual machine is now ready to install the Windows guest operating system.

  1. Power on the VM by clicking Start. Press the Console button to open the virtual machine console screen;
  2. The Windows installation should start automatically;
  3. The Windows Setup installer will not be able to detect your VM’s virtual hard drives. So you need to load the VirtIO controller driver. Click the Load Driver button and select your previously mounted VirtIO driver image; Load Red Hat VirtIO SCSI pass-through controller driver in Windows Setup
  4. Install the Red Hat VirtIO SCSI pass-through controller driver (\amd6\vioscsi.inf);
  5. After installation, Windows 11 requires an Internet connection on OOBE to connect to a Microsoft account. You can load the Redhat VirtIO Ethernet Adapter network driver from the \NetKVM\w10\amd64 directory;
  6. After installing the hard disk controller driver, Windows Installer will see your hard disk and you can continue with the installation;
  7. Finish installing Windows on the virtual machine. Then install VirtIO drivers for the network adapters and other devices. open the Windows Device Manager (devmgmt.msc). Right-click on the device, select Update Driver -> Browse my computer for driver software, and specify the path to the VirtIO driver image. You need to install at least the following drivers: Redhat VirtIO Ethernet Adapter (\NetKVM\w10\amd64), and VirtIO Balloon Driver (\Balloon\w10\amd64). For details, see the article Installing KVM VirtIO Drivers in a Windows Virtual Machine; unknown devices in WIndows guest on proxmox
  8. After installing all the drivers, install the VirtIO Agent (\guest-agent\quemu-ga-x86_64.msi). This allows you to get information about the state of the guest operating system in the Proxmox hypervisor, similar to VMware Tools or Hyper-V Integration Services; install proxmox VirtIO Agent (quemu-ga-x86_64.msi)
  9. Run the installation of the virtio-win-gt-x64.msi from the ISO image. Specify additional drivers and services to install.install virtio guest tools on windows

Open a PowerShell console and check that the QEMU Guest Agent service is running on Windows:

Get-Service QEMU-GA

check quemu guest agent on windows

If you are uncomfortable with the low screen resolution in the virtual machine console, reboot the VM and press Esc to access the UEFI BIOS settings. Go to Device Manager -> OVMF Platform Configuration and set the Change Preferred value from 640×480 to 1920×1080. Save UEFI configuration changes.

proxmox vm console: change screen resolution

This completes configuring the Windows virtual machine on Proxmox. You can continue to configure Windows settings in the guest operating system (set hostname, network settings, install apps, join the device to the Active Directory domain, etc.).

Leave a Reply

Your email address will not be published. Required fields are marked *