Using the Proxmox server I set up to run a Windows virtual machine would let me move away from dual booting on my main machine. I boot into Windows maybe twice a year so there won’t be much that I miss. A remote connection from my desktop (or another machine) will more than cover my occasional use case for Windows.

Creating a virtual machine in Proxmox is straightforward for anyone who has worked with virtual machines before. There are, however, a few changes that are needed to make it easier to work with the VM on a remote system.

Uploading the windows ISO

Before creating the VM, the ISO needs to be uploaded to the Proxmox server. This is done by selecting the local storage in the left sidebar and then Content in the main window. At the top of the main window, there is an Upload button for uploading ISO images. Select the downloaded ISO in the window that pops up and wait for the upload to complete.

Setting up the virtual machine

Start the process of creating a VM by clicking the Create VM button in the top right of the web GUI.

General

The general page contains a box to choose a name, id, and a storage location for the virtual machine. Not much to change here other than entering a name and an alternative ID if you so choose.

General window

OS

The OS page is where you will select the ISO image that was previously uploaded. Verify the correct values are selected under the Guest OS section. Windows 10 will have a Type of Microsoft Windows and use a Version of 10/2016.

OS window

System

The system settings can be left as the defaults except checking the QEMU Agent option. Enabling the QEMU Agent allows Proxmox to properly shutdown the guest and to freeze the guest when making a backup.

System window

Hard Disk

The Hard Disk page has a number of options that need to be changed. First is the Bus/Device, this should be changed to SCSI with a controller of VirtIO SCSI. Next is the Disk size (GiB), this will vary depending on what the virtual machine will be used for. The last option to change is setting Cache to Write back.

Hard disk window

CPU

Adjust these settings as you feel are most appropriate for your system.

CPU window

Memory

Adjust these settings as you feel are most appropriate for your system.

Memory window

Network

The Model value will need to be changed to VirtIO (paravirtualized).

Network window

Confirm

Look over all of the settings on this page and make sure they are correct. Adjust accordingly before selecting Finish to create the VM.

Installing additional drivers

Windows VMs require additional drivers to be able to work correctly. These drivers can be downloaded from the KVM website. This ISO will need to be uploaded to the local storage content in the same way as the Windows 10 ISO.

Create a CD/DVD Drive by selecting the virtual machine in the left sidebar. Enter the Hardware section of the main window and choose CD/DVD Drive from the Add dropdown at the top of the window. Leave the Bus/Device type as IDE and enter 3 in the box next to it. Select the Storage location containing the VirtIO ISO and select the correct ISO Image. This image will be used when installing Windows in the virtual machine.

Booting for the first time

It’s now time to start the VM for the first time. This will start the installation process for Windows 10. This can be viewed by launching a noVNC console when the VM is selected in the sidebar. Follow through the installer until there is an option to select the installation type. Choose the option for Custom: Install Windows only (advanced).

Select the option to Load driver. A window will popup saying that a media device needs to be inserted containing the drivers. Select Browse and selecting one of the following folders. Finish with the driver installation process and repeat for the remaining drivers.

  • vioscsi\w10\amd64
  • NetKVM\w10\amd64
  • Balloon\w10\amd64

Continuing after this window will begin writing the OS to the hard drive. This could take some time depending on the specs chosen for the VM. It will be followed by the setup process for the first time windows is ran. This will finish with another loading screen before booting to the Windows desktop.

Finishing up

The VM will now be setup and ready to use. Working with the VM through noVMC is not the most ideal method. There are additional methods to remote into the desktop that may be worth looking into.