zoukankan      html  css  js  c++  java
  • VMware克隆虚拟机,克隆机网卡启动不了解决方案

    VMware里面克隆了个虚拟机,克隆机网卡启动不了,启动报错:
    Device eth0 does not seem to be present, delaying initialization.[FAILED]

    使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用ifconfig -a会发现只有lo。
    因为基本系统的网络相关配置都是基于eth0的,如果基于此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一次都会自动加1变成eth1(第二次克隆会变成eth2),dmesg却显示内核只识别到网卡eth0。

    原因分析:很多Linux distribution使用udev动态管理设备文件,
    并根据设备的信息对其进行持久化命名。例如在centos中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生成虚拟机的mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。

    解决方案:
    udev将mac与网卡名称的对应关系保存在 # vi /etc/udev/rules.d/70-persistent-net.rules 中,
    可以看到文件内容如下

    # PCI device 0x8086:0x100f (e1000)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:7b:60:38", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
     
    # PCI device 0x8086:0x100f (e1000)
    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:29:b9:c5", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

    处理步骤
    步骤1:将克隆出的虚拟机中只要删除与 NAME="eth0" 相关的行,并把下行的 eth1 的改为 eth0 ;并记录一下 ATTR{address} 的值;

    步骤2:记录此克隆机MAC地址,然后编辑 # vi /etc/sysconfig/network-scripts/ifcfg-eth0  HWADDRIPADDR 修改一下;

    步骤3: 重启系统;

  • 相关阅读:
    jQuery Querystring
    BCP 导出文本到文件
    ASP.NET MVC实践系列12表单处理(转)
    with(nolock) 解释 SQL
    DevServer
    静态语言、动态语言、强类型语言、弱类型语言
    @符号惹的祸
    洛谷 题解 P4198 【楼房重建】
    题解 P2668 【斗地主】
    题解 P3620 【[APIO/CTSC 2007]数据备份】
  • 原文地址:https://www.cnblogs.com/martinzhang/p/3495236.html
Copyright © 2011-2022 走看看