我发现73-usb-net-by-mac.rules
文件存在奇怪的问题。
此 udev 规则文件会检查 net.ifnames 是否在内核命令行中定义,然后它会转到最后并跳过中间的规则,如下所示:
IMPORT{cmdline}="net.ifnames", ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end"
不知怎的,这在我这边不起作用。我的意思是,我net.ifnames=0
在内核命令行中仍然执行了 usb 网络命名规则。
如果我像下面这样拆分上述规则行,那么它就可以正常工作:
IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="usb_net_by_mac_end"
是不是 udev 没有解析IMPORT
同一行上 key 之后的键?
如果我做错了什么或者规则需要更改,你能告诉我吗?
答案1
这是 ubuntu(和 debian)中 73-net-by-mac.rules 版本的问题,已在 pkg-systemd 源的标签 debian/233-5 中修复。
这些变化产生的二进制包似乎尚未进入 debian 或 ubuntu apt 存储库。
作为参考,更正后的文件位于此处:
回复 user.dz:我实际上使用的是 Debian 8.7。我不知道原帖者使用的是哪个发行版,但我推测 ubuntu 和 debian 都会有同样的问题(因为两者似乎都使用来自同一来源的软件包)。文件的安装名称是 /lib/udevd/rules.d/73-usb-net-by-mac.rules。它归 udev 软件包所有。