通常情况在虚拟机中装好centos系统后,进行一些必要配置来使用;当需要用到多台centos时,这是我们一般会选择复制虚拟机,今天就遇到一个问题,VMvare中复制虚拟机后登录,发现无法联网。
用ifconfig -a命令发现只有网卡eth1,没有eth0,而所有网络配置信息都在eth0上。
ifconfig -a
分析:
很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在Debian etch中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生成虚拟机的mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。
简单来说就是原来的虚拟机有一个mac地址(HWADDR)对应eth0,复制后的虚拟机也会生成一个新的mac地址,会对应到eth1,所以原来设置在eth0上的网络配置信息就无法生效了。
解决方法:直接把eth0的"HWADDR"直接修改为eth1的"HWADDR"。修改,保存,关机;重新开机联网成功