克隆虚拟机之后,CentOS没有eth0的解决办法

我们常常需要从一台已经安装完成的虚拟机系统克隆出来一个新系统(克隆时候必须要改变网卡物理地址,这一点无需多说),但是新系统启动之后,会发现系统网络工作不正常。
本次从master克隆了3台计算机,命名为slave1、slave2、slave3,启动slave1,
输入ifconfig,发现根本就没有eth0,如图1所示。

通过修改/etc/network/interfaces配置eth0的地址,启动网卡服务,依然没有eth0,反而会增加一个eth2。
     原来是设备管理器udev的原因。udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。
    找到udev的配置文件,  /etc/udev/rules.d/70-persistent-net.rules。其内容如图2所示。

命名里采用MAC地址匹配方式来记录网卡的命名。也就是说,原来的网卡的物理地址已经被记录到了eth0,克隆时候修改了的网卡的物理地址,被记录到了eth1上,使得克隆的系统只有eth1,修改一次eth0,就自动匹配增加一个网卡,eth0依然不存在。
由此,就很简单了,直接删掉本文件,然后修改/etc/sysconfig/network-scripts/ifcfg-eth0 里eth0的物理地址,使得该数据与系统生成的一致,然后,重启系统就修正了该问题。

参考资料:

1、http://f.dataguru.cn/thread-479438-1-1.html

05-19 02:37