感谢支持
我们一直在努力

RHEL6.3克隆虚拟机后的网卡启动失败问题解析

公司测试环境安装的都是RHEL6.3,在进行虚拟机克隆后,发现clone的虚拟机网卡起不来,具体报如下错误:
 [root@localhost Desktop]# service network restart
 Shutting down loopback interface:                        [  OK  ]
 Bringing up loopback interface:                            [  OK  ]
 Bringing up interface eth0:  Error: No suitable device found: no device found for connection ‘System eth0’.
                                                            [FAILED]
 
当你执行ifconfig命令的时候,会发现显示eth1网卡的配置文件却为/etc/sysconfig/network-scripts/ifcfg-eth0。
 
[root@localhost network-scripts]# ifconfig|grep addr
 eth1      Link encap:Ethernet  HWaddr 00:0c:29:f4:95:e3 
          inet6 addr: fe80::20c:29ff:fe5c:65b7/64 Scope:Link
          Interrupt:19 Base address:0x2024
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
 [root@localhost network-scripts]# ls
 ifcfg-eth0  ifdown-isdn    ifup-aliases  ifup-plusb    init.ipv6-global
 ifcfg-lo    ifdown-post    ifup-bnep    ifup-post      net.hotplug
 ifdown      ifdown-ppp    ifup-eth      ifup-ppp      network-functions
 ifdown-bnep  ifdown-routes  ifup-ippp    ifup-routes    network-functions-ipv6
 ifdown-eth  ifdown-sit    ifup-ipv6    ifup-sit
 ifdown-ippp  ifdown-tunnel  ifup-isdn    ifup-tunnel
 ifdown-ipv6  ifup          ifup-plip    ifup-wireless
 [root@localhost network-scripts]#

产生这个问题的原因是虚拟机分配给操作系统的虚拟网卡MAC地址是不一样的。第一个系统的网卡MAC地址记录在了/etc/udev/rules.d/70-persistent-net.rules,命名为eth0。新克隆分配的系统的网卡MAC地址也记录在了该文件当中,与之前的系统一样,因此有了冲突。
 
可以查看一下两个机子的这个70-persistent-net.rules文件的内容
 
第一个系统:
 [root@localhost rules.d]# cat 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
 # program, run by the persistent-net-generator.rules rules file.
 #
 # You can modify it, as long as you keep each rule on a single
 # line, and change only the value of the NAME= key.
 
# PCI device 0x1022:0x2000 (pcnet32)
 SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:f4:95:e3″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
 
 
克隆后的系统:
 
[root@localhost rules.d]# cat 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
 # program, run by the persistent-net-generator.rules rules file.
 #
 # You can modify it, as long as you keep each rule on a single
 # line, and change only the value of the NAME= key.
 
# PCI device 0x1022:0x2000 (pcnet32)
 SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:f4:95:e3″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

我们可以看到这两个系统中的MAC地址一样。

问题解决方法:
删除克隆后这个系统中的 /etc/udev/rules.d/70-persistent-net.rules文件,重启后系统会重新生成一个新的虚拟网卡MAC地址,然后把这个文件里NAME=”eth1″的eth1改成eth0,同时也要修改ATTR{address}里的mac地址和/etc/sysconfig/network-scripts/ifcfg-eth0文件mac地址,并与新的虚拟网卡MAC地址保持一致。

如:将原文件的
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:f4:95:e3“, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1

改为 SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:5c:65:b7“, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0

修改/etc/sysconfig/network-scripts/ifcfg-eth0文件

DEVICE=”eth0″
IPV6INIT=”yes”
NM_CONTROLLED=”yes”
ONBOOT=”yes”
TYPE=”Ethernet”
UUID=”05944003-ae77-4c9d-9e58-3ec2851db71d”
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=”System eth0″
HWADDR=00:0c:29:5c:65:b7
然后重启网络服务,发现一切正常了。
[root@localhost Desktop]# service network restart
Shutting down interface eth0: Device state: 3 (disconnected)
[ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: Active connection state: activating
Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/1
state: activated
Connection activated [ OK ]

设置IP后,再检查一下
[root@localhost Desktop]# ifconfig|grep addr
eth0 Link encap:Ethernet HWaddr 00:0C:29:5C:65:B7
inet addr:192.168.0.129 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe5c:65b7/64 Scope:Link
Interrupt:19 Base address:0x2024
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host

注:如果你执行ifconfig命令的时候,发现仍然显示eth1而不是eth0,可以将系统重启一遍就变过来了。

更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10

赞(0) 打赏
转载请注明出处:服务器评测 » RHEL6.3克隆虚拟机后的网卡启动失败问题解析
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏