UNRAID 虚拟机 win10安装 直通显卡
环境说明
- UNRAID 6.9.2
- CPU i5-10400 6C12T
- 主板 ASRock B460M Steel Legend
- GPU ASUS PH-GTX1050-2G
安装流程
BIOS
开启虚拟化
多GPU设置主GPU
虚拟机管理配置
设置->虚拟机管理器->高级视图
默认 Windows VirtIO 驱动程序 ISO
下载最新的iso文件,可能会比较慢 会下载到/mnt/user/isos
下面
PCIe ACS 覆盖:下游
设备分组绑定
工具->系统设备
勾选需要直通给虚拟机的设备后 点击下方的在引导时对VFIO选择了绑定
重启
虚拟机安装
配置
- 机器:Q35-5.1
- BIOS:OVMF
- HYPER-V:否
虚拟磁盘类型选qcow2可以动态占用并调整大小
装系统先用VNC,后续再处理直通
安装
安装选择自定义,手动加入VirtIO 驱动
- virtio-win.0.1.xxx->Balloon->w10->amd64
- virtio-win.0.1.xxx->NetKVM->w10->amd64
- virtio-win.0.1.xxx->vioserial->w10->amd64
- virtio-win.0.1.xxx->viostor->w10->amd64
直通
GPU加入配置
虚拟机安装完成后,配置好RDP链接,关机,添加显卡相关配置。
图形ROM BIOS需要在GPU-Z导出或者到techpowerup下载
图形bios修改
使用HxD等16进制编辑器
找到UªxëK7400éLwÌVI
55 AA 78 EB 4B 37 34 30 30 E9 4C 19 77 CC 56 49
将这段前面的所有内容删除 PH-GTX1050-2G 的这段位置是00000A00
修改XML
显卡的address
要添加multifunction='on'
如果需要显卡的HDMI音频,需要把音频的address
中的bus
改成与显卡address
一致,并将function
修改
<hostdev mode='subsystem' type='pci' managed='yes'>
<driver name='vfio'/>
<source>
<address domain='0x0000' bus='0x01' slot='0x00' function='0x0'/>
</source>
<rom file='/mnt/user/domains/Windows 10/gtx1050_2g_change.rom'/>
<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='0x01' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x1'/>
</hostdev>
完成后可以启动虚拟机安装显卡驱动
注意事项
直通无法启动
cpu有一个核满载,且无法检测到虚拟机上线
- 关闭虚拟机
- 显卡1设置为vnc
- 显卡2设置为gpu
- 保存
- 编辑XML 按照直通
修改XML
确认内容 - 保存启动虚拟机,安装好驱动后删除vnc相关内容并检查xml
VNC显示 (GUEST HAS NOT INITIALISED THE DISPLAY (YET))
- 编辑XML
<video> <model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/> </video>
将VNC的
bus
改成0x00
如果无法保存,修改slot
安装
需要先用vnc安装好系统与配置,再处理显卡直通
OVMF如果无法启动机器
fs0:
cd efi
cd boot
bootsx64.efi
去除虚拟机标识
<qemu:commandline>
<qemu:arg value='-cpu'/>
<qemu:arg value='host,-hypervisor,+kvm_pv_unhalt,+kvm_pv_eoi,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_reset,hv_vpindex,hv_runtime,hv_relaxed,kvm=off,hv_vendor_id=intel'/>
</qemu:commandline>
将seabios的虚拟机改成OVMF
- 备份img文件
- 启动虚拟机进入系统
- 使用管理员模式的PowerShell
- 执行
mbr2gpt /validate /allowFullOS mbr2gpt /convert /disk:0 /allowFullOS
- 成功后关机
- 使用相同配置生成新的虚拟机 BIOS选OVMF 硬盘选原本的硬盘文件
VNC+显卡可以启动,但单独直通显卡不显示
vnc的配置 删掉graphics
部分 但是系统内还是会有个小显示器 只是临时处理办法
<graphics type='vnc' port='-1' autoport='yes' websocket='-1' listen='0.0.0.0' keymap='en-us'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<video>
<model type='qxl' ram='65536' vram='65536' vgamem='16384' heads='1' primary='yes'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0' multifunction='on'/>
</video>
虚拟磁盘识别为HDD改SSD
在disk
的target
中添加rotation_rate='1'
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='writeback'/>
<source file='/mnt/user/domains/Windows 10 1581/vdisk1.img' index='1'/>
<backingStore/>
<target dev='hdc' bus='virtio' rotation_rate='1'/>
<boot order='1'/>
<alias name='virtio-disk2'/>
<address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/>
</disk>