克隆虚拟机导致Linux无法启动网卡的分析与解决
1 问题描述
VMware中克隆虚拟机是经常的事情,对于客户机是Windows的虚拟机直接克隆就可以使用。对于客户机是Linux的虚拟机克隆后会出现网络无法启动的问题。
使用service network start 命令会出现报错如下:
device eth0 does not seem to be present
2 原因分析
使用Vmware的克隆功能,会为新产生的虚拟机配置一个与原始虚拟机网卡MAC地址不同的网卡。对于CentOS这样的Linux系统,会把运行时的网卡MAC地址记入/etc/udev/rules.d/70-persistent-net.rules文件中。这样克隆好的新系统里也保存了这个记录。
当新系统启动时,由于vmware已经为其配置了不同的MAC地址,因此系统会在启动扫描硬件时把这个新的MAC地址的网卡当做是eth1,并且增加记入上述文件中。而此时配置文件里的/etc/sysconfig/network-scripts/ifcfg-eth0里记录的还是原来的MAC地址,而这个MAC地址在新系统里是不存在的,所以无法启动。
3解决办法
在新系统里,把rules文件里记录的老MAC对应的那个eth0一行删除掉,然后把新MAC对应的eth1的名字改为eth0。然后在ifcfg-eth0文件里把HDADDR的值改为新的MAC地址。
这样rules和ifcfg-eth0就彼此对应(rules里的eth0对应ifcfg-eth0文件名,rules里的mac对应ifcfg-eth0文件里的HDADDR)好了。此时需要重新启动系统一切就OK了。