If you’ve read my articles on XDA, you’ll know that I use Proxmox for the majority of my home lab tasks. After all, LXCs – especially those deployed using the Proxmox VE Helper-Community Scripts repo – are great for running FOSS tools inside containerized environments. Proxmox’s KVM-powered virtualization provisions deserve just as much credit, as it’s possible to run everything from obscure Linux distros to other home server operating systems on a PVE node.

Heck, I’ve got a dozen VMs deployed across all my PVE nodes, with at least half of them running at all times. While I adore my Linux and FreeBSD VMs, it’s a Windows 11 instance that’s absolutely crucial for my daily tasks.

My Windows 11 VM is a jack-of-all-trades

I primarily use it as a dev environment…

If you’re wondering why I chose a Windows-based VM out of all the cool distributions out there, I’ve got a couple of reasons to justify this heresy. While Linux is undoubtedly solid for developers, there are a handful of applications that require Windows. Visual Studio (not to be confused with VS Code) is one such tool, and since I had to spend a lot of time with the development platform during my college years, a Windows 11 VM came in handy for my coding needs. Likewise, I had to deal with .NET and C# frameworks during my uni days – both of which work well on a Windows dev environment. I also wanted to dive into the PowerShell rabbit hole, and a virtualized instance is great for going wild when practicing automation scripts and terminal commands.

Of course, I could just deploy everything on my Windows 11 daily driver and call it a day, but I’m not fond of cluttering my main PC with a ton of package files. Package conflicts and dependency hell are also quite common when you install as many weird applications, language interpreters, and code libraries as I do.

My Windows 11 dev VM currently includes Visual Studio, Code Server (a FOSS fork of VS Code), Chocolatey, Git Bash, and Total Commander, which work well for most of my coding projects. Since I love tinkering with DevOps tools, I’ve also configured Hyper-V, WSL2, and Podman Desktop. Sure, the fact that the VM uses nested virtualization adds some extra processing load on my PVE workstation, but that’s nothing my home server can’t handle. And then there’s the PowerShell modules that make it easy for me to work with automation scripts.

… But it becomes even more useful with certain tweaks

So far, my Proxmox-powered Windows 11 isn’t anything special. However, it's PVE’s built-in virtualization facilities that turn my dev environment into an all-in-one VM that’s as good at compiling code as it is at editing videos. For one, setting the Processor type to Host allows my VM to use all the extensions supported by the underlying CPU and removes the emulation layer, thereby reducing the overhead. The VirtIO driver suite is another useful package for a Windows 11 VM, as it lets me use the Paravirtualized Ethernet adapter and SCSI disks.

Then there’s GPU passthrough, a (literally) game-changing facility that lets my Windows 11 dev virtual machine access my spare Arc A750. Of course, it’s far from the most powerful graphics card out there, but the budget-friendly Intel GPU makes my virtual machine more versatile. I can use the VM for machine learning workloads, quickly edit videos when I don’t have access to my gaming machine, and even run modern games on it – all while the PVE workstation hosts my essential self-hosted app stack in the background. In fact, the biggest advantage of this setup is that I have a full-fledged experimental Windows 11 environment that runs alongside a handful of LXCs, though that’s far from its only benefit.

Easy recovery is the icing on the cake

Snapshots are a godsend for experimental VMs

Although Windows’ System Restore is a neat way to reload to a safe state when things go south, it can take a long time to recover all the OS files – which is why I often avoid running complicated experiments on a bare-metal Windows 11 PC. Thanks to the blazing-fast snapshots on Proxmox, restoring my virtualized Windows 11 instance is a cakewalk.

Creating snapshots and saving them to my Proxmox Backup Server is just as quick, and since PBS uses de-duplication, I don’t have to worry about the VM consuming too much disk space. The best part? Since reloading the snapshots barely takes a few minutes, I can use the restore facility to recover from dependency hell, broken drivers, and troublesome updates instead of spending hours fixing these issues.

It's far from the only useful VM on my Proxmox workstation

Besides my Windows 11 virtual machine, I’ve got a couple more VMs running on a different Proxmox node. For example, I run Home Assistant on my dual Xeon server, and use it to manage, monitor, and automate my IoT devices. Meanwhile, my Arch-based virtual machine handles my Linux development tasks, and I’ve also got a Debian VM that hosts all the quirky Docker containers I’ve come across since starting my home lab. Finally, I run ESXi as a virtual machine in Proxmox, as Broadcom’s virtualization platform refuses to play nicely with the NICs on my home lab devices, even though it runs well on Proxmox once I set the Network Adapter to VMware vmxnet3.