解决VMware复制CentOS虚拟机后无法访问网络的问题

问题描述


在VMware中克隆或者直接物理复制得到新的虚拟机后,打开的时候会让你选择该虚拟机是否被移动或者被复制。如果你不知道该选择哪个选项的话,VMware建议选择我已复制该虚拟机(P)。然后,问题就来了:你的这台虚拟机无法上网了!


原因分析


很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在 Debian etch中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生 成虚拟机的mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改 变,udev会自动将该mac对应于网卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其 实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。

解决办法


  1. 编辑/etc/udev/rules.d/70-persistent-net.rules,删除原来的eth0,将eth1的NAME替换eth0成。编辑好的文件如下图:
  2. 编辑/etc/sysconfig/network-scripts/ifcfg-eth0,将HWADDR的值也改成00:0C:29:08:0D:54。编辑好的文件如下图:
  3. 重启虚拟机,成功获取到ip。