检测设备可直通性
使用微软提供的设备直通检测脚本. 绿色提示且能显示出设备路径的是可以直通的.
如显示该提示可禁用子设备再行检测:Traffic from this device may be redirected to other devices in the system. Not assignable.
微软虚拟化文档仓库:https://github.com/MicrosoftDocs/Virtualization-Documentation
实践下来这个检测脚本并不准确,在Win11中GTX1660显示能直通, 而在Server2025中显示不能, 最终是能直通成功的
尝试直通其它设备的,可以去设备管理器中查看设备路径
#下载脚本
curl -o dda.ps1 https://raw.githubusercontent.com/MicrosoftDocs/Virtualization-Documentation/refs/heads/live/hyperv-tools/DiscreteDeviceAssignment/SurveyDDA.ps1
#执行脚本查看设备信息
./dda.ps1
#虚拟机名称与PCIe路径
$VM_NAME="win10"
$PCIe = "PCIROOT(0)#PCI(0302)#PCI(0000)"
#下线PCIe设备
Dismount-VMHostAssignableDevice -LocationPath $PCIe -force
#将设备分配到虚拟机
Add-VMAssignableDevice -LocationPath $PCIe -VMName $VM_NAME
#没错误的话可以使用以下命令查看分配状态
Get-VMAssignableDevice -VMName $VM_NAME
启动虚拟机发生错误-主机系统不支持
虚拟机连接
尝试更改“win10”的状态时应用程序遇到错误。
“win10”无法启动。
Virtual Pci Express Port (实例 ID C422777F-39F1-41BC-A34F-9AFE13B51D83): 无法开机,因为发生了错误“虚拟机监控程序功能对于该用户来说不可用。”。
“win10”无法启动。(虚拟机 ID 9785D597-D041-4163-AF70-2280B9776885)
“win10”Virtual Pci Express Port (实例 ID C422777F-39F1-41BC-A34F-9AFE13B51D83): 无法打开电源,因为发生错误“虚拟机监控程序功能对于该用户来说不可用。”(0xC035001E)。(虚拟机 ID 9785D597-D041-4163-AF70-2280B9776885)
家用Windows不支持, 需要换成Windows Server版
经网络查找相关资料应该是windows10/11阉割了部分hyper-v的DDA功能:
显卡错误代码43
43貌似在Hyper-v中是无解了,
这个43是显卡驱动加入了检测虚拟化代码,不允许低端显卡进行虚拟化..使用PVE平台貌似能屏蔽掉这个检测,我这张RX 570是行不通了,
另外一张GTX1660是可以正常直通的,据说也是最近不久NVDIA的驱动才支,原来也是不允许虚拟化
# Remove the device from the VM
Remove-VMAssignableDevice -LocationPath $PCIe -VMName $VM_NAME
# Mount the device back in the host
Mount-VMHostAssignableDevice -LocationPath $PCIe
Copy-VMFile "win10" -SourcePath "F:\下载目录\whql-amd-software-adrenalin-edition-24.3.1-win10-win11-mar20-vega-polaris.exe" -DestinationPath "C:\display.exe" -CreateFullPath -FileSource Host
其它-hyper-v安装的win7中未知设备问题
这是win7 x64的:windows6.x-hypervintegrationservices-x64
5