声明:一下内容转自http://www.prajnagarden.com/?p=195

在VMware workstation中通过现有的Centos6.2克隆一个虚拟机,发现启动的时候找不到eth0网卡,查看网卡模块e1000也已经加载。奇怪之余发现原来Linux也有类似的windows UUID的特性,以后得注意这个问题,下面是针对于这个问题的解放方案。

      最简单,最直接的做法:rm /etc/udev/rules.d/70-persistent-net.rules,重启虚拟机,配置网络,搞定。但细究这个问题产生的原因是平台在copy虚拟机的时候会提供生成UUID的API ,虚拟机同样会有一个UUID,而且这个UUID是唯一的。 虚拟机的UUID一般和虚拟机配置文件的位置和物理主机有关。当对一个虚拟机系统做移动操作的时候,不需要新建一个UUID。复制一个虚拟机的时候我们应该选择建立一个新的UUID,来保证此虚拟机的唯一性而当我选择了I copied it的时候,VM自然会新建一个UUID,一些新的Linux版本是把以太网与Mac地址绑定,当新的 UUID建立的时候,Mac地址就被改变了,但由于eth0设备所装载的配置与读取默认配置的Mac地址不一致,导致加载网卡失败。

      在对cat /etc/udev/rules.d/70-persistent-net.rules

[root@centos62 ~]# cat /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, and change only the value of the NAME= key.

# PCI device 0×1022:0×2000 (pcnet32) 
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:16:1e:02", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

     从上面的文件可以看出,这个文件是udev动态加载的,删除重启即能生成正确的文件,呵呵!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐