硬件软件需求
宿主机 PVE(proxmox vm) 6.0版(5.4版存在问题不要用)
虚拟机 windows 10
主板需要支持虚拟化技术
宿主机至少需要两个显卡,一个自用(可以是核显),其他独立PCI显卡直通给虚拟机
宿主机需要保证电源功率足够,双显卡推荐额定功率650W,三显卡900W
主板和显卡不能太老,理论上要2015年以后的型号,已确认的最低配为显卡1050Ti,主板B250M
宿主机BIOS设置
开启集显
BIOS内开启虚拟化相关选项
intel 虚拟化 开启
VT-D 开启 支持SR-IOV 单根IO虚拟化
ASPM 开启 让OS管理PCI设备电源,切断宿主BIOS和PCI设备间的管理关系
完成BIOS后需要关闭电源重新冷启动
安装PVM宿主机
官网下载最新Proxmox 6.0版镜像
https://www.proxmox.com/en/downloads
官网下载最新balenaEtcher镜像烧录工具
https://www.balena.io/etcher/
准备一个2G以上容量U盘,制作Proxmox安装启动U盘,之后插上电脑按流程安装,安装以后可以通过pve管理网页来操作
直通显卡相关设置
这些设置可进pve管理网页中的Shell来完成,下同
开启 iommu
vi /etc/default/grub
找到该文件中,GRUB_CMDLINE_LINUX_DEFAULT="quiet",(按i进入编辑模式)将其更改为
Intel平台(使用intel CPU和主板):
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
AMD平台(使用amd CPU和主板):
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on video=efifb:off"
保存退出(先按esc,再输入 :wq,回车)
输入
update-grub
更新grub
修改后,利用命令:dmesg | grep -e DMAR -e IOMMU 测试修改效果,若有输出,则正常,无输出,则需要到bios设置虚拟化。
修改vfio配置
vi /etc/modules
按i(vi命令时使用),然后在该文件末尾加入:
vfio vfio_iommu_type1 vfio_pci vfio_virqfd
按esc,输入 :wq 保存输入后退出
IOMMU隔离校验:
find /sys/kernel/iommu_groups/ -type l
加N卡和I卡驱动黑名单,防止更新
直接在命令行中粘贴以下内容:
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf echo "blacklist i2c_nvidia_gpu" >> /etc/modprobe.d/blacklist.conf echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf update-initramfs -u
更新信息 后 重启PVE
创建VM
上传必要的ISO文件
需要预先上传两个iso镜像文件到local存储 ,一个是win10安装盘( https://msdn.itellyou.cn/ ),一个是virtio驱动( https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/ )
点左边local存储,依次选择 Content -> Upload 如下图
虚拟机硬件设置
请参考如下虚拟硬件配置来创建虚拟机
重点如下:
创建虚拟机时需要打开高级选项
BIOS 一定要选择 ovmf
Machine 一定要选择q35
cpu 选host,至少4 core
Memory 需要关闭balloon模式,系统需要至少保留2G内存,否则会崩溃
PCI Device 需要设置为待直通的显卡,开启pci-e
Network Device 类型选virtio, 主要不要和其他的mac地址冲突
CD Drive 总线类型一定要选ide,先选择刚刚上传的win10安装盘
Hard Diks 总线类型选scsi
给虚拟机安装windows系统
之后启动并安装windows,安装时需要载入virtio驱动,否则找不到硬盘
把virtio-win.iso 载入虚拟光驱,然后在windows 安装程序里面选择光驱中的 vioscsi\w10\amd64 这个目录,这样就能加载磁盘驱动,找到磁盘了
解决N卡43错误
修改虚拟机配置文件以解决该问题,找到pve虚拟机配置文件,地址在 /etc/pve/qemu-server/
下面只列出需要修改的部分,启动args需要添加到首行
args: -machine type=q35,kernel_irqchip=on cpu: host,hidden=1,hv-vendor-id=1234567890a4
远程控制
显卡正常后后先安装teamviewer,设置永久密码,随windows启动,然后给显卡插上虚拟显示器(上淘宝购买 HDMI假负载),进windows设置显示器设置只输出到第二显示器(即独立显卡),否则运行游戏会卡,此后通过teamviewer和游戏串双保险远程管理
之后就可以安装游戏串了
共享游戏盘
可以选择某台硬盘大的机器作为游戏共享盘主机,这样更新游戏更加方便
创建LXC container
首先下载个alpine镜像,然后创建一个2核的LXC容器,用来做一个简单的samba共享盘
需要给容器挂载一个足够大的虚拟硬盘
安装samba
apk add samba
创建共享目录
mkdir /media/storage chmod 0777 /media/storage
编辑 /etc/samba/smb.conf
[global] workgroup = WORKGROUP force user = sambauser [storage] browseable = yes writeable = yes path = /media/storage
创建系统用户和samba用户,两个用户密码需要相同
adduser sambauser smbpasswd -a sambauser
启动samba共享
rc-update add samba rc-service samba start
常见问题
N卡出现43错误无法工作
一定要按照前面给的方案手动修改虚拟机配置文件
实在不行 可能是显卡BIOS加载有问题,参照下面网站下载并破解显卡BIOS
https://github.com/Matoking/NVIDIA-vBIOS-VFIO-Patcher
游戏串串流无声音
需要安装虚拟声卡
链接: https://pan.baidu.com/s/19Ml0SjLAAg3Abc9a9vU_Fw 提取码: m7ti
游戏串卡死
请确认是不是windows一直GPU占用100%,如果是则尝试以下方法,在grub后追加 pcie_aspm=off,例如
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off pcie_aspm=off"
安装windows时直接蓝屏,显示[SYSTEM THREAD EXCEPTION NOT HANDLED ...]
运行以下代码然后重启宿主机
echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf