经过复制建立虚拟机,没法联网的解决办法

vmware 下找不到ifcfg-eth0的问题

http://www.linuxdiyf.com/viewarticle.php?id=90924

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

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

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

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

解决方法:
ifconfig eth0 up。这样ifconfig之后就显示了eth0。

找到eth0之后,再运行ifconfig eth0 192.168.174.2 netmask 255.255.255.0。便可与主机通讯。

二、通过上面步骤是找到了eth0,但是重启之后又没有了。

解决方法:

cd /etc/sysconfig/network/
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找不到的解决方案

http://www.heiqu.com/show-72766-1.html

  在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地址,问题获得解决。php

3.为 什么会出现这样的错误,这样作的缘由是什么(Why?)html

为何会产生这个问题呢,还须要从UUID谈起(UUID是指在一台机器上生成的数字,它保证对在同一时空中的全部机器都是惟一的。一般平台会提供生成UUID的API ),虚拟机一样会有一个UUID,并且这个UUID是惟一的。 虚拟机的UUID通常和虚拟机配置文件的位置和物理主机有关。当咱们对一个虚拟机系统作移动操做的时候,咱们不须要新建一个UUID。让咱们复制一个虚拟机的时候咱们应该选择创建一个新的UUID,来保证此虚拟机的惟一性而当我选择了I copied it的时候,VM天然会为我新建一个UUID,一些新的Linux版本是把以太网与Mac地址绑定,当新的UUID创建的时候,Mac地址就被改变了,但因为eth0设备所装载的配置与读取默认配置的Mac地址不一致 。另外的解决方案:进入 /etc/sysconfig/network 或者/etc/sysconfig/network-scripts ,编辑eth0配置文件。比较在配置文件里面的Mac地址与输入ifconfig 输出的mac地址,若是二者不一致,统一为ifconfig输出的mac地址,而后重启。linux

sudo rm /etc/udev/rules.d/70-persistent-net.rules 可以成功的缘由:ubuntu

该文件的内容:vim

# 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"this

# 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"google

# 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".net

将这个/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 etc下,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.d/network restart(同上)我用ifconfig eth0 192.168.0.10 netmask 255.255.255.252 设置完ip,而后执行service network restart。系统提示:eth0已有的MAC地址和系统要设置的不符,设置MAC地址失败。由于网卡配置信息保存在/etc/sysconfig/network-scripts/ifcfg-eth0配置文件中,因此就去看看它吧。文件的基本内容以下:DEVICE=eth0(哪张网卡)

ONBOOT=yes

BOOTPROTO=static(静态ip状态设置)

BOOTPROTO=dhcp(dhcp获取)

IPADDR=192.168.1.8(静态ip地址)

NETMASK=255.255.255.0

GATEWAY=192.168.1.1(网关)

HWADDR=00:0C:29:96:38:F8(修改mac地址)(永久有效)

我把文件的内容进行了删减,只留下

DEVICE=eth0

BOOTPROTO=dhcp

HWADDR=00:0C:29:96:38:F8(修改成提示信息中指出的系统指望赋给eth0的MAC)

ONBOOT=yes

重启Linux后能够正常上网了。

相关文章
相关标签/搜索