先说一下发生这个问题时的环境


虚拟机 = WMware Workstation 8.0.2 build-591240

OS     = CentOS 6.3 x86_64


发生这个问题时的条件


安装好 CentOS 并进行一些配置,包括网卡ip等,然后进行clone(full clone)虚拟机,在启动克隆好的虚拟机时问题出现了,在启动画面有2个错误一闪而过,登陆系统后用 ifconfig 查看,发现只有 loopback,而 eth0 和 eth1 都消失了,于是想到启动时的那个错误画面,查看 /var/log/messages 时发现了这个问题的详细错误信息,如下:

kernel: udev: renamed network interface eth1 to eth2

kernel: udev: renamed network interface eth0 to eth3

看这个提示,就字面意思是网络接口 eth1 被重命名为 eth2,eth0 被重命名为 eth3,而导致这个问题的程序是 udev,所以可以去 /etc/udev/rules.d/*.rules,经过查看确实发现了一个文件 70-persistent-net.rules 内容如下:


# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:6a:66:7f", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"


# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:6a:66:89", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"


# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:39:61", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"


# PCI device 0x8086:0x100f (e1000)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:85:39:57", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"


这个文件的前两部分和原机(安装机而非克隆的机器)一样,mac 地址是一样的,问题就出在这里了,把这个文件删除:

rm -f /etc/udev/rules.d/70-persistent-net.rules

重启虚拟机,ok 搞定。当然了,ip 还是需要修改的,否则会和原机冲突的。

这个文件删除后,udev会自动构建。


参考文章:http://blog.giuseppeurso.net/udev-renamed-network-interface-eth-to-eth/index.html