欢迎来到这篇详细的 PCI直通 教程!如果你想让虚拟机直接使用物理硬件(比如显卡、网卡),获得接近原生的性能,那么 QEMU 的 设备直通 功能就是你的不二之选。本文将手把手带你完成整个配置过程,即使是小白也能轻松上手。
PCI直通 允许将宿主机上的物理PCI设备(如显卡、网卡、NVMe硬盘)直接分配给虚拟机使用,跳过宿主机内核的干预。这意味着虚拟机能够直接与硬件通信,极大提升性能。例如,通过 GPU直通,你可以在虚拟机中进行3D渲染或玩大型游戏。
在开始之前,确保你的系统满足以下条件:
编辑内核引导参数(例如在GRUB中),添加:
intel_iommu=on iommu=pt # Intel CPUamd_iommu=on iommu=pt # AMD CPU
重启后,运行以下命令检查IOMMU是否启用:
dmesg | grep IOMMUfind /sys/kernel/iommu_groups/ -type l
如果看到设备列表,说明IOMMU正常工作。
为了让宿主机忽略该设备,我们需要将其绑定到 vfio-pci 驱动。首先找到设备的PCI地址(如 01:00.0)和供应商/设备ID:
lspci -nn | grep -i nvidia # 示例查找NVIDIA显卡
然后,将设备ID添加到vfio-pci的选项:
echo "options vfio-pci ids=10de:1b80,10de:10f0" > /etc/modprobe.d/vfio.conf
更新initramfs并重启:
update-initramfs -u # Debian/Ubuntumkinitcpio -P # Arch Linux
现在,我们可以用QEMU命令行启动虚拟机,并附加直通设备。以下是一个包含 GPU直通 的示例:
qemu-system-x86_64
-enable-kvm
-m 8G
-cpu host
-smp 4
-device vfio-pci,host=01:00.0
-device vfio-pci,host=01:00.1
-drive file=/path/to/disk.qcow2,format=qcow2
-vga none -nographic
注意:host=01:00.0 替换为你的设备地址。如果你的设备有多个功能(如显卡的音频功能),需要一并直通。
Q: 虚拟机启动报错“设备未找到”?A: 检查设备是否已被其他驱动占用,或vfio-pci是否正确绑定。可以运行 lspci -k 查看当前驱动。
Q: IOMMU组包含多个设备,无法单独直通?A: 这通常需要ACS补丁或重新分配PCIe插槽。部分主板支持ACS特性,可以尝试开启。
Q: 直通后虚拟机性能不佳?A: 确保CPU型号设置为host,并启用了KVM。另外,某些设备可能需要特定的ROM文件。
通过本文,你应该掌握了 PCI直通 的基本流程。无论是为了提升虚拟机性能,还是进行硬件虚拟化实验,QEMU 的 设备直通 都是一项强大的技术。如果你在配置过程中遇到问题,欢迎在社区讨论。希望这篇教程对你有所帮助!
本文由主机测评网于2026-03-04发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260328660.html