Ubuntu:禁用 udev 的 persistent-net-generator.rules

Ubuntu:禁用 udev 的 persistent-net-generator.rules

我在用着Ubuntu 12.04 LTS 服务器版本我正在修改/etc/udev/rules.d/70-persistent-net.rules以定义我自己的以太网接口到 MAC 地址的映射;该文件最初是在/lib/udev/rules.d/75-persistent-net-generator.rules系统安装时(或者在第一次启动时,我实际上不知道,这在这里并不重要)由规则生成的。

我如何确保我编辑的版本永远不会被任何东西覆盖?

删除持久网络生成器(如某些网站所建议的那样)并不是正确之事™按照文件本身的注释进行操作:它将被软件包的任何更新覆盖udev。我正在寻找一种更正式的正确方法来禁用它。

确保它/etc/udev/rules.d/70-persistent-net.rules确实存在就够了吗?也许还有其他事件可以触发它的再生?(例如,在系统中添加或删除以太网接口?)

答案1

禁用生成器的正确方法是用空文件覆盖它。 中的任何规则/etc/udev/rules.d都将优先于 中的规则/lib/udev/rules.d,因此只需创建一个空文件或符号链接到/dev/null

sudo touch /etc/udev/rules.d/75-persistent-net-generator.rules
-OR-
sudo ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules

这是安全且面向未来的。

答案2

您应该查看此文件:/etc/udev/rules.d/README然后您可以看到,您自己的 udev 规则文件的名称中的数字应该比 更高。因此,使用您自己的设置75-persistent-net-generator.rules创建一个名为 的新规则文件。/etc/udev/rules.d/76-persistent-net.rules

答案3

额外的好处是避免此规则在批量生成中被重新生成。通常我在 DevOps 实践中使用它

for i in `cat /tmp/allnode.lst | awk '{print $1}'`; do echo $i; \
ssh $i 'mv /lib/udev/rules.d/75-persistent-net-generator.rules /tmp/'; done

allnode.lst 中的第 1 列是 IP 地址

相关内容