如何禁用 udev 网络规则生成?

bor*_*fig 11 10.04 udev 12.04

在我们的云中,我们生成带有2c:c2:60实例前缀的 MAC 。当我们重用或复制一个实例时,新副本会获得另一个 MAC 地址。当新副本启动时,由于新的 MAC,NIC 获得名称 eth1。

我看到在 中/lib/udev/rules.d/75-persistent-net-generator.rules,有一些已知前缀的规则,例如52:54:00 (KVM)and VMWare (00:0c:29)。但是这个文件应该没有在第一行规定进行编辑。我们想使用我们自己注册的 MAC 前缀,而不是其他人的。

如何完全禁用网络规则生成?

小智 8

根据 JasminJ 的回答,我阅读了手册。嗯,我读了其中的一小部分。“规则文件”部分的第五句话指出:

如果需要,这可用于用本地文件覆盖系统提供的规则文件;/etc与 中的规则文件同名的符号链接/lib,指向/dev/null,完全禁用规则文件。

我刚刚用虚拟机测试了这个,它确实按照描述的那样工作。与禁用此功能的常规/hacky 方法相比,我更喜欢这种方法。

这是命令

ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
Run Code Online (Sandbox Code Playgroud)


小智 7

cd /etc/udev/rules.d
rm -f 70-persistent-net.rules
rm -f 75-persistent-net-generator.rules
echo "# " > 75-persistent-net-generator.rules
Run Code Online (Sandbox Code Playgroud)

参见https://www.kernel.org/pub/linux/utils/kernel/hotplug/udev/udev.html
章节“规则文件”


小智 5

您可以/lib/udev/rules.d/*通过将它们复制到/etc/udev/rules.d然后修改它们来覆盖。

或者,您可以创建一个具有词汇更高名称的新文件,例如/etc/udev/rules.d/99-stop-persistent-net.rules使用以下“什么都不做”条目:

SUBSYSTEM=="net", DRIVERS=="?*", NAME="%k"
Run Code Online (Sandbox Code Playgroud)

这应该可以防止创建新规则,因为 udev 认为该接口已经列出。这也将在 udev 更新等中幸存下来。

抱歉,没时间测试……