Linux虚拟机克隆后网络问题

Linux虚拟机克隆后网络问题

时间:2013-10-15 10:10:30      作者:vaster      标签: Linux 网卡 虚拟机      分类: Linux基础

环境:Virtualbox+RHEL 6 x64

用VirtualBox的vboxmanager克隆的虚拟机,操作系统RHEL6,启动后发现网卡不能用了。

重启网络服务,报以下错误:

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILED]

在RHEL5里也发生类似事情,

原因分析:因为复制虚拟机MAC会重新生成,但是操作系统的MAC却写在ifcfg-ethx里,造成了不一致,所以不能启动网络接口,在RHEL5里可以使用kudzu或者注释网卡配置文件的MAC字段来解决这个问题。但是在RHEL6里,kudzu已经被hal服务取代了。虽然lspci能够正常认到网卡,但是却无法使用/etc/init.d/network restart来启动服务。尝试注释ifcfg-eth0的MAC字段,还是报错。

方法1:

查看了下udev的规则,发现了问题的所在。

# cat /etc/udev/rules.d/70-persistent-net.rules
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:16:31:11″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
# net device ()SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

原来UDEV这里把克隆前的MAC当成了当前虚拟机的eth0 MAC,而重新生成的08:00:27:32:66:63是eth1的MAC。

解决这个问题,只要删除旧的UDEV配置,修改为:

# cat /etc/udev/rules.d/70-persistent-net.rulesSUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

重启network服务有时可以有时不行,重启系统就一切OK!试过多次!

# /etc/init.d/network restart
# ifconfig eth0eth0 Link encap:Ethernet HWaddr 08:00:27:32:66:63
eth0 Link encap:Ethernet HWaddr 08:00:27:32:66:63

方法2:

最简单的解决办法是直接删除70-persistent-net.rules配置文件

# rm -fr /etc/udev/rules.d/70-persistent-net.rules# reboot
# reboot

重启系统就ok了,系统会自动生成一个新的。

方法3:

  1. 查看vmx文件中ethernet0.generatedAddress
    把/etc/sysconfig/network-scripts/ifcfg-eth0文件中的HWADDR修改为第一步查看的地址
    # service network restart
     

时间:2013-10-15 10:10:30      作者:vaster      标签: Linux 网卡 虚拟机      分类: Linux基础
  • 分享到:
  • 微博
  • QQ空间
  • 腾讯微博
  • 微信

Copyright © 2015 Gitblog | Proudly powered by Gitblog.