Windows 11 install on Proxmox

2024-06-10 / 7 min read
Last updated: 2024-06-11



Prime the GPU

  1. List all the vendor id's for PCI's connected to the system with lspci -v

  2. Find the GPU in question, and ignore its audio part

0c:00.0 VGA compatible controller: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: PNY GP102 [GeForce GTX 1080 Ti]
        Flags: bus master, fast devsel, latency 0, IRQ 121, IOMMU group 29
        Memory at ee000000 (32-bit, non-prefetchable) [size=16M]
        Memory at b0000000 (64-bit, prefetchable) [size=256M]
        Memory at c0000000 (64-bit, prefetchable) [size=32M]
        I/O ports at f000 [size=128]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Capabilities: [60] Power Management version 3
        Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [78] Express Legacy Endpoint, MSI 00
        Capabilities: [100] Virtual Channel
        Capabilities: [250] Latency Tolerance Reporting
        Capabilities: [128] Power Budgeting <?>
        Capabilities: [420] Advanced Error Reporting
        Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
        Capabilities: [900] Secondary PCI Express
        Kernel driver in use: nouveau
        Kernel modules: nvidiafb, nouveau

0c:00.1 Audio device: NVIDIA Corporation GP102 HDMI Audio Controller (rev a1)
        Subsystem: PNY GP102 HDMI Audio Controller
        Flags: bus master, fast devsel, latency 0, IRQ 116, IOMMU group 29
        Memory at ef080000 (32-bit, non-prefetchable) [size=16K]
        Capabilities: [60] Power Management version 3
        Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
        Capabilities: [78] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Kernel driver in use: snd_hda_intel
        Kernel modules: snd_hda_intel~~
  1. Notice the 0c:00.0 in the Nvidia GPU, we will use that to get details of it with lspci -n -s 0c:00

Running the command give the following

root@vm:~# lspci -n -s 0c:00
0c:00.0 0300: 10de:1b06 (rev a1)
0c:00.1 0403: 10de:10ef (rev a1)
  1. From the out put make note of the 10de:1b06 and 10de:10ef GPU address.

Run nano /etc/modprobe.d/vfio.conf

Paste the following by adjusting the ids with the GPU address accordingly options vfio-pci ids=10de:1b06,10de:10ef disable_vga=1

  1. Run update-initramfs -u and then reset

  2. Map the drive to the system

Navigate to Resource Mappings

Create the mapping


  1. General

  2. OS

  3. Combined the knowledge of multiple sources for this one: 1 2


  1. Disks

  2. CPU NUMA being disabled or enabled does not matter, and NUMA unlocks some features which I will look into at another time.

  3. Memory Balooning was not recommended due to stability issues, I will experiment with it and see the result of it.

  4. Network

  5. Confirm without starting the system!

  6. Let's check our boot order:

initial boot order

Move the boot iso to the top and click ok

Adjusted boot order

  1. Make note of the VM id number for this windows, in our case it is 102.

Run the following command so it is [THIS_ID].conf, like so:

nano /etc/pve/qemu-server/102.conf

Alt text

  1. Paste the following to the end of the file:
cpu: host,hidden=1,flags=+pcid
args: -cpu 'host,+kvm_pv_unhalt,+kvm_pv_eoi,hv_vendor_id=NV43FIX,kvm=off'
  1. Save

  2. Add the PCI device

PCI Device menu selection


Installing Windows

  1. Start the VM and get a visual

  2. Select the proper drivers

Custom install

Load drivers

Select the proper drivers

Alt text

  1. Install the defaults On the last versions of W11, you can not continue without network connection. You can bypass it: Shift + F10 keyboard shortcut and write OOBE\BYPASSNRO in the command prompt



Configure Windows

Switch from Microsoft account to local account 3

  1. Go to Settings > Accounts

  2. Select Your Info Select Your Info

  3. Click sign in with a local account instead Sign in with a local account

  4. Remove pin (a restart might berequired first!)

  1. Search for One Drive in Windows Search

  2. It should load in the system tray, click on it there and once the popup comes up click the Setting menu icon.

One drive settings menu icon

  1. Now Unlink this PC

Unlink this PC in OneDrive

  1. You can now safely delete the contents of OneDrive folder if still remaining

Adjust windows update 4

  1. Go to Settings > Windows Update > Advanced options

  2. Make sure Get me up to date is unchecked Options to have toggled

  3. Set the active hour range Manually

Manually adjust the hours

Adjust power plan 4

  1. In the search, search for power plan

  2. Switch to High performance

Choose High performance

  1. Lets get rid of fast strtup

Choose what the power button does

  1. Activate admin mode

Change settings that are currently unavailable

  1. Uncheck Turn on fast startup

Un-check turn on fast startup

  1. Save changes

Save changes

Change user account control settings 4

  1. In the search, search for Change User Account Control settings and open it

Change User Account Control settings window view

  1. Set to Never notify and click OK

View after adjustments to how User Account Control settings window view should look like

Adjust Windows Privacy Settings 4

  1. Go to Settings > Privacy & Security > General

  2. ==Go through each Privacy & Security sub-setting and adjust settings to your needs==


Untoggle everything in the Privacy & Security General view

  1. Set feedback frequency to Never in Diagnotics & feedback

Set feedback frequency to Never in Diagnotics & feedback

  1. Switch to Enhanced search in Searching Windwos

Switch to Enhanced search

Remove Startup Items

  1. In Task Manager > Startup apps disable all that are not neede

Startup apps in task manger

Remove Hidden File Extensions

  1. Open File Explorer

  2. Click on the 3 buttons ... > Options

Choose Options in File Explorer

  1. Go to the View tab

  2. Uncheck the following

Hide extensions for known file types and select/toggle Show hidden files, folders, and drives

Before adjusting hidden file extension view

After adjusting hidden file extension view

  1. Click Apply then OK

Update Network Drivers to Use VirtIO drivers

  1. Make sure the VirtIO ISO is mounted to Windows

  2. Right click Start and select Device Manager

  3. Right click the network adapter and click Update

Updating network adaptor drivers

  1. Browse to NetKVM folder and choose Win11 for our OS

Shwoing NetKVM selected

Choosing win11 folder under the NetKVM

Enable Windows Auto-login 5

  1. [Download the Auto-login enabler registry file if you have not done so yet. Unarchive it and execute it. (

OR do it manually

Edit registry entry to enable auto-login

  1. Open up Run (Win + R)

  2. type netplwiz and ok

  3. Uncheck

    Users must enter a user name and password to use this computer

  4. Make sure the correct account is selected in the Users for this computer section

  5. Click Apply

View after following the steps

  1. Enter the account password and click OK

Download updates and restart Windows

Configure the GPU passthrough

  1. Shutdown the VM

  2. Set the Display to none

Showing the Hardware configuration set to none for display

  1. Start VM

Potential problems and solutions

  • Try qm unlock [VM ID] if you get error message saying

trying to acquire lock... TASK ERROR: can't lock file '/var/lock/qemu-server/lock-[VM ID].conf' - got timeout

qm unlock YOUR_VM_ID

  • During installation if stuck on network configuration, add another Network card with Intel E1000 interface through Proxmox.





  4. 2 3 4