禁用systemd网卡命名规则

当前网卡的命名方式可以通过proc文件查看,比如网卡ens160,命名方式为4,即对应内核中的NET_NAME_RENAMED,表示网卡名是被用户空间程序修改的:

# cat /sys/class/net/ens160/name_assign_type
4

#define NET_NAME_ENUM       1   /* enumerated by kernel */
#define NET_NAME_PREDICTABLE    2   /* predictably named by the kernel */
#define NET_NAME_USER       3   /* provided by user-space */
#define NET_NAME_RENAMED    4   /* renamed by user-space */



在用户空间,默认情况下ubuntu会根据systemd目录下的link文件命名网卡,NamePolicy变量指定了5中命名策略:kernel database onboard slot path,优先级由高到低排列。

# cat /lib/systemd/network/99-default.link
[Link]
NamePolicy=kernel database onboard slot path
MACAddressPolicy=persistent



使用udevadm命令可查看当前生效的命名策略,如下为slot策略(ID_NET_NAME_SLOT)。

$ udevadm info -e | grep ens160
P: /devices/pci0000:00/0000:00:15.0/0000:03:00.0/net/ens160
E: DEVPATH=/devices/pci0000:00/0000:00:15.0/0000:03:00.0/net/ens160
E: ID_NET_NAME_SLOT=ens160


以下修改ubuntu的命名策略,使用内核kernel默认的命名规则。修改/lib/systemd/network/99-default.link文件,NamePolicy仅保留kernel一项。

# cat /lib/systemd/network/99-default.link
[Link]
NamePolicy=kernel
MACAddressPolicy=persistent



修改/etc/default/grub文件,在(GRUB_CMDLINE_LINUX=)一行增加参数:(net.ifnames=0 biosdevname=0)。之后允许update-grub命令更新grub启动配置文件。重新启动系统,网卡的命名恢复成ethx格式。

另外在文件/etc/network/interfaces中配置的网卡名称需要手动修改,把ens160相关的修改为ethx。



猜你喜欢

转载自blog.csdn.net/sinat_20184565/article/details/80999886
今日推荐