克隆CentOS 6后网卡无法自动识别的解决方法

    最近在虚拟机上安装了CentOS 6.2。为了以后使用方便, 对虚拟机进行克隆。当使用克隆后的虚拟机时,发现原来在操作系统中的网卡eth0到了新系统却没有了,使用 ifconfig -a会发现只有eth1。因为源系统很多网络配置都是基于eth0的,eth1没有网络相关的配置。如果每次对虚拟机进行克隆后都要修改网卡配置,显示是非常不方便的。 而且还发现一个规律,基于此克隆虚拟机继续克隆新的虚拟机,网卡的标识会自动加1(即第二次克隆后会变成eth2)。但使用dmesg命令却显示内核只识别到网卡eth0。

    原来很多Linux distribution使用udev来动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在Debian eth中,udev会在系统引导的过程中识别网卡,将mac地址和网卡名称对应起来,并记录在udev的规则脚本中。而VMware会自动生成虚拟机的 mac地址。这样,源系统已经记录了该虚拟机的网卡mac地址对应于网卡eth0,当克隆出的新的虚拟机后,由于mac地址发生改变,udev会自动将该mac对应于网卡eth1,以此类推。udev会记录所有已经识别的mac与网卡名的关系,并且每次克隆网卡名称会自动加1,但实际上kernel 仅仅只识别到一张网卡。

    udev通常会将mac与网卡名称的对应关系保存在形如/etc/udev/rules.d/70-persistent-net.rules的文件中,例如在/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="eth1"

我们只需要把"eth1"修改为"eth0"即可;或者把/etc/udev/rules.d/z25_persistent-net.rules里面的内容全部删除,然后重新启动计算机,系统会重新产生该文件的内容。

PS: 如果你修改了虚拟机的网卡物理地址,系统也会在/etc/udev/rules.d/70-persistent-net.rules追加一条eth1的记录。

转载于:https://my.oschina.net/aiguozhe/blog/120416

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值