Proxmox GPU 直通实战教程(AMD Ryzen 9 7950X + NVIDIA RTX 5060 Ti)
这篇文章整理自一次完整的排障聊天记录,目标环境如下:
- 宿主机:Proxmox VE(AMD 平台)
- CPU:Ryzen 9 7950X(带 AMD Raphael 核显)
- 主板:MSI PRO B650M-A WIFI
- 需要直通给虚拟机的独显:NVIDIA GeForce RTX 5060 Ti
- 宿主机显示继续使用核显,NVIDIA 独显专供虚拟机
如果你也是类似的 AM5 + NVIDIA 组合,这套流程基本可以直接复用。
1. 最终成功状态
在开始前,先明确最终应该达到的状态:
- BIOS 里 SVM 和 IOMMU 都已开启。
- 内核启动参数包含
amd_iommu=on iommu=pt。 /sys/kernel/iommu_groups/下存在 IOMMU 分组。- NVIDIA 显卡两个功能设备都绑定到
vfio-pci。 - 虚拟机使用
OVMF (UEFI)+q35,并成功挂载 PCI 直通设备。
2. BIOS 配置(MSI Click BIOS 5)
步骤 1:进入高级模式
重启进入 BIOS(一般开机按 Delete),切换到 Advanced Mode。

步骤 2:进入 AMD CBS
依次进入:
OC->Advanced CPU Configuration->AMD CBS

步骤 3:开启虚拟化相关选项
在 AMD CBS 中设置:
SVM Enable->EnabledIOMMU->Enabled
建议显式设为 Enabled,不要依赖 Auto。

步骤 4:可选稳定性优化
对于 Ryzen 作为长期运行宿主机,可以考虑:
Global C-state Control->Disabled
Pre-boot DMA Protection、PCIe ARI Support 一般保持 Auto 即可。

步骤 5:确认 UEFI 启动
在 Settings -> Boot 中确认:
Boot mode select为UEFI

保存并重启(F10)。
3. 在 Proxmox 验证并启用 IOMMU
步骤 6:先做基础检测
在 AMD 平台上,常见输出类似:
这表示硬件被识别到了,但还需要确认内核参数已生效。
步骤 7:添加内核参数(GRUB)
先查看当前启动参数:
本次环境中出现了 root=/dev/mapper/pve-root,说明是 LVM + GRUB。
编辑:
设置:
应用并重启:
重启后再次验证:
确认看到 amd_iommu=on iommu=pt。
步骤 8:确认 IOMMU 分组存在
快速检查:
更严格一点可以看分组条目:
只要目录存在且有分组项,IOMMU 就是工作状态。
4. 开机加载 VFIO 模块
虽然历史上常编辑 /etc/modules,但在 systemd 环境下更推荐使用 /etc/modules-load.d/。
创建:
写入:
更新 initramfs:
如果看到:
在 GRUB/LVM 布局下属于正常现象。
然后重启:
5. 将 NVIDIA 显卡绑定到 vfio-pci
步骤 9:识别显卡设备 ID
本次环境识别结果:
- NVIDIA 图形功能:
01:00.0->[10de:2d04] - NVIDIA 音频功能:
01:00.1->[10de:22eb] - 宿主核显:AMD Raphael
11:00.0(amdgpu)
步骤 10:配置 vfio-pci 绑定 ID
创建:
写入:
步骤 11:屏蔽宿主机 NVIDIA 驱动
创建:
写入:
说明:
- 不要屏蔽
amdgpu,否则宿主核显会受影响。 blacklist radeon在现代 Ryzen 核显平台通常不是必须。
应用并重启:
步骤 12:最终验证
理想结果:
这说明宿主机已经把显卡完整交给 VFIO,具备直通条件。
6. 创建 Ubuntu 虚拟机(Proxmox UI)
宿主侧绑定完成后,建议新建虚拟机,而不是复用旧的 SeaBIOS 模板。
创建向导建议:
- OS:选择你的 Ubuntu ISO
- System:
- BIOS:
OVMF (UEFI) - Machine:
q35 - Graphics:安装阶段保留
Default或VirtIO-GPU - CPU:
- Type:
host - Memory:
- 关闭 ballooning
- Network:
VirtIO
然后添加 PCI 设备:
Hardware->Add->PCI Device- 选择
01:00.0(NVIDIA VGA) - 勾选:
All FunctionsROM-BarPCI-Express
为什么只选 01:00.0?
- 因为勾选
All Functions后,会自动把同地址下的01:00.1音频功能一起直通。
安装 Ubuntu 后,在虚拟机内安装 NVIDIA 驱动,并执行:
7. 常见问题排查
- 重启后不是
vfio-pci: - 复查
vfio.conf、blacklist.conf,并再次执行update-initramfs -u -k all。 - 没有 IOMMU 分组:
- 复查 BIOS 中 SVM/IOMMU,以及内核启动参数。
- 安装器黑屏:
- 先保留虚拟显示设备完成系统安装,之后再调整显示策略。
lspci里看到Kernel modules但没生效:- 关键看
Kernel driver in use,不是看模块是否存在。
8. 总结
当 01:00.0 和 01:00.1 都显示 Kernel driver in use: vfio-pci 时,宿主侧配置就完成了。
此时 Proxmox 不再占用这张 NVIDIA 显卡,虚拟机即可独占使用,性能接近原生。