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中的规则在系统安装时生成(或者在第一次启动时,我实际上不知道,这里没关系)。

我怎样才能确定我的编辑版本永远不会被任何东西覆盖?

根据某些网站的build议,删除持久性networking生成器并不是正确的事情,只能通过文件本身的注释来实现:它会被udev软件包的任何更新所覆盖。 我正在寻找更正式的方法来禁用它。

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

禁用生成器的正确方法是用空文件覆盖它。 /etc/udev/rules.d任何规则将优先于/lib/udev/rules.d规则,因此只需创build一个空文件或符号链接到/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 

这是安全的,面向未来的。

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

用于在批次中重新生成此规则的额外分。 通常我会在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地址