Debian系Linux网卡设备重命名eth

Debian系Linux网卡设备重命名eth

需求

硬件上采用一块intel i350-t4(四个千兆网口),在较新的Debian系 操作系统中呈现enpXXX0,enpXXX1,enpXXX2,enpXXX3四个顺序的网卡设备名。
我们需要将enp网卡名改成eth风格,通常直接修改grub比较快,但还有个需求我们需要跳过enpXXX1,将enpXXX2重命名成eth1,将enpXXX3重命名成eth2。如果直接修改grub无法跳过enpXXX1。

Setp1

准备好在/etc//etc/udev/rules.d/目录下新建规则文件:75-net-description.rules(没有就新建,75代表执行顺序)
文件内容示例如下:

ACTION=="remove", GOTO="net_end"
SUBSYSTEM!="net", GOTO="net_end"
SUBSYSTEMS=="pci", ATTRS{device}=="0x1521", KERNELS=="*.0", NAME="eth0"
SUBSYSTEMS=="pci", ATTRS{device}=="0x1523", KERNELS=="*.2", NAME="eth2"
SUBSYSTEMS=="pci", ATTRS{device}=="0x1523", KERNELS=="*.3", NAME="eth1"
LABEL="net_end"

Step2

注意Step1中红色标注部分,该部分与硬件设计密切相关。相同硬件设计该部分则完全相同。
利用设备管理器查找指定网卡设备的地址。设备管理器–udev是Linux内核的设备管理器,管理/dev目录底下的设备节点。
ATTRS{device}简化命令及输出选取示例如下:

命令:udevadm info -a -p /sys/class/net/enp8s0f1 | grep ATTRS{device}
输出:
ATTRS{device}=="0x1521"
ATTRS{device}=="0x2222"(示例)
ATTRS{device}=="0x3333"(示例)
ATTRS{device}=="0x3333"(示例)

我们选取第一行的值作为新建rules的第一列参数。
KERNELS简化命令及输出选取示例如下:

命令:udevadm info -a -p /sys/class/net/enp8s0f1 | grep KERNELS
输出:
    KERNELS=="0000:08:00.1"
    KERNELS=="0000:02:08.0"
    KERNELS=="0000:01:00.0"
    KERNELS=="0000:00:00.0"
    KERNELS=="pci0000:00"
    KERNELS=="40000000.pcie-controller"
    KERNELS=="soc"
    KERNELS=="platform"

同样选取第一行的值作为新建rules的第二列参数。注意KERNELS参数简写*.0; 即明确小数点后数字即可。

PS

udevadm info -p指定路径
其他参数用法详解,这里不具体说了~
udevadm info 详细点的输出示例如下:

udevadm info -a -p /sys/class/net/enp8s0f1

输出内容很多从父一路继承过来都会打印输出。


版权声明:本文为weixin_47065654原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。