pve直通的一些优化
2026-01-11
虚拟机配置优化(核心修复)
机型与固件
机型:必须设为 q35,i440fx 对新核显支持差,易导致无输出。
固件:选择 “OVMF (UEFI)”,禁用 SeaBIOS;若需安全启动,可启用 “Secure Boot” 但需提前准备密钥。
PCI 直通设置
核显与音频设备同组直通:780M 核显的音频控制器(如 AMD 的 Audio Device)需与核显一起添加到虚拟机 PCI 设备,避免音频占用导致显示异常。
启用 “Primary GPU”:在 PVE 虚拟机硬件→PCI 设备→编辑,勾选 “Primary GPU”,让核显作为虚拟机默认显示输出。
内核参数与 VFIO 驱动
编辑
/etc/default/grub,确保内核参数包含:bashGRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_acs_override=downstream,multifunction"
Intel 平台将
amd_iommu=on改为intel_iommu=on。更新 grub 并重启:
bashupdate-grubreboot
验证 IOMMU:
dmesg | grep -i iommu,输出中应无错误,显示 “IOMMU enabled”。绑定核显到 VFIO:确认
/etc/modprobe.d/vfio.conf中设备 ID 正确(如 AMD 780M 为1002:15bf),执行update-initramfs -k all -u并重启。
四、VBIOS / 固件与驱动修复
加载核显 VBIOS(关键)
提取或下载 780M 的 VBIOS 文件(如
780m_igd.rom),上传到 PVE 的/usr/share/kvm/目录。在虚拟机配置文件(
/etc/pve/qemu-server/<VMID>.conf)中添加:bashargs: -device vfio-pci,host=00:02.0,id=hostpci0,romfile=/usr/share/kvm/780m_igd.rom
注:
00:02.0为核显的 PCI 地址,用lspci | grep VGA查询。安装正确驱动
Windows 虚拟机:安装 AMD 官方最新 780M 驱动,避免系统自带的基础驱动;安装后在 “显示设置” 中设为核显输出。
Linux 虚拟机:安装
mesa、amdgpu驱动,确保内核版本≥5.15(780M 需较新内核支持)。
五、高级修复(针对特殊问题)
解决 AMD 核显重置 bug(Radeon Reset Bug)
安装
radeonresetbugfix工具(GitHub 开源),修复核显直通后重启无输出的问题。命令(以 Debian/Ubuntu 为例):
bashgit clone https://github.com/torvalds/linux.git# 编译安装对应补丁,或使用预编译包
QEMU 版本兼容
若 PVE 版本≥8.3.5,QEMU 9.2 可能不支持 legacy-igd 模式,导致无输出。
降级 QEMU(临时修复):
bashapt install pve-qemu-kvm=9.1.2-3
或在虚拟机配置中移除
legacy-igd=1参数,保留args与 VBIOS 设置。IOMMU 组隔离
用
lspci -vnn检查核显的 IOMMU 组,确保核显与其他设备(如声卡、网卡)不在同一组,避免共享导致的冲突。若共享,添加
pcie_acs_override=downstream,multifunction到内核参数,强制隔离 PCIe 设备。
六、总结与下一步
修复 BIOS 设置(开启 VT-d/Above 4G / 关闭 CSM)→ 切换 q35+OVMF → 移除 QXL 显卡。
绑定 VBIOS → 安装最新驱动 → 重启虚拟机。
仍无输出,检查 IOMMU 组隔离与 QEMU 版本,必要时用
radeonresetbugfix。
lspci | grep VGA)、虚拟机配置文件(/etc/pve/qemu-server/<VMID>.conf)、dmesg | grep vfio的输出。