With its straightforward user interface and powerful features, Proxmox is an amazing hypervisor for newcomers as well as home lab veterans. But the difficulty gets raised a ton once you start looking into the more advanced aspects of the virtualization platform.
For example, I recently covered the procedure to set up PCI passthrough on a Proxmox machine. While most expansion cards work without issues once you enable them in the Hardware tab of a VM, it's a nightmare to calibrate all the settings required to use GPUs inside virtual machines. But if you're willing to undergo a grueling procedure, you can follow this guide to access your graphics card(s) from a Windows 11 VM.
I tried gaming on a VM hosted on a Proxmox server – here’s how it went
Despite the ridiculous premise, the Proxmox-powered gaming machine worked extraordinarily well after some tweaks
Creating a Windows 11 VM
Unlike most virtual machines, setting up a Windows 11 virtual machine involves a couple of extra steps. If you haven't already created one, here’s a quick rundown of the whole process:
- Download the ISO file for Windows alongside the VirtIO drivers from their respective links.
- Head to the ISO Image tab of your local node and press the Upload button.
- Tap Upload File, pick the Windows 11 ISO you downloaded earlier, and hit the Upload button. Repeat the process for the VirtIO ISO file.
- Click on the Create VM option in the top right corner of the screen.
- Once you've picked a Name for the VM, choose the image file for Windows 11 as the ISO Image option and switch the Type setting under GuestOS to Microsoft Windows.
- Enable the Add additional drive for VirtIO drivers and pick the VirtIO image you transferred earlier.
- Go through the next four tabs as you would for any other VM and pick Intel E1000 as the driver Model in the Network section.
- Hit the Finish button after double-checking the specs of the Windows 11 VM.
Once you’ve created the virtual machine, it’s time to start the installation process for Windows 11.
- Start the virtual machine and use the noVNC console to access it.
- Hit Next on the initial Windows Setup page and pick Windows 11 Pro from the list of options.
- Pick the Load driver option when the installation wizard asks you to choose a storage drive.
- Tap Browse inside the pop-up window.
- Choose the w11 folder within the amd64 folder of the VirtIO drive.
- Select the Red Hat VirtIO SCSI-passthrough controller and hit Next. Follow the same procedure to install the w11 drivers for NetKVM.
- After the driver has finished installing, the virtual drive you assigned to the VM at the time of its creation will appear, and you can begin the installation process by hitting Next.
Soon, you’ll arrive at the Windows 11 OOBE screen. In most cases, you’ll be able to proceed normally without any issues. But if you’re unable to access the network at any point, you can try reverting to the Network adapter to VirtIO (paravirtualized). When I set up a VM to run some games on it, Windows 11 failed to connect to the Internet. What worked for me was opening the terminal via the Shift+F10 combo and entering the OOBE\BYPASSNRO command to force the OOBE interface to display the I don’t have Internet option.
Installing GPU drivers on the Windows 11 VM
When you’ve finished setting up Windows 11, you'll need to execute a handful of commands inside the shell of your Proxmox node. Since there are too many commands to list in this article, you'll have to go through the Enabling GPU Passthrough section of my PCI passthrough guide before proceeding with the rest of the article.
- Shut down the virtual machine.
- Head to the Hardware tab of the VM and pick the PCI device option after clicking on the Add button.
- Select Raw device and pick the GPU you wish to use inside the VM.
- Enable the All Functions, ROM-Bar, and PCI-Express options, let the Primary GPU setting remain disabled, and tap Add.
- Start the Windows 11 VM once again, and download the drivers for your GPU from the manufacturer’s website.
- (Optional) In case you're unable to connect to the Internet even after booting into Windows, you can plug a USB-to-WLAN adapter into the host machine and pass it to the Windows 11 VM using USB passthrough.
- Run the setup.exe file for the GPU driver with administrator privileges and follow the installation process as you would on a normal PC.
- Once the drivers have finished installing, right-click on the Start button and choose the Driver Manager to confirm whether your graphics card appears inside the Display Adapters section.
- Open the Settings app and note the IPv4 settings for your Ethernet/Wi-Fi connection. You’ll need it in the next section.
Accessing the GPU (via Remote Desktop)
While you’ve technically installed the drivers for the graphics card, you won’t be able to use the GPU until you've gone through these steps:
- Once again, power off the virtual machine and head to its Hardware tab inside the Proxmox web UI.
- Select the PCI device you added in the previous section and enable the Primary GPU option.
Upon restarting the virtual machine, you may notice that noVNC fails to display the Windows 11 UI. So, you’ll need to use the Remote Desktop Protocol to access the virtual machine, which is precisely why we used the Pro version of Windows 11 instead of the Home edition.
- Assuming you’re accessing the Proxmox web UI on a Windows client, right-click on the Start button and choose Run.
- Type mstsc into the Search box and hit OK.
- Enter the IP address of the virtual machine you acquired in the last section under the Logon settings and hit Connect.
- Type the Username and Password of the virtual machine when prompted by Windows.
- Finally, tap Yes when Windows cautions you about the security of the connection and wait for Remote Desktop to start streaming the contents of the Windows 11 VM.
Making the most of your GPU’s horsepower inside the Proxmox VM
If you followed all the steps correctly, you should be able to use your graphics card for demanding workloads inside the Windows 11 virtual machine. For video editing and machine training tasks, this setup should work without any issues. However, RDP has annoyingly huge amounts of latency while gaming, and it was borderline impossible to play fast-paced action games via Remote Desktop.
Thankfully, Parsec presents an easy workaround with its Fallback To Virtual Display option. Once you enable this setting, you can exit RDP and use Parsec to enjoy a lag-free gaming experience.
Sunshine + Moonlight vs Parsec: Which one's better for remote desktop and game streaming?
Despite fulfilling similar roles, Parsec and Sunshine/Moonlight have plenty of differences that set them apart
