# udevadm info /sys/class/net/ens37
P: /devices/pci0000:00/0000:00:11.0/0000:02:05.0/net/ens37
E: DEVPATH=/devices/pci0000:00/0000:00:11.0/0000:02:05.0/net/ens37
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=82545EM Gigabit Ethernet Controller (Copper) (PRO/1000 MT Single Port Adapter)
E: ID_MODEL_ID=0x100f
E: ID_NET_DRIVER=e1000
E: ID_NET_NAME_MAC=enx000c293b31aa
E: ID_NET_NAME_PATH=enp2s5
E: ID_NET_NAME_SLOT=ens37
E: ID_OUI_FROM_DATABASE=VMware, Inc.
E: ID_PATH=pci-0000:02:05.0
E: ID_PATH_TAG=pci-0000_02_05_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_VENDOR_ID=0x8086
E: IFINDEX=3
E: INTERFACE=ens37
E: MAJOR=0
E: MINOR=0
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/ens37 /sys/subsystem/net/devices/ens37
E: TAGS=:systemd:
E: USEC_INITIALIZED=277347903
udev中有3条与网卡名称有关的缺省规则(目录/usr/lib/udev/rules.d/),按顺序匹配
使用/lib/udev/rename_device去查詢/etc/sysconfig/network-scripts/ifcfg*配置文件,修改HWADDR=xx:xx:xx:xx:xx:xx 的网卡名称为 DEVICE=yyyy中的"yyyy"
缺省关闭,可通过内核开关biosdevname=1打开,当前无法获取名称
# biosdevname -i ens37
#
缺省打开,可通过内核开关net.ifnames=0关闭
按照以下顺序匹配
如果匹配此条,则名称为ens37
# cat /etc/default/grub
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 spectre_v2=retpoline rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
# grub2-mkconfig -o /boot/grub2/grub.cfg
# reboot
使用ifcfg* rename优先级更高,但是需要注意修改名称与随机生成名称可能出现冲突,比如想交换eth0和eth1的名称,则无法实现
# cat /var/log/messages | grep rename
Sep 1 02:52:56 centos7_1 systemd-udevd: could not rename interface '2' from 'eth0' to 'eth1': File exists
Sep 1 02:52:56 centos7_1 systemd-udevd: could not rename interface '3' from 'eth1' to 'eth0': File exists
自定义规则/etc/udev/rules.d/70-persistent-net.rules拥有比ifcfg*规则更高的优先级
cat >> /etc/udev/rules.d/70-persistent-net.rules << EOF
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:3b:31:a0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:3b:31:aa", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
EOF
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞8
添加新评论1 条评论
2023-09-15 15:53