![有没有办法可以永久更改超微服务器上 NIC 卡的关联?](https://linux22.com/image/1379436/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E5%8F%AF%E4%BB%A5%E6%B0%B8%E4%B9%85%E6%9B%B4%E6%94%B9%E8%B6%85%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%20NIC%20%E5%8D%A1%E7%9A%84%E5%85%B3%E8%81%94%EF%BC%9F.png)
有 4 个端口,eth0...eth3,我想重新分配它们,以便 eth0 与当前列为 eth2 的 NIC 相关联,而 eth1 与 eth3 相关联。基本上就是交换它们。它需要是永久性的,并且在重新安装操作系统后仍可保留。所有 4 个端口都是主板的一部分,因此不可能只是物理地重新定位它们。
原因是我设置了一个 PXE 服务器,该服务器默认使用 eth0 来存储 kickstart 文件和 PXE 启动菜单,但该服务器使用 eth2 或 3 来连接互联网。eth0 和 1(当前配置)是我们不使用的 10gig 端口。
答案1
如果您的系统使用 udev(CentOS 使用),请更新 udev 规则以在重新启动后保留更改。您可以使用以下过程:
1)获取 NIC 的 MAC 地址。您可以使用以下方法执行此操作:
ifconfig -a | grep -i --color hwaddr
2)重命名网卡/etc/udev/rules.d/70-persistent-net.rules
它看起来会像这样:
# PCI device 0x14e4:0x1680 (tg3)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="b8:ac:6f:65:31:e5", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
找到与步骤 1 中的硬件地址匹配的条目并更改属性NAME
。进行更改,保存文件并reboot
测试更改。
3)测试更改:使用以下命令验证您的设置是否正确:
# ifconfig -a
# ifconfig eth0
# ifconfig -a | less
# ip addr show
关于这个主题的更详细的文章可以找到这里。这应该适用于任何使用 udev 的发行版。
答案2
您必须在 bios 中禁用您不想使用的那些。当驱动器使用新操作系统格式化时,有关 udev 规则的所有其他答案都将失效。
如果在 BIOS 中禁用它,Linux 将看不到它们,并且它在重启和刷新后仍然存在。
答案3
如果您的硬件是由 udev 配置的,您可以在 /etc/udev/rules.d/70-persistent-net.rules 中更改适配器名称(具体路径可能取决于您的发行版)。
该文件包含如下一行:
#PCI 设备 0x10ec:0x8168 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?", ATTR{address}=="00:e0:6f:01:e4:a5", > ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth", NAME="eth0"
只需改变NAME="eth0"进入NAME="我的所需适配器名称"。