After setting up your Proxmox server, the next step is to create virtual machines (VMs). Running Windows Server is a popular choice, but getting it to run with native-like speed requires specific drivers and settings. This guide will walk you through creating a Windows Server VM optimized for maximum performance using VirtIO drivers.

Author: EngineerHow.com Difficulty: Medium Time: 45 minutes

  1. Table of Contents

    1. Prerequisites: Download ISOs
    2. Upload ISOs to Proxmox
    3. Create the Windows VM with Optimal Settings
    4. Install Windows Server & Load VirtIO Drivers
    5. Post-Installation: Install Guest Agent and Drivers
    6. Setting Up Backups

Phase 1: Prerequisites: Download ISOs

For a high-performance Windows VM, we need two essential files: the Windows Server ISO and the VirtIO drivers, which allow the VM to communicate more efficiently with the host hardware.

  1. Windows Server ISO: Download the latest evaluation version directly from the Microsoft Evaluation Center. This is a full-featured version that is free to use for 180 days.
  2. VirtIO Drivers ISO: These are paravirtualized drivers that significantly boost disk and network I/O performance. Download the latest stable virtio-win-*.iso file from the Fedora Project repository.

Phase 2: Upload ISOs to Proxmox

Before we can create the VM, we need to upload these files to Proxmox’s storage.

  1. Log in to your Proxmox web interface (https://your_server_ip:8006).
  2. In the left-hand navigation pane, select your Proxmox node, then navigate to ISO Images under local (or your designated ISO storage).
  3. Click Upload.
  4. Select the Windows Server ISO from your computer and upload it.
  5. Repeat the process for the virtio-win ISO file.

Once complete, both ISOs will be listed and available for use.

Phase 3: Create the Windows VM with Optimal Settings

Now we’ll walk through the VM creation wizard, paying close attention to performance-related settings.

  1. Click the Create VM button in the top-right corner.
  2. General Tab:
    • Name: Give your VM a descriptive name (e.g., win-dc-01).
    • Click Next.
  3. OS Tab:
    • Select the Windows Server ISO you uploaded.
    • Type: Microsoft Windows.
    • Version: 11/2022.
    • Click Next.
  4. System Tab:
    • Graphic card: Keep Default.
    • Machine: Keep q35.
    • BIOS: OVMF (UEFI).
    • Check the Add EFI Disk box and select a storage location (e.g., local-zfs).
    • Check the Qemu Agent box. This is crucial for proper management.
    • Click Next.
  5. Disks Tab:
    • Bus/Device: VirtIO Block. This is the high-performance disk driver.
    • Storage: local-zfs (or your primary VM storage).
    • Disk size: Set your desired size (e.g., 100 GiB).
    • Cache: Write back. This offers the best performance but carries a minor risk of data loss on host power failure.
    • Check Discard and SSD emulation.
    • Click Next.
  6. CPU Tab:
    • Cores: Assign the number of CPU cores you need (e.g., 4).
    • Type: host. This passes your host CPU’s features directly to the VM for maximum compatibility and performance.
    • Click Next.
  7. Memory Tab:
    • Memory: Enter the amount of RAM in MB (e.g., 8192 for 8GB).
    • Uncheck Ballooning Device. For servers with stable workloads, fixed memory is often better.
    • Click Next.
  8. Network Tab:
    • Model: VirtIO (paravirtualized). This is the high-performance network driver.
    • Click Next.
  9. Confirm Tab:
    • Review your settings and click Finish.

Proxmox will now create the VM. Do not start it yet.

Final Step: Mount the VirtIO ISO

  1. Select your new VM in the left pane.
  2. Go to the Hardware section.
  3. Double-click the CD/DVD Drive.
  4. Select the virtio-win ISO file.
  5. Click OK.

Phase 4: Install Windows Server & Load VirtIO Drivers

Now we’re ready to start the VM and install the operating system.

  1. Start the VM and open the Console.
  2. Proceed through the Windows Server setup until you reach the “Where do you want to install Windows?” screen. You will see a message that “No drives were found.” This is expected because Windows doesn’t have the VirtIO driver built-in.
  3. Click Load driver.
  4. Click Browse and navigate to the VirtIO CD drive.
  5. Go to the folder viostor\w11\amd64 (or the folder corresponding to your Windows version).
  6. Click OK. The “Red Hat VirtIO SCSI controller” driver should appear. Select it and click Next.

[Image showing the Windows installer loading the VirtIO disk driver]

Your virtual disk will now appear. You can select it and continue the Windows installation as usual.

Phase 5: Post-Installation: Install Guest Agent and Drivers

Once Windows is installed and running, we need to install the rest of the VirtIO drivers and the QEMU Guest Agent for full functionality.

  1. Log into your Windows Server VM.
  2. Open File Explorer, navigate to the VirtIO CD drive, and run the virtio-win-gt-x64.msi installer.
  3. Accept the defaults to install all drivers. This will resolve any “unknown device” errors in Device Manager and enable features like memory ballooning (if you enabled it).
  4. After that installer finishes, browse to the guest-agent folder on the same CD drive and run the qemu-ga-x86_64.msi installer.

After a reboot, the QEMU Guest Agent will be running. You can confirm this in the VM’s Summary page in Proxmox, where you will now see the VM’s IP address.

Phase 6: Setting Up Backups

Protecting your new VM is critical. Proxmox has a powerful built-in backup system.

  1. Select your VM and go to the Backup tab.
  2. Click Backup now.
  3. Storage: Select your backup storage location (by default, this is local).
  4. Mode: Choose Snapshot. This allows for live backups without shutting down the VM.
  5. Click Backup.

For automated protection, you can create a backup schedule by navigating to Datacenter -> Backup -> Add.

Conclusion

That’s all there is to it. By using the VirtIO drivers and selecting performance-oriented settings during creation, you’ve deployed a Windows Server VM that runs efficiently and reliably on Proxmox. This optimized foundation is perfect for any role, from a domain controller to a high-traffic application server.

What other Proxmox tips do you rely on? Share your favorites in the comments below!

🔗 Useful Links 📺 EngineerHow YouTube Channel

📢 About EngineerHow.com EngineerHow.com is dedicated to providing expert IT and engineering tutorials, helping professionals and enthusiasts set up servers, networks, and self-hosted solutions. Our guides focus on step-by-step instructions to make complex topics easy to understand.

🚀 Explore More IT Guides: EngineerHow.com

💬 Join the Discussion! Have questions or insights? Drop a comment below and let’s discuss!