NUC Proxmox 外置显卡扩展坞 Windows双系统

Kiyor | Created: 06-29-21 12:44:35, Last Update: 04-10-23 19:20:52



  • 本人喜欢折腾服务器, 很久以前就喜欢把NUC当家庭服务器玩, 而且一些服务在NUC上跑
  • 最近玩原神, 想要电脑上玩, 但家里没有有独立显卡的Windows设备, 原神不支持虚拟机, bypass虚拟机的hack感觉不是很安全
  • 有显卡最近也能挖矿
  • 玩游戏CPU看上去没什么瓶颈, 但GPU还是有瓶颈, 所以理论上来说只要不玩原神虚拟机可以玩游戏, 其他VM也能正常跑

  • 2021/07/15更新, 以下配置可以在虚拟机下跑原神了.

  • NUC10I7FNH
  • 2TB m2 ssd
  • 512G 2.5 ssd
  • 64GB Ram
  • Razer Core X Chroma
  • Evga 3070

直接尝试NUC安装Windows在512G ssd上接外置显卡, 但折腾了很久重装了无数次一直有问题…所以放弃了.

随后想着放弃原神, 显卡呢么贵不能挖矿要被老婆骂死. 于是还是折腾起了虚拟机安装外置显卡.

  • 非常容易不赘述
  • 需要根据此文档把前置需要的一些配置配完https://pve.proxmox.com/wiki/Pci_passthrough, 系统级的配置不赘述文档说的很清楚了
  1. 新建Windows
  2. 测试可用盘为Win10_20H2_v2_English_x64.iso, 挂载第二个盘virtio-win-0.1.185.iso并在安装时作为驱动.
  3. System中高级选项必须选OVMF (UEFI)并选择disk, machine必须选q35, 不用添加UEFI disk
  4. Hard Disk随意, 之后需要覆盖
  5. 显示VirtiO-GPU
  6. 其余默认或者根据下方配置选择, 也可以之后用我的配置进行覆盖. (下方配置是实测可过原神虚拟机检测的配置)
  7. 先不要开机, qm set ${vm-id} -sata0 /dev/disk/by-id/{disk-uuid}, 修改/etc/pve/nodes/${node}/qemu-server/${vm}.conf删除刚才随意配置的硬盘, 也可以在Proxmox web上删除
  8. 开机安装Windows以及更新驱动和手动更新
  9. 安装后在option中把sata0设为启动盘
  10. 增加PCI显卡配置hostpci0: 06:00,pcie=1 (当前系统显卡读取位06:00, lspci可以查看显卡在pci中的编号)
  11. 开机等待Windows读取到显卡名称, 之后安装最新显卡驱动
  12. 修改显卡配置为hostpci0: 06:00,pcie=1,x-vga=1并把显卡接入显示器
  13. 开机正常但Proxmox的console将无法工作
  14. 接入各种usb鼠标键盘配置类似, 可以用Proxmox配置界面设置, 配置类似usb0: host=2-3,usb3=1, 最多5个设备限制, 未知是否可以增加, 推荐用蓝牙adapter这样可以用一个usb位添加多个设备
  15. 配置文件中添加此行args: -cpu host,-hypervisor
  16. 使用usb鼠标键盘登陆
  17. 完成
  18. 可选安装https://pve.proxmox.com/wiki/Windows_VirtIO_Drivers

最终我的vm配置文件

args: -cpu host,-hypervisor
bios: ovmf
boot: order=sata0
cores: 6
cpu: host
hostpci0: 06:00,pcie=1,x-vga=1
machine: pc-q35-5.2
memory: 16384
name: win
net0: virtio=8E:D7:74:9C:2C:03,bridge=vmbr0,firewall=1
numa: 0
ostype: win10
sata0: /dev/disk/by-id/wwn-0x5002538f31514b7b,size=1953514584K
scsihw: virtio-scsi-single
smbios1: uuid=29c7a297-85eb-4ad8-87b1-155f5bfd21b1
sockets: 1
tablet: 1
usb0: host=0a12:0001,usb3=1
usb1: host=0a73:001d,usb3=1
usb2: host=05ac:024f,usb3=1
usb3: host=1532:0084,usb3=1
usb4: host=2-3,usb3=1
vmgenid: 954e7ed1-bff4-4144-901e-a9db1d3e8a4d
  1. 开机尝试NUC的HDMI输出和显卡扩展坞的输出, 任意输出可用即可
  2. 一大堆驱动可能会有问题(本人第一次安装有问题, 第二次安装啥问题都没有), 鼠标键盘和网卡驱动都可能会有问题, 比较安全的方式是先手动下载网卡驱动和鼠标键盘驱动. 本人在折腾的时候只有键盘驱动可用, 仅用键盘实现登陆后开启wifi(wifi可用但未开启), 之后系统自动开始识别驱动逐渐自动下载到可用(网卡, 鼠标可用), 唯一好的是显卡驱动一点问题都没有, 在VM环境下显卡驱动已经完美安装.
  3. 系统可用后下载Intel的driver自动识别并更新到最新驱动
  4. 完成
  5. 切换到VM模式下的Windows会提示Intel有驱动可以更新, 更新会失败系统会直接崩, 但重启即可, 不推荐试
  • 完全关闭NUC和扩展坞
  • 显示器切换NUC自带HDMI输出
  • 开机按F10进入选择系统界面并选择Proxmox
  • 进入系统后可以开启扩展坞并开启Windows VM

感觉还是在Proxmox启动时会加载显卡所以才需要关闭, 理论上加上过blacklist不应该啊, 有人知道怎么解决可以告诉我.

  • 开启显卡扩展坞
  • 开NUC后自动会进入Windows界面, Windows太霸道即使BIOS写Proxmox优先仍然会被Windows改为Windows优先
  • 显示器切换NUC自带HDMI输出(此时显卡扩展坞未正常连接故显卡HDMI输出黑屏)
  • 输入密码登陆, 显卡扩展坞正常工作
  • 其实Windows显卡驱动已经完美安装, 所以只要进去系统后显卡开关都没什么问题

这类方案太折腾了, 而且成本一点都不便宜, 显卡扩展坞也不知道是不是未来的趋势, 估计这次折腾后不会再用扩展坞玩了, 不过现在这个方案估计能玩至少5年游戏, 并且我买了evga的10年显卡保修…

NUC Windows直接安装一直蓝屏, 报错有VIDEO_MEMORY_MANAGEMENT_INTERNALVIDEO_TDR_FAILURE, egpu的论坛找了很久也找不到可行的方案. 太难了…我果然还是适合玩linux.

我的Mac Book Pro加Boot Camp现在连扩展坞也是有问题, 还没有折腾出来, 不过因为NUC已经可用并稳定, 可能就不再折腾Mac了, 网上有个不错的教学只是觉得其中有个步骤有些玄学, 比如开机后进入Windows菊花界面马上开关显卡之类的, 本人不太喜欢玄学, 但最终我总结的步骤还是比较清楚和make sense的, 所以就放出来分享, 希望有需求的人别走弯路, 如果不是已经有了NUC和显卡和扩展坞的并不推荐, 但如果想这么折腾, 那希望此文档对你有所帮助.

  • USB mount并不好用, 可以尝试把NUC的蓝牙模块找到后直接用PCI all function给mount, 单个设备可以直接让VM享受蓝牙, 无线Wi-Fi和所有USB口权限.
  • 更新后配置为单Proxmox系统但可以以VM模式完美运行Windows, 开机最好按照推荐方式关显卡开机后再开显卡, 否则有几率出现难以排查的显卡问题…
  • 这种方式运行的Windows暂时已经够用, 唯有老头环和P5R卡的不能玩.
agent: 1
args: -cpu host,-hypervisor
bios: ovmf
boot: order=scsi0
cores: 8
cpu: kvm64,flags=+md-clear;+pcid;+spec-ctrl;+ssbd;+pdpe1gb;+hv-tlbflush;+aes
hostpci0: 06:00,pcie=1,x-vga=1
hostpci1: 00:14,pcie=1
ide0: local:iso/Win10_20H2_v2_English_x64.iso,media=cdrom,size=6076022K
ide2: local:iso/virtio-win-0.1.225.iso,media=cdrom
machine: pc-q35-5.2
memory: 24576
name: win2
net0: virtio=9A:D4:CB:C7:B5:89,bridge=vmbr0,firewall=1
numa: 1
ostype: win10
scsi0: local-lvm:vm-127-disk-0,backup=0,cache=writeback,iothread=1,replicate=0,size=200G,ssd=1
scsi1: /dev/disk/by-id/wwn-0x5002538f31514b7b,backup=0,cache=writeback,discard=on,iothread=1,replicate=0,size=1953514584K,ssd=1
scsihw: virtio-scsi-single
smbios1: uuid=c60f2e34-0adc-4f82-b304-4e0bea301485
sockets: 1
vga: virtio
vmgenid: 540c3781-daa8-4087-835c-8a145c02f6bc


Category: none