虚拟机拷贝之后网卡eth0、eth1不见了,成了eth2,eth3

安装新的物理机并用KVM创建了一台模板机器,其文件有:

moban.xml moban.img


然后用此模板拷贝生成新的虚拟机:server01,server02,....

cp moban.xml server01.xml

cp moban.img server01.img

修改配置文件里面的相关选项之后,启动server01

启动之后,执行 ip a,却发现设置的eth0和eth1没有了,成了eth2和eth3

但是在/etc/sysconfig/network-script下面却是ifcfg-eth0和ifcfg-eth1

然后去启动ifcfg-eth0:ifup eth0,提示错误如下:

# ifup eth0
Device eth0 does not seem to be present, delaying initialization.


在网上找了下原因,第一次碰到此情况,特记录下来:

转载地址:

http://zhidao.baidu.com/link?url=k48UTtxC-1SPpRRC8g1xGna0D6FmTO-GccytfwatazCt9WUMSqqz9r_REdBMe2lfJ_lQuKkMQPZCJK5GR-6aViEDXhyNJ4a0Y6jInqpt4te


为什么原来的eth0会变成eth1? 

很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。

udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而对于新的虚拟机,会自动为虚拟机的网卡生成MAC地址,当你克隆或者重装虚拟机软件时,由于你使用的是以前系统虚拟硬盘的信息,而该系统中已经有eth0,eth1的信息,对于这个新的网卡,udev会自动将其命名为eth2,eth3(累加的原则),所以在你的系统启动后,你使用ifconfig看到的网卡名为eth2,eth3.


如何把名字改回eth0?

udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules

打开该文件,这时你会发现,里面有eth0,eth1,eth2,eth3四个网卡的信息,

但实际上你ifconfig时只能发现eth2,eth3这两个网卡的信息,这时因为eth0,eth1根本就不存在。将其中eth0,eth1的信息删掉,并将eth2,eth3这现行信息中的设备名改为eth0,eth1,重启系统,你看到的网卡就是eth0了,或者删掉其中所有的信息重启系统udev会帮你发现新的设备的。




你可能感兴趣的:(虚拟机,成了eth2,eth3,网卡eth0,eth1不见)