CentOS 7重命名一个网卡
把网卡 enp0s3 改成 eth0
# ip link set enp0s3 down
# ip link set enp0s3 name eth0
# ip link set eth0 up
但这样修改在系统重启后还是会回到原来的名字,因为系统启动后会按照规则重新进行硬件扫描并命名,所有有效的方法是修改/etc/sysconfig/network-scripts 下以 ifcfg-开头 的文件,在网卡接口对应的文件中配置 HWADDR:
...
HWADDR=xx:xx:xx:xx:xx:xx
DEVICE=eth0
...
如果系统过程中找到了与 ifcfg-xx 文件中 HWADDR 匹配 MAC 地址的网卡,则系统以 ifcfg-xx 文件中指定的 DEVICE 的值作为网卡名称。
网卡命名过程(以下内容摘自:http://blog.sina.com.cn/s/blog_704836f40102w36n.html):
==========================================
按照如下顺序执行 udev 的 rule
1./usr/lib/udev/rules.d/60-net.rules
2./usr/lib/udev/rules.d/71-biosdevname.rules
3./lib/udev/rules.d/75-net-description.rules
4./usr/lib/udev/rules.d/80-net-name-slot.rules
60-net.rules
使用/lib/udev/rename_device 这个程序,去查询/etc/sysconfig/network-scripts/下所有以 ifcfg-开头的文件
如果在 ifcfg-xx 中匹配到 HWADDR=xx:xx:xx:xx:xx:xx 参数的网卡接口
则选取 DEVICE=yyyy 中设置的名字作为网卡名称。
71-biosdevname.rules
如果系统中安 装了 biosdevname,且内核参数未指定 biosdevname=0,且上一步没有重命名网卡,则按照 biosdevname 的命名规范,从 BIOS 中取相关信息来命名网卡。
主要是取 SMBIOS 中的 type 9 (System Slot) 和 type 41 (Onboard Devices Extended Information)
不过要求 SMBIOS 的版本要高于 2.6,且系统中要安装 biosdevname 程序。
75-net-description.rules
udev 通过检查网卡信息,填写如下这些 udev 的属性值
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
ID_NET_NAME_MAC
80-net-name-slot.rules
如果在 60-net.rules ,71-biosdevname.rules 这两条规则中没有重命名网卡,且内核未指定 net.ifnames=0 参数
则 udev 依次尝试使用以下属性值来命名网卡,如果这些属性值都没有,则网卡不会被重命名。
ID_NET_NAME_ONBOARD
ID_NET_NAME_SLOT
ID_NET_NAME_PATH
上边的 71-biosdevname.rules 是实际执行 biosdevname 的 policy
75-net-description.rules 和 80-net-name-slot.rules 实际执行 Scheme 1,2,3
根据上述的过程,可见网卡命名受 biosdevname 和 net.ifnames 这两个内核参数影响。
这两个参数都可以在 grub 配置中提供。
==========================================
