pve增加了pci设备
时间: 2025-07-13 08:55:51 浏览: 5
### PVE 中配置 PCI 设备直通
为了使 PCI 设备能够在虚拟机中得到直接利用,在 Proxmox VE (PVE) 上需完成一系列特定设置。这不仅涉及主机系统的内核模块加载,还涉及到具体 VM 的配置调整。
#### 加载必要的内核模块
编辑 `/etc/modules` 文件来确保系统启动时自动加载所需的 VFIO 模块:
```bash
echo "vfio" >> /etc/modules
echo "vfio_iommu_type1" >> /etc/modules
echo "vfio_pci" >> /etc/modules
echo "vfio_virqfd" >> /etc/modules
```
上述命令会向文件追加四条记录以支持VFIO功能[^1]。
#### 修改 GRUB 参数
为了让 IOMMU 功能生效,还需修改引导加载程序GRUB的相关参数。编辑 `/etc/default/grub` 文件中的 `GRUB_CMDLINE_LINUX_DEFAULT` 变量,添加如下选项:
```bash
intel_iommu=on iommu=pt
```
对于 AMD 系统,则应使用 `amd_iommu=on` 替代 intel_iommu 设置。保存更改后执行更新 grub 配置并重启服务器让新设置生效:
```bash
update-grub
reboot
```
#### 将目标设备分配给 VFIO
通过 lspci 命令识别要传递给VM的具体PCI设备ID,并将其绑定到 vfio-pci 驱动上。假设已知某显卡对应的 ID 是 0000:0b:00.0 ,那么可以运行以下脚本实现解绑原驱动再重新绑定至 vfio-pci :
```bash
for dev in $(lspci -D | grep '0000:0b:00.0' | cut -d' ' -f1); do \
echo ${dev} > /sys/bus/pci/devices/${dev}/driver/unbind; \
done
modprobe vfio-pci
for dev in $(lspci -D | grep '0000:0b:00.0'|cut -d' ' -f1);do\
echo ${dev} > /sys/bus/pci/drivers/vfio-pci/new_id;\
done
```
#### 创建或编辑虚拟机 XML 定义
最后一步是在创建新的 KVM 虚拟机时指定希望透传的硬件资源。可以通过 Web UI 或者 CLI 工具 pvesh 来操作。当采用后者方式时,可参照下述 JSON 片段作为模板之一部分:
```json
{
...
"devices": {
"pcidev0": {
"type": "pci",
"hostpci": "0b:00.0"
}
},
...
}
```
以上就是关于如何在 PVE 中配置 PCI 直通的主要步骤概述[^2]。
阅读全文
相关推荐








