Microsoft designs Windows with the assumption that it’s going to be the only operating system on the computer drive. Because of that, it does not play nicely when it has to share that drive with another operating system. Anyone who has ever tried dual-booting Windows and Linux will tell you that it rarely ever goes smoothly.

Even if you don’t have any problems during the setup process, you can be almost certain that you’ll run into some OS conflict down the line. I say this as someone who kept a dual-booting workstation for years. Clock sync errors, bootloader errors, or BitLocker errors are pretty much inevitable. But there is a better way.

Meet Proxmox

An operating system for operating systems

Proxmox is a special operating system because it’s purely meant for running virtual machines (VMs) and lightweight containers with minimal overhead. Think of it as an operating system for operating systems—”OS inception,” if you will.

Proxmox web page opened in Firefox.

As opposed to keeping both operating systems installed on the same drive, Proxmox lets you install them as siloed virtual machines, which you can run side-by-side, simultaneously. They never conflict with each other, and you don’t have to boot back and forth between them. Proxmox even supports hardware passthrough, so your virtual machines can use your computer’s hardware components, like the GPU, directly.

You can run as many of these virtual machines at the same time, depending on how powerful your computer is. I even have an Android phone VM set up on my Proxmox.

Proxmox isn’t meant to replace a traditional operating system, so you won’t be installing it on your main PC. It is designed to run in a headless environment. Basically, you’re supposed to access it via the web UI on other devices. Any device that can open a web browser will let you interact with your Proxmox machine and the virtual machines running on it.

In addition to virtual machines, you can also use your Proxmox server to self-host services like your own media server, your own Google photos clone, home assistant, password manager, and much, much more.

Setting up a Windows machine on Proxmox

Creating and running a Windows VM

You’ll need two things to make this work.

  1. A Windows installer image in the .iso format
  2. A virtual machine to install Windows on

On your Proxmox web interface, go to the local storage tab and select ISO images > Download URL. Grab the download link from Microsoft’s website and paste it into the URL box. Give the ISO a simple name and start the download.

Next, let’s create a Windows virtual machine using this installer image. We’ll click the “Create VM” button in the top-right corner, and select the ISO we downloaded. Leave the rest of the settings as the defaults.

The setup window will jump from OS to System. Here, select your SSD drive and allocate as much storage as you need.

Next comes the CPU section. Choose the number of cores you want to assign to this VM. Leave the rest of the settings as they are.

Allocate at least 4GB of RAM under Memory. And click “Start” to launch the VM.

An active virtual machine will have a little green icon next to its name on the left pane. Click the “Console” button to open a screen with the viewport. Inside this screen, you can interact with the virtual machine directly on any device.

Then you just have to click through the Windows installation setup and your Windows VM will be ready to use. If you find the default web “noVNC” interface too clunky, you can also use the classic Windows Remote Desktop (RDP) to remote into your virtual machine.

Zettlab D4 NAS.

Brand

Zettlab

CPU

RK3588

Memory

16GB LPDDR4x

Drive Bays

4x 3.5-inch, 1x M.2 NVMe

Getting a Linux desktop on your Proxmox

Easy to set up and run

If you just need a simple TTY environment for your Linux virtual machine, it’s incredibly simple to create. Just paste a community script for your target OS in the Proxmox shell, and it’ll do all the work for you.

However, if you need a full GUI desktop, it’s best to get an installer image in the .iso format, just like we did for Windows.

Setting up a virtual machine is much simpler for a Linux system. Just configure the CPU cores, storage, and RAM to your liking and leave the rest of the settings as defaults.

Unless you choose an advanced distro like Arch, you’ll be dropped into a live Linux environment where you can use a point-and-click installer. After the setup, the OS should reboot into the full virtual machine.

If you want to avoid the web console, consider connecting your Proxmox with virt-manager, if you’re accessing it through a Linux machine. It’ll give you better clipboard sharing and smoother performance.


Run both operating systems at the same time

You can leave the VMs running in the background, and just load them into the viewport of your choice to use them at any time. It’ll save you the hassle of rebooting. Plus, there won’t be any conflicts because the virtual machines exist in their own isolated space.