VMWare克隆或复制虚拟机后找不到网卡的解决方法


  VMware 下LINUX出现:Device eth0 does not seem to be present, delaying initialization.解决办法

  VMware 下LINUX下使用ifconfig查看时无eth0网卡相应信息!

  最近装了虚拟机系统是 fedora9,为了以后使用方便对虚拟机进行克隆或复制。当使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用ifconfig -a会发现只有eth1。因为基本系统的网络相关配置都是基于eth0的,eth1没有网络相关的配置,此时要正常该虚拟机中的网络,只有添加eth1的网络配置,这样每次都要修改网卡配置在做多Linux系统测试的时候很不方便。更进一步,如果基于此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一次都会自动加1(第二次克隆会变成eth2),dmesg却显示内核只识别到网卡eth0。原因分析: 很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在Debian etch中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生成虚拟机的mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改变,udev会自动将该mac对应于网卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。解决方案: 网络搜索发现在Debian etch下,udev将mac与网卡名称的对应关系保存在/etc/udev/rules.d/z25_persistent-net.rules中,在克隆出的虚拟机中只要删除跟NAME="eth0"相关的行并重启系统即可。例如在Debian etch中删除如下两行: # PCI device 0x1022:0x2000(pcnet32)SUBSYSTEM=="net",DRIVERS=="?*",ATTRS{address}=="00:0c:29:4c:46:01",NAME="eth0" 在我的fedora9 下修改/etc/udev/rules.d 下的 70-persistent-net.rules 文件 删除 # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ad:06:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" 然后把eth1对应的哪一行的"eth1"修改为"eth0"即可。另外一种方法是:把里面的内容都删除,然后重新启动,系统也会重新发现网卡硬件,重新产生该文件。 ok!

  总结:

  1: 编辑如下文件

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

  注释NAME="eth0" 所以行

  2: 注释NAME="eth0" 所以行

  # Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)

  #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:ad:06:2a", ATTR{type}=="1", KERNEL=="eth*",NAME="eth0"

  3:修改IP地址及主机名

  4:重启,问题解决!

  VMware 下LINUX出现:Device eth0 does not seem to be present, delaying initialization.解决办法

  在做mysql cluster 和lvs cluster的时候用的vmware虚拟环境

  系统: ubuntu server 6.10

  /sbin/ifconfig发现copy/clone之后的虚拟机没网卡

  原来是因为vmware已经修改了mac地址,而系统里面仍然保留原来的mac地址

  修改/etc/iftab 为 vmware.vmx 中配置的mac即可

  顺带提下,别忘记了改主机名(/etc/hostname)和ip(/etc/network/interfaces)地址

  VMware 下LINUX出现:Device eth0 does not seem to be present, delaying initialization.解决办法

  在windowXP下安装了suse linux,在vmware下选择了host-only方式与主机通信。

  使用host-only方式与主机通信,vmware使用的是VMware Network Adapter VMnet1虚拟网卡,查看该网卡的IP是 192.168.174.1。

  在虚拟机下面的linux下遇到了一下几个问题:

  1、找不大 eth0网卡,也就连不上网络。症状是ifconfig以后只现实lo,不显示eth0。

  解决方法:

  ifconfig eth0 up。这样ifconfig以后就显示了eth0。

  找到eth0以后,再运行ifconfig eth0 192.168.174.2 netmask 255.255.255.0。即可与主机通信。

  2、经过上面步骤是找到了eth0,可是重启以后又没有了。

  解决方法:

  cd /etc/sysconfigetwork/

  cp ifcfg-lo ifcfg-eth0

  vim ifcfg-eth0 修改配置如下

  IPADDR=192.168.174.2

  NETMASK=255.255.255.0

  NETWORK=192.168.174.0

  BROADCAST=192.168.174.255

  STARTMODE=onboot

  USERCONTROL=no

  保存,重启,即可。

  VMWare克隆或复制Linux虚拟机后eth0找不到的解决方案

  VMware 下Linux 移动/复制后无法找到Eth0网卡的解决过程 Normal 0 7.8 磅 0 2 false false false EN

  -US ZH-CN X-NONE MicrosoftInternetExplorer4 原文地址: http://yangdehua.cn/?p=1881.遇到什么的问

  题(What)在Vmware装了Ubuntu 9.04 Server,今天在启动的时候,发现找不到网卡eth0,在输入ifconfig –

  a的时候,也没有任何Ethnet的信息,而输入eth0 down 的时候,提示我no device found(设备没法找到)

  ,我检查了VMware的EtherNET配置的时候,仍旧是NAT网络设置,和我原来的一样没有了网卡,我就无

  法通过SecureCRT来连接Ubuntu,如果每次都要来到VMware来输入命令,很麻烦2.怎样解决(How)回想了

  在启动VMware的时候,系统提示我的Ubuntu文件被移动(位置被改变了),让我确认是moved还是copy的

  ,我当时候选择了默认的(copy)

  (This virtual machine may have been moved or copied. In order to configure certain management

  and networking features VMware Workstation needs to know which. Did you move this virtual

  machine, or did you copy it? If you don""t know, answer "I copied it".)根据这个信息,在google 搜索了

  copy or moved vmware linux,在VMware的官方论坛找到了这个帖子 lost eth0 when using a copied

  ubuntu-server vm,里面提到了多种解决方案,我最终是选择了sudo rm /etc/udev/rules.d/70-persistent

  -net.rules ,执行该命令后,重启ubuntu (sudo reboot),然后ifconfig ,出现了ip地址,问题得到解决3.为

  什么会出现这样的错误,这样做的原因是什么(Why?)为什么会产生这个问题呢,还需要从UUID谈起

  (UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生

  成UUID的API ),虚拟机同样会有一个UUID,而且这个UUID是唯一的。 虚拟机的UUID一般和虚拟机配置

  文件的位置和物理主机有关。当我们对一个虚拟机系统做移动操作的时候,我们不需要新建一个UUID。让

  我们复制一个虚拟机的时候我们应该选择建立一个新的UUID,来保证此虚拟机的唯一性而当我选择了I

  copied it的时候,VM自然会为我新建一个UUID,一些新的Linux版本是把以太网与Mac地址绑定,当新的

  UUID建立的时候,Mac地址就被改变了,但由于eth0设备所装载的配置与读取默认配置的Mac地址不一致

  。另外的解决方案:进入 /etc/sysconfigetwork 或者/etc/sysconfigetwork-scripts ,编辑eth0配置文件

  。比较在配置文件里面的Mac地址与输入ifconfig 输出的mac地址,如果两者不一致,统一为ifconfig输出的

  mac地址,然后重启sudo rm /etc/udev/rules.d/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.# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)

  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:d2:3f:2c",

  ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"# PCI device 0x1022:0x2000 (pcnet32)

  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:18",

  ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"# PCI device 0x1022:0x2000 (pcnet32)

  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:87:43:22",

  ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"# PCI device 0x1022:0x2000 (pcnet32)

  SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:c8:3a:15",

  ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"将这个/etc/udev/rules.d/70-persistent-net.rules

  删除,重启,网卡eth0成功启动,并重新生成/etc/udev/rules.d/70-persistent-net.rules文件

  VMWare克隆或复制Linux虚拟机后eth0找不到的解决方案现象描述:

  最近装了虚拟机系统是 Fedora,为了以后使用方便对虚拟机进行克隆或复制。当使用克隆后的虚拟机

  时发现原来在基本系统中的网 卡eth0到了新系统却没有了,使用ifconfig -a会发现只有eth1。因为基本系

  统的网络相关配置都是基于eth0的,eth1没有网络相关的 配置,此时要正常该虚拟机中的网络,只有添加

  eth1的网络配置,这样每次都要修改网卡配置在做多Linux系统测试的时候很不方便。更进一步,如果基于

  此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一次都会自动加1(第二次克隆会变成eth2),

  dmesg却显示内核只识别到网卡eth0。

  原因分析:

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

  Debian etch中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则

  脚本中。而VMware会自动生 成虚拟机的mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网

  卡mac地址对应于网卡eth0,在克隆出的虚拟机中由于mac地址发生改 变,udev会自动将该mac对应于网

  卡eth1。以此类推,udev会记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,

  而其 实kernel仅仅只识别到一张网卡,跟网卡名相关的网络配置也未发生任何变化。

  解决方案:

  网络搜索发现在Debian etch下,udev将mac与网卡名称的对应关系保存在/etc/udev/rules.d

  /z25_persistent-net.rules中,在克隆出的虚拟机中只要删除跟NAME=”eth0″相关的行并重启系统即可。例

  如在 Debian etch中删除如下两行:# PCI device 0×1022:0×2000(pcnet32)SUBSYSTEM==”

  net”,DRIVERS==”?*”,ATTRS{address}==“00:0c:29:4c:46:01″,NAME=”eth0″

  在我的Fedora 下修改/etc/udev/rules.d 下的 70-persistent-net.rules 文件。

  删除# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by anaconda)

  SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”

  00:0c:29:ad:06:2a”,ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

  然后把eth1对应的哪一行的”eth1″修改为”eth0″即可。

  另外一种方法是:把里面的内容都删除,然后重新启动,系统也会重新发现网卡硬件,重新产生该文

  件。

  ok!

  VMWare克隆或复制Linux虚拟机后无法上网的解决

  我拷贝了过来的Linux虚拟机无法上网,我用ifconfig命令查询了一下发现只有eth1和lo设备,没有eth0

  。于是我在Google上搜索了一下,找到了下面这篇文章

  (http://blog.chinaunix.net/u3/97076/showart_2015984.html)。《VMWare克隆或复制Linux虚拟机后

  eth0找不到的解决方案》现象描述:最近装了虚拟机系统是 fedora9,为了以后使用方便对虚拟机进行克

  隆或复制。当使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用 ifconfig

  -a会发现只有eth1。因为基本系统的网络相关配置都是基于eth0的,eth1没有网络相关的配置,此时要正

  常该虚拟机中的网络,只有添加eth1的 网络配置,这样每次都要修改网卡配置在做多Linux系统测试的时候

  很不方便。更进一步,如果基于此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一 次都会自动加1

  (第二次克隆会变成eth2),dmesg却显示内核只识别到网卡eth0。原因分析:很多Linux distribution使

  用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在Debian etch中,udev会在系

  统引导的过程中识别网卡,将mac地址和网卡名称对应起来记录在udev的规则脚本中。而VMware会自动生

  成虚拟机的 mac地址。这样,由于基本系统的虚拟机已经记录了该虚拟机的网卡mac地址对应于网卡eth0

  ,在克隆出的虚拟机中由于mac地址发生改变,udev会 自动将该mac对应于网卡eth1。以此类推,udev会

  记录所有已经识别的mac与网卡名的关系,所以每次克隆网卡名称会自动加1,而其实kernel 仅仅只识别到

  一张网卡,跟网卡名相关的网络配置也未发生任何变化。解决方案:网络搜索发现在Debian etch下,udev

  将mac与网卡名称的对应关系保存在/etc/udev/rules.d/z25_persistent-net.rules中,在 克隆出的虚拟机中

  只要删除跟NAME="eth0"相关的行并重启系统即可。例如在Debian etch中删除如下两行:# PCI device

  0x1022:0x2000(pcnet32)SUBSYSTEM=="net",DRIVERS=="?*",ATTRS{address}

  =="00:0c:29:4c:46:01",NAME="eth0" 在我的fedora9 下修改/etc/udev/rules.d 下的 70-persistent-

  net.rules 文件 删除# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE] (rule written by

  anaconda)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}

  =="00:0c:29:ad:06:2a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"然后把eth1对应的哪一行

  的"eth1"修改为"eth0"即可。另外一种方法是:把里面的内容都删除,然后重新启动,系统也会重新发现

  网卡硬件,重新产生该文件。这里补充一点:用下面命令来实现上述第二种方法也是一样的:cd

  /etc/udev/rules.dsudo rm *-net.rules //删除sudo reboot本人在用上述方法操作之后,再用ifconfig查看,

  确实找到了eth0设备,但没有ip地址。接下来用ifconfig命令设置ip地址,一些相关命令如下:ifconfig eth0

  192.168.0.10 将采用默认子网掩码ifconfig eth0 192.168.0.10 netmask 255.255.255.252 (手动定义子

  网掩码)(重启后无效)ifconfig eth0 down(停用网卡)ifconfig eth0 up(激活网卡)service network restart(重

  启网络服务)/etc/rc.d/init.detwork restart(同上)我用ifconfig eth0 192.168.0.10 netmask

  255.255.255.252 设置完ip,然后执行service network restart。系统提示:eth0已有的MAC地址和系统要

  设置的不符,设置MAC地址失败。因为网卡配置信息保存在/etc/sysconfigetwork-scripts/ifcfg-eth0配置

  文件中,所以就去看看它吧。文件的基本内容如下:DEVICE=eth0(哪张网卡)

  ONBOOT=yesBOOTPROTO=static(静态ip状态设置)BOOTPROTO=dhcp(dhcp获取)

  IPADDR=192.168.1.8(静态ip地址)NETMASK=255.255.255.0GATEWAY=192.168.1.1(网关)

  HWADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)我把文件的内容进行了删减,只留下

  DEVICE=eth0BOOTPROTO=dhcpHWADDR=00:0C:29:96:38:F8(修改为提示信息中指出的系统期望赋给

  eth0的MAC)ONBOOT=yes重启Linux后可以正常上网了。

相关内容