Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Windows GPU-P as well as WSL2 works on unRAiD

Featured Replies

I just wanted to let anyone know that I have successfully tested Nvidia GPU-P on Windows on unRAID with an RTX3060 passed though.

 

I used this guide video. 

 

 

Also WSL2 works with my intel 10700K  and  Gigabyte Z490 VISION G

WSLg works, but not with hardware acceleration. I wonder why that could be?

Works bare metal with the same Windows 11 installation

Edited by Jagadguru

  • 2 months later...

Hi,

 

I read this thread and i was wondering how you have managed it. So you are saying that you have succesfully shared a gpu in windows on unRaid?

So unRaid > Windows VM > Hyper-V > Windows VM inside Hyper-V?

I am trying to achieve the same, but with no luck. The VM inside Hyper-v just gives me a black screen.

 

Can you share how you have managed it?

  • Author
5 hours ago, hyellow said:

Hi,

 

I read this thread and i was wondering how you have managed it. So you are saying that you have succesfully shared a gpu in windows on unRaid?

So unRaid > Windows VM > Hyper-V > Windows VM inside Hyper-V?

I am trying to achieve the same, but with no luck. The VM inside Hyper-v just gives me a black screen.

 

Can you share how you have managed it?

Yes, the nested VM's are as you said. I used the video guide I linked in my last message. Very roughly I used Windows 11  for both VM's, inner and outer.  Passthrough the GPU to the outer.

 

You first issue the PS commands in the Win host VM that are mentioned in the video to tell if you're GPU is suitable (which it probably is because there is broad support). Then you install the hyper-v VM with all the settings like in the video.

 

The most crucial part, though is that you have to copy over your exact Graphics Driver file set for the installed GPU (driver) from the outer to the inner Windows and place them all in the right dirs. This is explicit in the video. Using the inner vM's drivers, installed or otherwise will not work.

 

Then you run the included script in the Youtube description and start the VM and voila! GPU acceleration in a nested VM

  • 10 months later...

Hi, I've tried on several different versions of windows (10 & 11) and also different versions of unraid to achieve the same.  

 

But every time i enable Hyper-V within my "Windows features" all my VM's get stuck at the windows spinning loading screen as it seems most others are stuck at too on forums.

 

Baremetal my Windows Install loads up without a problem but when put through unraid it doesn't.

 

Would you mind posting which version of unraid you are using and the template you are using for your successful unRaid > Windows VM ?

 

Many Thanks

 

Subbing as I have the same problem. Enabling VM platform/Linux subsystem results in failure to boot, have to boot in safe mode from recovery where it reverts the changes before it can boot again. 

Edited by Kilrah

  • Community Expert
1 hour ago, lawhazl said:

Hi, I've tried on several different versions of windows (10 & 11) and also different versions of unraid to achieve the same.  

 

But every time i enable Hyper-V within my "Windows features" all my VM's get stuck at the windows spinning loading screen as it seems most others are stuck at too on forums.

 

Baremetal my Windows Install loads up without a problem but when put through unraid it doesn't.

 

Would you mind posting which version of unraid you are using and the template you are using for your successful unRaid > Windows VM ?

 

Many Thanks

 

Have you added nested kernel option in syslinux? Tbis is for intel

label unRAID OS

  menu default

  kernel /bzimage

  append initrd=/bzroot kvm_intel.nested=1

 

AMD. kvm_amd.nested=1

 

Edited by SimonF

Oh didn't know about that, sounds like it'd help :)

Will add for next reboot...

Tried, but still same

 

it does show as enabled:

 

Module: kvm_intel
Parameter: allow_smaller_maxphyaddr --> N
Parameter: dump_invalid_vmcs --> N
Parameter: emulate_invalid_guest_state --> Y
Parameter: enable_apicv --> N
Parameter: enable_shadow_vmcs --> Y
Parameter: enlightened_vmcs --> N
Parameter: ept --> Y
Parameter: eptad --> Y
Parameter: fasteoi --> Y
Parameter: flexpriority --> Y
Parameter: nested --> Y
Parameter: nested_early_check --> N
Parameter: ple_gap --> 128
Parameter: ple_window --> 4096
Parameter: ple_window_grow --> 2
Parameter: ple_window_max --> 4294967295
Parameter: ple_window_shrink --> 0
Parameter: pml --> Y
Parameter: preemption_timer --> Y
Parameter: pt_mode --> 0
Parameter: sgx --> Y
Parameter: unrestricted_guest --> Y
Parameter: vmentry_l1d_flush --> never
Parameter: vnmi --> Y
Parameter: vpid --> Y

 

image.png.d4461cd020e3ea1711a28127171b989d.png

Edited by Kilrah

sadly I'm getting the same result even after enabling the AMD equivalent for me kvm_amd nested=1 / kvm_amd.nested=1

 

still a spinning windows boot screen 

 

Edited by lawhazl

  • Author

I had this working in unRAID 6.10.0-rc1. Since then I only run my windows VM bare metal because the WSL2 performance is like night and day. Anyway, here is my XML

 

It says Winndows 10 but it's actually Windows 11. Yes enabling nested=1 was necessary

 

<domain type='kvm'>
  <name>Windows 10 Pro</name>
  <uuid>5d8e4c80-d4cf-d855-d82b-e7b0c3a4d8d6</uuid>
  <metadata>
    <vmtemplate xmlns="unraid" name="Windows 10" icon="windows.png" os="windows10"/>
  </metadata>
  <memory unit='KiB'>11718750</memory>
  <currentMemory unit='KiB'>11718750</currentMemory>
  <memoryBacking>
    <nosharepages/>
  </memoryBacking>
  <vcpu placement='static'>16</vcpu>
  <cputune>
    <vcpupin vcpu='0' cpuset='0'/>
    <vcpupin vcpu='1' cpuset='8'/>
    <vcpupin vcpu='2' cpuset='1'/>
    <vcpupin vcpu='3' cpuset='9'/>
    <vcpupin vcpu='4' cpuset='2'/>
    <vcpupin vcpu='5' cpuset='10'/>
    <vcpupin vcpu='6' cpuset='3'/>
    <vcpupin vcpu='7' cpuset='11'/>
    <vcpupin vcpu='8' cpuset='4'/>
    <vcpupin vcpu='9' cpuset='12'/>
    <vcpupin vcpu='10' cpuset='5'/>
    <vcpupin vcpu='11' cpuset='13'/>
    <vcpupin vcpu='12' cpuset='6'/>
    <vcpupin vcpu='13' cpuset='14'/>
    <vcpupin vcpu='14' cpuset='7'/>
    <vcpupin vcpu='15' cpuset='15'/>
  </cputune>
  <resource>
    <partition>/machine</partition>
  </resource>
  <os>
    <type arch='x86_64' machine='pc-q35-6.0'>hvm</type>
    <loader readonly='yes' type='pflash'>/mnt/user/domains/Windows 10 Pro/OVMF_CODE.fd</loader>
    <nvram>/mnt/user/domains/Windows 10 Pro/OVMF_VARS.fd</nvram>
  </os>
  <features>
    <acpi/>
    <apic/>
    <hyperv>
      <relaxed state='on'/>
      <vapic state='on'/>
      <spinlocks state='on' retries='8191'/>
      <vendor_id state='on' value='none'/>
    </hyperv>
  </features>
  <cpu mode='host-passthrough' check='none' migratable='on'>
    <topology sockets='1' dies='1' cores='8' threads='2'/>
    <cache mode='passthrough'/>
  </cpu>
  <clock offset='localtime'>
    <timer name='hypervclock' present='yes'/>
    <timer name='hpet' present='no'/>
  </clock>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/local/sbin/qemu</emulator>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/Windows/Window11_Insiders.iso'/>
      <target dev='hda' bus='sata'/>
      <readonly/>
      <boot order='2'/>
      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
    </disk>
    <disk type='file' device='cdrom'>
      <driver name='qemu' type='raw'/>
      <source file='/mnt/user/isos/virtio-win-0.1.141-1.iso'/>
      <target dev='hdb' bus='sata'/>
      <readonly/>
      <address type='drive' controller='0' bus='0' target='0' unit='1'/>
    </disk>
    <disk type='file' device='disk'>
      <driver name='qemu' type='raw' cache='writeback'/>
      <source file='/mnt/user/domains/Windows 10 Pro/vdisk1.img'/>
      <target dev='hdc' bus='virtio'/>
      <boot order='1'/>
      <address type='pci' domain='0x0000' bus='0x05' slot='0x00' function='0x0'/>
    </disk>
    <controller type='usb' index='0' model='ich9-ehci1'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x7'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci1'>
      <master startport='0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0' multifunction='on'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci2'>
      <master startport='2'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x1'/>
    </controller>
    <controller type='usb' index='0' model='ich9-uhci3'>
      <master startport='4'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x2'/>
    </controller>
    <controller type='pci' index='0' model='pcie-root'/>
    <controller type='pci' index='1' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='1' port='0x8'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x0' multifunction='on'/>
    </controller>
    <controller type='pci' index='2' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='2' port='0x9'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
    </controller>
    <controller type='pci' index='3' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='3' port='0xa'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
    </controller>
    <controller type='pci' index='4' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='4' port='0x13'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x3'/>
    </controller>
    <controller type='pci' index='5' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='5' port='0x14'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x4'/>
    </controller>
    <controller type='pci' index='6' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='6' port='0xb'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x5'/>
    </controller>
    <controller type='pci' index='7' model='pcie-to-pci-bridge'>
      <model name='pcie-pci-bridge'/>
      <address type='pci' domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
    </controller>
    <controller type='pci' index='8' model='pcie-root-port'>
      <model name='pcie-root-port'/>
      <target chassis='8' port='0xc'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x6'/>
    </controller>
    <controller type='scsi' index='0' model='lsilogic'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
    </controller>
    <controller type='sata' index='0'>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x1f' function='0x2'/>
    </controller>
    <controller type='virtio-serial' index='0'>
      <address type='pci' domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
    </controller>
    <interface type='bridge'>
      <mac address='52:54:00:e3:02:d1'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </interface>
    <serial type='pty'>
      <target type='isa-serial' port='0'>
        <model name='isa-serial'/>
      </target>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='unix'>
      <target type='virtio' name='org.qemu.guest_agent.0'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <input type='tablet' bus='usb'>
      <address type='usb' bus='0' port='1'/>
    </input>
    <input type='mouse' bus='ps2'/>
    <input type='keyboard' bus='ps2'/>
    <tpm model='tpm-tis'>
      <backend type='emulator' version='2.0'/>
    </tpm>
    <audio id='1' type='none'/>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x0' multifunction='on'/>
    </hostdev>
    <hostdev mode='subsystem' type='pci' managed='yes'>
      <driver name='vfio'/>
      <source>
        <address domain='0x0000' bus='0x01' slot='0x00' function='0x1'/>
      </source>
      <address type='pci' domain='0x0000' bus='0x06' slot='0x00' function='0x1'/>
    </hostdev>
    <memballoon model='none'/>
  </devices>
  <seclabel type='dynamic' model='dac' relabel='yes'/>
</domain>

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.