今天梳理并重新配置了一遍机器及虚拟机,对 Supermicro X10DRL-i
主板的2个可用网口进行了调整:从原来直通给 Dev(开发环境虚拟机),更换到直通给 TrueNAS,本文简单记录了定位网卡和直通的过程。
可以使用 ip
命令先定位当前系统正在使用的网卡,也可以直接跳过本步骤,直接使用第二步中的 lshw 查看。
使用 ip addr
命令先查看当前宿主系统正在使用的网卡,可以通过 ip: 192.168.1.3/24 直观定位网卡: vmbr0。vmbr0 是一个桥接网卡,以命名等规则来看可以直接确定出 eno1 是物理网卡,当然也可以通过 ip link show master vmbr0
查看对应的物理网卡。
# 查看使用的网卡信息
# 1. 直接过滤: ip addr show | grep "inet 192.168" -B 2
# 2. 使用 jq 结构化过滤:
root@pve:~# ip -j addr show | jq -r 'map(.addr_info) | map(map(select(.family == "inet" and .label != "lo"))) | flatten | .[]'
{
"family": "inet",
"local": "192.168.1.3",
"prefixlen": 24,
"scope": "global",
"label": "vmbr0",
"valid_life_time": 4294967295,
"preferred_life_time": 4294967295
}
...
# 确定 vmbr0 对应的物理网卡
# 1. 使用 awk 匹配: ip link show master vmbr0 | awk -F ' ' '{print $2}' | head -n 1
# 2. 使用 jq 结构化过滤:
root@pve:~# ip -j link show master vmbr0 | jq -r 'map(.)[0].ifname'
eno1
lshw 是一个方便查看硬件配置的工具,可以通过该工具快速定位网卡使用的具体PCI ID,PVE 7.1 版本未默认携带,需自行安装:
root@pve:~# apt install lshw -y
使用 lshw 查看网卡相关的硬件信息:
root@pve:~# lshw -class network
*-network
description: Ethernet interface
product: I210 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:09:00.0
logical name: eno1
...
*-network
description: Ethernet controller
product: I210 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:0a:00.0
...
*-network:0
description: Ethernet interface
physical id: 3
logical name: vmbr0
...
....
存在两张网卡:pci@0000:09:00.0
和 pci@0000:0a:00.0
,通过查看 logical name
和 bus info
可以确定宿主正在使用的 eno1 对应的网卡 PCI ID 为: 0000:09:00.0
。
若之前配置支持热插拔网卡则可以不关闭虚拟机直接给添加网卡,可以通过: Options - Hotplug - Network 查看是否开启了网卡热插拔。若未开启,可以先关闭虚拟机。
在PVE WEB UI 中直通 pci@0000:0a:00.0
给虚拟机:
添加完成后,重启进入虚拟机也可以通过 lshw -class network
查看每张网卡的使用情况。