为什么我的 systemd 链接文件被忽略?

为什么我的 systemd 链接文件被忽略?

我想在 Debian Stretch 中启用持久网络名称,最可靠的方法似乎是使用 ID_NET_NAME_PATH 属性。

但是,我的 .link 文件被忽略,udev 似乎正在使用自己的规则来命名接口。

我制作了 /lib/systemd/network/99-default.link 的副本并将其放入 /etc/systemd/network 中,然后将 NamePolicy 更改为:NamePolicy=path

一个示例接口是 ens2,它似乎是用“slot”策略而不是路径命名的。运行 udevadm info /sys/class/net/ens2 给出:

P: /devices/pci0000:80/0000:80:02.0/0000:83:00.0/net/ens2
E: DEVPATH=/devices/pci0000:80/0000:80:02.0/0000:83:00.0/net/ens2
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=MT27500 Family [ConnectX-3]
E: ID_MODEL_ID=0x1003
E: ID_NET_DRIVER=mlx4_en
E: ID_NET_LINK_FILE=/etc/systemd/network/99-default.link
E: ID_NET_NAME_PATH=enp131s0
E: ID_NET_NAME_SLOT=ens2
E: ID_PATH=pci-0000:83:00.0
E: ID_PATH_TAG=pci-0000_83_00_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Mellanox Technologies
E: ID_VENDOR_ID=0x15b3
E: IFINDEX=8
E: INTERFACE=ens2
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/ens2
E: TAGS=:systemd:
E: USEC_INITIALIZED=15903053

我的问题是,为什么接口被命名为 ens2 而不是 enp131s0?

答案1

您必须update-initramfs -u让这些更改生效。这会将/etc/systemd/network/99-default.link您创建的文件复制到 initramfs 中,以便在 udev 需要它时在早期系统启动时使用。

相关内容