PVE 网卡直通检查
时间: 2025-07-15 19:18:41 浏览: 2
### Proxmox VE 网卡直通配置与状态检查方法
在 Proxmox VE 中,网卡直通(PCI Passthrough)是一种将物理网卡直接分配给虚拟机的技术。以下是配置和检查网卡直通的方法:
#### 1. 检查硬件支持
确保服务器的 CPU 和主板支持 IOMMU 功能,并且已在 BIOS/UEFI 中启用。
- 对于 Intel CPU,需要启用 **VT-d**。
- 对于 AMD CPU,需要启用 **AMD-Vi**。
#### 2. 配置 GRUB 参数
编辑 `/etc/default/grub` 文件以启用 IOMMU 支持[^2]:
```bash
nano /etc/default/grub
```
根据 CPU 类型修改 `GRUB_CMDLINE_LINUX_DEFAULT` 参数:
- **Intel CPU**:
```plaintext
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt pcie_port_pm=off"
```
- **AMD CPU**:
```plaintext
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt pcie_port_pm=off"
```
更新 GRUB 配置并重启系统以应用更改:
```bash
update-grub
reboot
```
#### 3. 加载必要的内核模块
创建或编辑 `/etc/modules` 文件以加载 `vfio` 相关模块[^1]:
```bash
tee /etc/modules << EOF
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
EOF
```
更新初始化 RAM 文件系统以包含这些模块:
```bash
update-initramfs -u -k all
```
#### 4. 检查 IOMMU 是否启用
运行以下命令以确认 IOMMU 已正确启用:
```bash
dmesg | grep -e DMAR -e IOMMU
```
如果输出中包含类似以下内容,则表示 IOMMU 已成功启用:
```plaintext
[ 0.000000] DMAR: IOMMU enabled
```
#### 5. 查找网卡设备 ID
使用 `lspci` 命令查找要直通的网卡设备 ID[^1]:
```bash
lspci | grep net
```
例如,输出可能为:
```plaintext
06:00.0 Ethernet controller: Intel Corporation Ethernet Controller X710 for 10GbE SFP+
```
记录设备的 BDF(Bus:Device.Function)地址,如 `06:00.0`。
#### 6. 检查 vfio 模块是否加载
确认 `vfio` 模块已正确加载:
```bash
lsmod | grep vfio
```
如果模块已加载,输出应类似于以下内容:
```plaintext
vfio_pci 81920 0
vfio_iommu_type1 36864 0
vfio 28672 2 vfio_iommu_type1,vfio_pci
```
#### 7. 将网卡分配给虚拟机
编辑虚拟机配置文件(通常位于 `/etc/pve/qemu-server/<VMID>.conf`),添加以下行以绑定网卡到虚拟机:
```plaintext
hostpci0: <BDF>,pcie=1
```
例如:
```plaintext
hostpci0: 06:00.0,pcie=1
```
重新启动虚拟机以应用更改。
#### 8. 验证网卡直通状态
进入虚拟机,使用 `lspci` 或其他工具检查网卡是否已成功直通。例如:
```bash
lspci | grep Ethernet
```
---
### 注意事项
- 如果虚拟机无法识别直通的网卡,请检查虚拟机的兼容性模式(推荐使用 QEMU/KVM 的最新版本)。
- 确保主机操作系统未占用目标网卡设备。可以通过卸载相关驱动程序实现。
---
阅读全文
相关推荐


















