我有多个运行 Debian 的 ARM 设备。我从 SD 卡中保存了一张图像,并打算在所有设备上使用它。
现在我遇到的问题是,每次 eth、wlan 等端口的 MAC 地址发生变化时,都会向文件中添加一个新条目70-persistent-net.rules
。对我来说这是一个问题,因为在我的/etc/network/interfaces
文件中我只eth0
设置了。如果该接口随后链接到eth1
,它将不会连接到网络。由于没有连接屏幕,每次都重新执行此过程很麻烦。
eth0
当以太网接口的 MAC 地址发生变化时,有没有办法告诉操作系统始终使用?
答案1
这是我放入我的70-persistent-net.rules
文件中的内容;你可能只需要前两个:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth0", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth1", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth2", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth3", NAME="eth3"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth4", NAME="eth4"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth5", NAME="eth5"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth6", NAME="eth6"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth7", NAME="eth7"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth8", NAME="eth8"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="*", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth9", NAME="eth9"
答案2
删除您当前的接口名称处方:
# rm /etc/udev/rules.d/70-persistent-net.rules
确保它们不会重新生成:
# touch /etc/udev/rules.d/75-persistent-net-generator.rules
就是这样。
答案3
在/etc/rc.local的末尾
if ifconfig | grep -q eth0
then
: > /etc/udev/rules.d/70-persistent-net.rules
reboot
fi
这应该可以完成工作,并且如果您在同一设备上重新启动,则只需重新启动一次。
作为更快的替代方案,您可以70-persistent-net.rules
在关机时删除,假设您只执行计划关机。