我正在使用CentOS 6.2和VMware。 我经常需要克隆我的系统。 每次我克隆它都是像70岁那样为70-persistent-net.rules文件添加一条新规则。
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:0c:f1:5e", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
我的系统中从来没有超过一个接口,所以这真的很烦人。 我知道有办法改变规则是PCI总线依赖,而不是MAC依赖,因为我已经做了一次,但我不能find任何地方如何做到这一点。
我明白这个udev规则的实现背后的原因。 它在物理系统上非常有意义,但是在虚拟机上,这成为一个烦恼。 请帮忙。
这应该是足够的,你想要什么:
DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
通过PCI地址来识别设备。 就像是:
SUBSYSTEM=="net", BUS=="PCI", ID=="0000:04:00.0", ...
在Virtualbox上运行CentOS 6.5我这样做了:
1)从覆盖/etc/udev/rules.d/70-persistent-net.rules中禁止/lib/udev/rules.d/75-persistent-net-generator.rules – 只需创build一个空的/ etc / udev / rules .D / 75持久净generator.rules
2)编辑/etc/udev/rules.d/70-persistent-net.rules :
# Map ethernet devices according to kernel enumeration # this should match the adaptor numbering in the virtualbox console SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth0*", NAME="eth0" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth1*", NAME="eth1" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth2*", NAME="eth2" SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{type}=="1", KERNEL=="eth3*", NAME="eth3"
3)根据需要编辑/ etc / sysconfig / network-scripts / ifcfg-eth [0-3] ,删除任何HWADDR或MACADDRESS无稽之谈。
这并不完美,因为内核枚举顺序CAN可能会改变,如果您在执行克隆之前更改其他设备的VirtualBox设置 – 内核检测并不完全遵循VirtualBox适配器的顺序(在我的似乎是在相反)。 但是,否则它似乎performance得一贯,至less应该“足够好”。
更多的解释和智慧在这里:
我很less用VMWare克隆Linux系统。 重build(kickstart + Puppet / CFEngine)很容易,重新configuration系统的速度要快于克隆速度。
但你怎么克隆? 你是从虚拟机模板做的吗? 通常情况下,如果从模板中克隆,我没有任何与NIC相关的问题。