实验系统版本:


CentOS 6.8



问题描述:

    当你使用VMware安装好一台虚拟机A后,又克隆了一台虚拟机B出来。

    此时运行“ifconfig”命令会发现,网卡显示名称为“eth1”而非“eth0”。运行“service network restart”时,虚拟机B就会出现此错误“Bringing up interface eth0:  Error: No suitable device found: no device found for connection ‘system eth0’”。


按照常规想法,查看克隆后的虚拟机B的 /etc/sysconfig/network-scripts/ifcfg-eth0 这个配置文件,发现这个配置文件其实是没有用的。



问题分析:

    很多linux操作系统会使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机B,VMware会自动为虚拟机的网卡生成MAC地址,当你克隆时,由于你使用的是之前系统虚拟硬盘的信息,因此克隆后的系统已经有eth0的信息,对于这个新的网卡,udev会自动将其命名为eth1(累加的原则),所以在你克隆的系统启动后,你使用ifconfig看到的网卡名为eth1。


问题解决:

方法一:

1)

#ifconfig

 

获取eth1的MAC地址信息:

wKiom1dNZlDxwtvLAAArKaTJ4EA730.png


2)

#nmcli con

获取eth1的UUID信息

wKioL1dNZ3Kx6d5BAAAX4SILW1k016.png

3)编辑虚拟机的 /etc/sysconfig/network-scripts/ifcfg-eth0 这个文件,修改MAC地址、UUID与上面获取的2项信息一致



修改后,重启系统。


方法二:

1)

vim /etc/udev/rules.d/70-persistent-net.rules

把其中eth0的信息全部删除掉,只保留eth1相关的信息,并且将“eth1”修改为“eth0”。

2)把上一步中保留的“ATTR{address}”的值(即HWaddr值),修改到/etc/sysconfig/network-scripts/ifcfg-eth0 这个文件中,使两个文件中的MAC地址保持一致。


修改后,重启系统。


提示:以上两种方法的解决结果中,方法一修改了UUID,方法二没有修改UUID,不影响网络正常。