hyperv直通gpu到windows

windows server2022为例

管理员运行windows PoerShell

$vm = “虚拟机的名字”

Add-VMGpuPartitionAdapter -VMName $vm

Set-VMGpuPartitionAdapter -VMName $vm -MinPartitionVRAM 80000000 -MaxPartitionVRAM 100000000 -OptimalPartitionVRAM 100000000 -MinPartitionEncode 80000000 -MaxPartitionEncode 100000000 -OptimalPartitionEncode 100000000 -MinPartitionDecode 80000000 -MaxPartitionDecode 100000000 -OptimalPartitionDecode 100000000 -MinPartitionCompute 80000000 -MaxPartitionCompute 100000000 -OptimalPartitionCompute 100000000

Set-VM -GuestControlledCacheTypes $true -VMName $vm

Set-VM -LowMemoryMappedIoSpace 1Gb -VMName $vm

Set-VM -HighMemoryMappedIoSpace 32GB -VMName $vm

拷贝驱动文件
①宿主机驱动路径:C:\Windows\System32\DriverStore\FileRepository\
①虚拟机拷贝路径:C:\Windows\System32\HostDriverStore\FileRepository\

在宿主机上打开设备管理,找到显示适配器看到显卡右键驱动程序详细信息
找到nv_dispswi.inf开头的文件,
每个人的电脑上的全名不一样
我本人的是nv_dispswi.inf_amd64_cf3b4fc4e48c2d20

然后打开宿主机驱动路径,在里面找到命名为nv_dispswi.inf_amd64_cf3b4fc4e48c2d20的文件夹,复制文件夹到桌面上

启动虚拟机,如果启动不了的话请做下面的步骤,如果能启动,忽略这个部分,往下拉

启动不了步骤
win+r 输入regedit,打开注册表管理器
打开以下目录
计算机\HKEY LOCAL MACHINE\SOFTWARE\Policies\Microsoft\indows\HyperV如果左边没有HyperV,就在左边Windows位置点右键-新建-项,输入HyperV
右键-新建-DWord项(32位)两个
分别输入注意大小写:
RequireSecureDeviceAssignment
RequireSupportedDeviceAssignment
双击名字,看到数值数据,值都设置为0
启动虚拟机》》》》》》》》》》》》》》》》》

Linux放行端口

在Linux系统中,可以使用iptables命令或者firewall-cmd命令来放行端口号。
1. 使用iptables命令放行端口号:
首先,需要确认iptables防火墙是否启用,可以使用以下命令进行检查:
“`shell
systemctl status iptables
“`
如果返回的结果中显示”active (running)”等字样,则表示iptables防火墙已启用,可以进行下一步操作。
然后,使用以下命令开放一个特定的端口号,比如80端口:
“`shell
iptables -A INPUT -p tcp –dport 80 -j ACCEPT
“`
这条命令的意思是将输入规则(INPUT)添加到iptables中,允许通过TCP协议访问80端口。
最后,保存iptables规则,并重启iptables服务,使规则生效:
“`shell
service iptables save
service iptables restart
“`
如果希望永久性地放行端口号,可以使用以下命令进行设置:
“`shell
iptables-save > /etc/sysconfig/iptables
systemctl restart iptables
“`
2. 使用firewall-cmd命令放行端口号:
首先,需要确认firewalld防火墙是否启用,可以使用以下命令进行检查:
“`shell
systemctl status firewalld
“`
如果返回的结果中显示”active (running)”等字样,则表示firewalld防火墙已启用,可以进行下一步操作。
接下来,使用以下命令开放一个特定的端口号,比如80端口:
“`shell
firewall-cmd –zone=public –add-port=80/tcp –permanent
“`
这条命令的意思是在public区域中永久性地开放TCP协议的80端口。
最后,重启firewalld服务,使规则生效:
“`shell
systemctl restart firewalld
“`
至此,你已经学会了在Linux系统中放行端口号的命令。请根据自己的需求选择合适的方法进行操作。