Ubuntu 服务器 16.04 安装没有 udev 规则

Ubuntu 服务器 16.04 安装没有 udev 规则

我的 Ubuntu 桌面 16.04 机器有 udev 规则:

user@desktop:~$ sudo tree /etc/udev/
/etc/udev/
├── hwdb.d
├── rules.d
│   ├── 48-adwits.rules
│   ├── 49-stlinkv1.rules
│   ├── 49-stlinkv2-1.rules
│   ├── 49-stlinkv2.rules
│   ├── 49-stlinkv3.rules
│   ├── 51-android.rules
│   ├── 60-uv4l.rules
│   ├── 65-uv4l_uvc.rules
│   ├── 70-persistent-net.rules
│   └── 85-lpcxpresso.rules
└── udev.conf

2 directories, 11 files
user@desktop:~$ cat /etc/udev/rules.d/70-persistent-net.rules 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="f8:b1:56:e8:1b:f4", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="eth0"

但是我有两台没有规则的 Ubuntu 16.04 服务器机器:

user@server1:~$ sudo tree /etc/udev/
/etc/udev/
├── hwdb.d
├── rules.d
└── udev.conf

2 directories, 1 file

这些服务器各有四个以太网接口,但其枚举顺序不同:

服务器 1:

user@server1:~$ cat /proc/net/bonding/bond* | egrep '(Interface|HW addr)'
Slave Interface: eth0
Permanent HW addr: 34:17:eb:eb:d7:32
Slave Interface: eth1
Permanent HW addr: 6c:b3:11:1b:b5:76
Slave Interface: eth2
Permanent HW addr: 34:17:eb:eb:d7:33
Slave Interface: eth3
Permanent HW addr: 6c:b3:11:1b:b5:77

服务器2:

user@server2:/etc/udev$ cat /proc/net/bonding/bond* | egrep '(Interface|HW addr)'
Slave Interface: eth0
Permanent HW addr: 34:17:eb:ea:f3:3e
Slave Interface: eth1
Permanent HW addr: 34:17:eb:ea:f3:3f
Slave Interface: eth2
Permanent HW addr: 6c:b3:11:1c:ac:68
Slave Interface: eth3
Permanent HW addr: 6c:b3:11:1c:ac:69

两台服务器枚举的 eth 接口不同。在服务器一上,eth0/eth2 和 eth1/eth3 是双网卡的名称,而在服务器二上,eth0/eth1 和 eth2/eth3 是双网卡的名称。

我怎样才能让这些服务器生成 70-persistent-net.rules 文件,以便我可以编辑这些文件,让两个服务器在相同的 rj45 插座位置具有相同的接口名称?

桌面版本中是否存在某个特定的 udev 包,而服务器版本中却缺少该包,并且该包导致 /etc/udev 树几乎为空?

PS:所有 mac 地址的第四和第五个字节都已出于安全考虑进行了更改,但是前导(​​制造商)字节和最后一个字节保持不变。

答案1

嗯,系统中的 Udev 规则在 中/lib/udev/rules.d/。否则您将无法启动。

dpkg -L udev

其中一个服务器是从 trusty 升级的吗?自 systemd 版本 204 以来,cannonical 删除了 75-persistent-net-generator.rules 和其他规则。systemd 204

但是自己的规则/etc/udev/rules.d是由 udev 读取的。

相关内容