VMWare克隆或复制Linux虚拟机后eth0找不到的解决方案,vmware下复制copy或者克隆clone之后找不到网卡

virtual box +centos 6 , 虚拟机是加载utuntu下的vbox虚拟xit
加载另一个虚拟机,导致网卡eth0找不到,ifconfig -a 看到eth1
执行以下操作

#ifconfig eth1 up
#ifconfig
eth1      Link encap:Ethernet  HWaddr 08:00:27:51:9A:D7  
          inet addr:192.168.2.102  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe51:9ad7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:72 errors:0 dropped:0 overruns:0 frame:0
          TX packets:89 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:8329 (8.1 KiB)  TX bytes:13658 (13.3 KiB)

记住mac地址,然后

#cd /etc/sysconfig/network-scripts
#cp -a ifcfg-eth0 ifcfg-eth1
#vi ifcfg-eth1 ,修改如下
DEVICE="eth1"
NM_CONTROLLED="yes"
ONBOOT="yes"
HWADDR=08:00:27:51:9A:D7
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.2.102   #最好和eth0的IP不同
PREFIX=24
GATEWAY=192.168.2.1
DNS1=211.162.78.1
DOMAIN=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth1"
UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03

然后重启网卡
# /etc/init.d/network restart ,会提示“弹出界面 eth0: 设备 eth0 似乎不存在, 初始化操作将被延迟。[失败]”,不需要管他,ok


以下是网上找到的解决方法

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

你可能感兴趣的:(linux)