Post

Microsoft Server 2022 Installation on Proxmox VE

Microsoft Server 2022 Installation on Proxmox VE

Context: This guide details the process of creating a Windows Server 2022 virtual machine on the previously configured Proxmox host. It covers VM creation, driver installation, and initial server setup, preparing it for its role as a Domain Controller.

Introduction

After successfully installing the Proxmox hypervisor and configuring its network settings, I proceeded to install Microsoft Server 2022 as a virtual machine (VM).

During this process, I encountered a separate troubleshooting challenge: while the Proxmox web GUI was accessible from other devices on my network, it was unreachable from my main PC. After initial network diagnostics (ping, tracert..) and browser testing, I isolated the cause to my PC’s local firewall. The solution involved creating a new outbound rule in Windows Defender Firewall for the Proxmox port (8006) and refreshing the network adapter. Detailed troubleshooting steps are in the Troubleshooting section.


Initial Setup: Required Files

Before creating the VM, two sets of files need to be downloaded: the Windows Server 2022 ISO and the VirtIO drivers for virtualized hardware compatibility.

  1. Download Windows Server 2022 ISO:
  2. Download VirtIO Drivers for KVM:

    These drivers are required by Proxmox for the VM to recognize virtualized hard disks and network interfaces. Without them, the Windows installer will not be able to find any drives to install to.

    Alternative Method: A quicker method is to download the ISO directly from the Proxmox UI.

    • To do this, right-click the download link on the VirtIO driver page and select “Copy Link”. In the Proxmox UI storage view, select Download from URL, paste the link into the URL field, click Query URL, and then download the file.

Configuration Steps

1. Upload ISO Files to Proxmox

  • Navigate to Storage: In the Proxmox Web UI, access your server and navigate to the Storage section in the left pane.
  • Upload Files:
    • In the middle pane, select ISO Image, then click the Upload button.
    • In the pop-up window, click Select File and choose the Windows Server 2022 ISO you downloaded.
    • Repeat the process for the VirtIO drivers ISO.

Uploading ISO to Proxmox Storage Figure 1: Uploading an ISO file to local Proxmox storage.

2. Create the Virtual Machine (VM)

The following settings reflect the final configuration I used after troubleshooting initial startup errors. These settings are based on the Windows 2022 guest best practices - Proxmox VE guide and were adapted for my specific hardware.

  • In the Proxmox UI, click the Create VM button in the top-right corner to launch the setup wizard.

  • General Tab:
    • Name: Give the VM a descriptive name (e.g., MS-Server22).
    • Click Advanced and check the box for Start at boot, since this server will provide critical network services.
  • OS Tab:
    • Type: Select Microsoft Windows.
    • Version: Choose 11/2022/2025.
    • ISO Image: Select the Windows Server 2022 ISO you uploaded.
    • Mount a second CD/DVD drive and select the virtio-win-XX.iso for the VirtIO drivers.

Proxmox VM OS Tab Configuration Figure 2: Selecting the Windows Server and VirtIO ISOs.

  • System Tab:
    • SCSI Controller: Choose VirtIO SCSI.
    • Ensure Add TPM is checked.

Proxmox VM System Tab Configuration Figure 3: System tab settings with VirtIO SCSI controller.

  • Disks Tab:
    • Adjust the Disk size as needed.
    • Set Cache to Write back for better I/O performance.

Proxmox VM Disks Tab Configuration Figure 4: Disks tab settings with Write back cache enabled.

  • CPU Tab:
    • Set Type to host. (Note: I initially chose x86-64-v2-V2_AES, which caused startup errors as my hardware didn’t support it).

    Research the pros and cons of using a cpu preset vs the host option, then select the appropriate Sockets and Cores for your needs and hardware.

Proxmox VM CPU Tab Configuration Figure 5: CPU tab with Type set to ‘host’.

  • Memory Tab:
    • Allocate sufficient RAM.
    • Ensure Ballooning Device is enabled, setting a minimum value (e.g., 512 MiB).

    Note: Microsoft advises a minimum of 2 GB for Server with Desktop Experience, while 4 GB is recommended.

Proxmox VM Memory Tab Configuration Figure 6: Memory allocation with Ballooning enabled.

  • Network Tab:
    • Use the VirtIO (paravirtualized) model for the network device for best performance.

Proxmox VM Network Tab Configuration Figure 7: Network tab with VirtIO model selected.

  • Confirm Tab: Review your selections on the confirm tab and click Finish.

3. Install Microsoft Server 2022

  • Start the VM: In the Proxmox UI left pane, right-click the newly created VM and select Start.
  • Open the Console: Select the VM, then click the >_ Console button in the top menu to open the virtual display.
  • Load VirtIO Drivers:
    • Proceed through the Windows Server installation prompts until you reach the “Where do you want to install the operating system?” screen. You will see a warning that no drives were found. This is expected.
    • Click the Load driver link at the bottom of the screen.

Windows Server Install - No Drivers Found Figure 8: The Windows Server installer cannot find any drives initially.

  • In the “Load Driver” window that opens, click Browse and navigate to the VirtIO CD drive.
  • SCSI Driver: Navigate to the folder vioscsi\2k22\amd64, select the “Red Hat VirtIO SCSI pass-through controller,” and click Next to install it. The drive should now appear.

Loading the VirtIO Drivers from the ISO Figure 9: Browse for the VirtIO drivers during installation.

  • Network Driver: After the SCSI driver installs, you will be returned to the “Where do you want to install the operating system?” screen. Again click Load driver process, this time selecting the NetKVM\2k22\amd64 folder to install the “Redhat VirtIO Ethernet Adapter.”
  • Balloon Driver: Repeat the Load driver process one last time to install the “VirtIO Balloon Driver” from the Balloon\2k22\amd64 folder.
  • Complete the Installation:
    • With the drivers loaded, continue the Windows Server installation. The VM will restart several times.
    • After the final restart, to send a Ctrl+Alt+Delete command to the console to log in, you may need to use the Proxmox console’s built-in function.
    • To access this click the tab next to the VM console screen in the Proxmox UI then click the A inside a screen icon button. In the fly-out pane click the bottom button with the three squares icon. You can now log in using the password you set up during the installation.

Proxmox Console Login Helper Figure 10: Proxmox UI console login helper interface.

  • Once logged in, you will be greeted by the Server Manager Dashboard.

Windows Server 2022 Server Manager Dashboard Figure 11: The Server Manager Dashboard upon first login.

4. Post-Installation Steps

  • Install Remaining Drivers:
    • On the running VM, open File Explorer, navigate to the VirtIO CD drive, and run the virtio-win-gt-x64 Windows Installer file to install any remaining drivers.

Running the VirtIO Guest Tools Installer Figure 12: VirtIO guest tools installer.

  • Set Static IP Address:
    • Configure a static IP address for the server inside Windows. Navigate to Network Connections, open the adapter’s Properties, select Internet Protocol Version 4, and enter the correct IP, subnet, and gateway information according to your network plan.

Setting Static IP in Windows Server Figure 13: Windows IP configuration screen.

  • Install QEMU Guest Agent:
    • The QEMU guest agent allows Proxmox to properly interact with the VM. To confirm if it’s running, check the “Summary” tab for the VM in the Proxmox UI; if the IP address isn’t showing, the agent is likely not running.
    • To install it, browse the VirtIO ISO again on the server, navigate to the guest-agent folder, and run the qemu-ga-x86_64 installer.
    • Confirm successful installation by checking the VM’s “Summary” tab again in Proxmox; the IP information should now be displayed.

Installing the QEMU Guest Agent Figure 14: QEMU guest agent installer.


Troubleshooting

1. Proxmox GUI Inaccessible from Main PC

  • Symptom: Could not access the Proxmox web UI from my main PC, but could from other devices on the same and different VLANs.
  • Diagnostics: Ruled out browser issues by testing multiple browsers and private windows. ping and tracert showed network path issues that stopped at my PC.
  • Solution: Temporarily disabling Windows Defender Firewall allowed access, confirming it was a firewall issue. The permanent solution was to create a new outbound rule in Windows Defender Firewall to allow traffic on TCP port 8006.
    1. Open Windows Defender Firewall.
    2. Click Outbound Rules > New Rule....
    3. Select Port, then TCP, and specify port 8006.
    4. Select Allow the Connection.
    5. Apply the rule to all profiles (Domain, Private, Public).
    6. Name the rule (e.g., Proxmox UI Outbound) and click Finish.

2. VM Fails to Start After Creation (QEMU exited with code 1)

  • Symptom: After creating the VM and clicking “Start”, the task failed with the error: TASK ERROR: start failed: QEMU exited with code 1.
  • Diagnostics: I researched Proxmox forums and documentation and decided to first update to the latest VirtIO drivers. When that didn’t resolve it, I focused on the VM hardware configuration. Using the lscpu command in the Proxmox host terminal, I determined my laptop’s CPU did not support the x86-64-v2-V2_AES CPU type I had initially selected.
  • Solution: I re-created the VM with the corrected settings outlined in the “Create the Virtual Machine (VM)” section above. The key changes that resolved the error were:
    • System Tab: Changed SCSI Controller to VirtIO SCSI.
    • Disks Tab: Changed Cache to Write back.
    • CPU Tab: Changed Type to host.
    • Memory Tab: Ensured Ballooning Device was enabled with a minimum value set.

Key Learnings & Takeaways

The process of installing and configuring Microsoft Server 2022 on Proxmox was a detailed and highly educational experience. Overcoming challenges such as VM startup errors, driver installations, and client-side firewall issues provided a deep, practical understanding of virtual machine management and systematic troubleshooting. The steps outlined in this guide reflect both standard procedures and the real-world adjustments required for specific hardware and network environments. These experiences are invaluable, enhancing not only my technical skills but also my preparedness for tackling similar challenges in future virtualized environments.

This post is licensed under CC BY 4.0 by the author.