udev 无法重命名网络设备:设备或资源繁忙

udev 无法重命名网络设备:设备或资源繁忙

我正在尝试使用 udev 规则来为我的网络接口提供静态、一致的名称。然而,似乎存在一些竞争条件的发生,阻止这些规则在每次启动时始终生效。

当我查看时,journalctl我看到以下错误消息:

systemd-udevd[149]: error changing net interface name eth0 to net0: Device or resource busy

我的规则非常简单,我直接从 arch wiki 上获取它们网络配置

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="wifi0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="net0"

启动初期可能会出现什么问题,我该如何解决这个问题?

答案1

解决此问题的某种方法是使用 systemd-networkd。设置一个配置文件/etc/systemd/network/net0dhcp.network(或类似):

[Match]
Name=net0
[Network]
DHCP=true

将上面的 net0 重命名为适当的网络接口名称。现在:

systemctl disable dhcpcd
systemctl enable systemd-networkd

并重新启动。 (您可能可以重新启动某些服务或其他服务;我没有找到哪些服务 - 重新启动足够快)。

我只用有线网络对此进行了测试(并且目前没有带 wifi 卡的机器),因此无法评论此配置如何与您的无线接口配合使用。我的假设是,您需要为该接口添加一个配置文件,事情就会很顺利。当然,如果事情不那么容易解决,您可以随时:

systemctl disable systemd-networkd
systemctl enable dhcpcd

并重新启动。

更多信息:https://wiki.archlinux.org/index.php/Systemd-networkd#Basic_DHCP_network

相关内容