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.
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
.
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.
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
.
CPU
Adjust these settings as you feel are most appropriate for your system.
Memory
Adjust these settings as you feel are most appropriate for your system.
Network
The Model
value will need to be changed to VirtIO (paravirtualized)
.
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.