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 覆盖:下游
2023-01-06T01:10:20.png

设备分组绑定

工具->系统设备
勾选需要直通给虚拟机的设备后 点击下方的在引导时对VFIO选择了绑定
2023-01-05T10:13:44.png


重启


虚拟机安装

配置

  • 机器:Q35-5.1
  • BIOS:OVMF
  • HYPER-V:否
    2023-01-06T01:13:12.png

虚拟磁盘类型选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链接,关机,添加显卡相关配置。
2023-01-06T01:22:33.png
图形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

disktarget中添加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>

本文链接:

https://www.antixu.com/archives/417/
1 + 3 =
快来做第一个评论的人吧~