Linux网络设备命名规则及修改
命名规则
centos 从 7 开始网卡名称默认不再是熟悉的 eth0、而是类似于 ens33、enps0f0 等
rhel7官方文档
这么做的好处是
在 Red Hat Enterprise Linux 7 中,udev 支持大量不同的命名方案。默认是根据固件、拓扑及位置信息分配固定名称。这样做的优点是命名可完全自动进行,并可预期,即使添加或删除硬件后也会保留其名称(不会出现重复枚举的情况),同时可顺利更换损坏的硬件。不足之处是,相比传统的名称,比如 eth0 或 wlan0,这些名称有时会比较难理解。例如:enp5s0。
设备命名的过程
/usr/lib/udev/rules.d/60-net.rules
文件中的规则会让 udev 帮助工具/lib/udev/rename_device
查看所有/etc/sysconfig/network-scripts/ifcfg-suffix
文件。如果发现包含 HWADDR 条目的 ifcfg 文件与某个接口的 MAC 地址匹配,它会将该接口重命名为 ifcfg 文件中由 DEVICE 指令给出的名称。/usr/lib/udev/rules.d/71-biosdevname.rules
中的规则让 biosdevname 根据其命名策略重命名该接口,即在上一步中没有重命名该接口、已安装 biosdevname、且在 boot 命令行中将biosdevname=0
作为内核命令给出。/lib/udev/rules.d/75-net-description.rules
中的规则让 udev 通过检查网络接口设备,填写内部 udev 设备属性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。注:有些设备属性可能处于未定义状态。/usr/lib/udev/rules.d/80-net-name-slot.rules
中的规则让 udev 重命名该接口,优先顺序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。并提供如下信息:没有在步骤 1 或 2 中重命名该接口,同时未给出内核参数net.ifnames=0
。如果一个参数未设定,则会按列表的顺序设定下一个。如果没有设定任何参数,则不会重命名该接口。
修改网络设备命名
debian 系、ubuntu 等
vim /etc/default/grub
1 | # 如果这项有参数了,和现有参数用空格分开 |
1 | sudo update-grub |
重启后执行 ip a
查看设备名修改成功了没有
然后修改网络:
vim /etc/netplan/xx.yaml
设备名修改后,执行 netplan try
redhat 系、centos 等
vim /etc/sysconfig/grub
1 | GRUB_CMDLINE_LINUX="... net.ifnames=0 biosdevname=0" |
然后更新 grub、重启、更改网络配置文件
在安装系统时修改
这个界面按下 e
参数添加完成后,按下 F10
启动
光标放在 install 上, 按下 tab 键, 在 quiet 后面输入 net.ifnames=0 biosdevname=0
kickstart 预安装固定设备名
centos 系
一共有两个地方需要修改
1 | virt-install \ |
ks.cfg
1 | ... |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 杂烩饭!
评论