在学习centos时候,我们通常会使用克隆(clone)功能克隆出多台虚拟机,克隆功能免去了我们多次安装操作系统的麻烦,但同时也给我们带来了一些问题,例如使用vmware的clone功能克隆出一台虚拟机后,网卡总是启动失败。
我们使用ifconfig命令查看系统网卡信息,发现只有lo(local的缩写,本地回环接口),并没有我们经常使用的eth0网卡信息,如下图
使用ifconfig -a命令查询结果显示,我们的网卡名称为eth1,并不是我们常用的eth0
问题原因
为什么不是eth0
在使用clone功能克隆虚拟机时,clone会将原有虚拟机(虚拟机A)的所有信息拷贝一份,作为新的虚拟机(虚拟机B),并为新的虚拟机增加一块网卡,我们都知道默认网卡的命名规则是ethx,x是一个从0递增的数字,如果虚拟机A本身就有一块网卡eth0,那么克隆后的虚拟机B也就有一块网卡eth0,并且这两块网卡的信息是一模一样的,MAC地址也是一样的,在克隆过程中,vmware会默认给新虚拟机(虚拟机B)增加一块网卡,因为虚拟机B已经存在一块网卡eth0,所有按照默认的命名规则,新增加的网卡被命名为eth1,这就是为什么使用ifconfig -a 命令查询出eth1的原因了。
解决方案
-
查询网卡PCI信息
命令 cat /etc/udev/rules.d/70-persistent-net.rules
-
修改PCI信息
将从虚拟机A克隆的eth0的PCI信息删除,将虚拟机B自己的网卡信息命名为eth0
命令 vim /etc/udev/rules.d/70-persistent-net.rules
修改后的结果如下
-
查看eth0网卡配置信息
命令 cat /etc/sysconfig/network-scripts/ifcfg-eth0
-
修改eth0网卡信息
通过查询结果可知,克隆后虚拟机B的eth0配置信息和虚拟机A的eth0信息是相同的,要想让虚拟机B的eth0网卡正常使用,需要将虚拟机B的eth0配置信息中的MAC信息(对应HWADDR属性)修改为虚拟机B的eth0的PCI中对应的MAC
- 重启系统
命令 reboot -
验证结果
命令 ifconfig
如果看到期待已久的eth0,证明已经配置成功了!