现象描述:最近装了虚拟机系统是 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!Linux 2.6 中的页面回收与反向映射Ubuntu 10.10下安装Gnome 3测试版相关资讯 VMWARE
- VMware在DockerCon EU宣布开源“ (12/03/2015 13:13:26)
- 使用VMware克隆功能的一个网络配置 (08/13/2015 20:51:48)
- VMware推出容器友好的Linux系统 (04/21/2015 11:51:51)
| - VMware Workstation 12 Pro 发布下 (08/26/2015 19:21:49)
- VMware推出自家Linux版本 Photon (04/22/2015 17:27:21)
- VMware如何在中国取得成功? (04/20/2015 17:18:00)
|
本文评论 查看全部评论 (0)