今天需要两台虚拟机完成实验任务,于是使用VMware的克隆功能完整克隆了一台RHEL6,当启动新克隆的虚拟机后查看网络信息时发现找不到eth0,使用ifconfig命令查看网卡信息的时候只有lo0的信息,使用ip addr show命令查看虚拟机的网络也只有lo0。

因为虚拟机是克隆过来,所以原来的网络配置文件应该与原虚拟机一样,于是查看RHEL6中/etc/sysconfig/network-scripts/目录下ifcfg-eth0的配置文件,发现HWADDR和UUID的值与原虚拟机一样,判断应该是配置文件中网卡硬件地址和实际创建虚拟机的网卡mac地址不一致导致的。

进入到VMware该虚拟机的设置中,找到网络适配器,点击高级,可以看到克隆后的RHEL6的MAC地址已经有一个新的MAC地址。记录此地址,切换到RHEL6的终端控制台上,修改ifcfg-eth0中HWADDR的值为新的地址,删除UUID这一行,保存退出。这下应该没问题了吧。

重启网络服务,发现启动failed。

[root@rhel6 ~]# service network restart device does not seem to be present, delaying initialization [FAILED]

提示设备没有准备好,延迟初始化。

在RHEL6中,udev将mac和网卡名称的对应关系保存在/etc/udev/rules.d/70-persistent-net.rules文件下,检查此文件发现文件中有三条记录,lo0、eth0和eth1。eth0对应的mac地址信息与ifcfg-eth0配置中不一致,新的网卡mac地址被绑定到eth1的信息中,导致网络服务在启动的时候检查配置文件会发现有问题不能启动网络。

那么解决问题的办法有两个:

  1. 删除70-persistent-net.rules文件,重启让系统自动生成此文件;
  2. 修改70-persistent-net.rules文件内容。

我选择删除文件,重启系统。 重启RHEL6后,网络正常。