当前位置:首页 服务器 正文

[centos] Linux下”Device eth0 does not seem to be present,delaying initialization.”问题解决方法.

2014年04月28日 | 作者: 米豆网 - 1000seo | 分类: 服务器 | 

前几天从一个VW上用Export->Export VOF Template…克隆一个CentOS镜像文件到另一个VM上Deploy后,网络无法访问,于是就试着重启网卡服务:
# service network restart
系统报出如下错误:
Device eth0 does not seem to be present,delaying initialization.
使用 ifconfig 看不到 eth0 的任何信息.
我的做法是:
打开ifcfg-eth0文件
#vi /etc/sysconfig/network-scripts/ifcfg-eth0
将HWADDR的地址修改成VM上显示的mac地址,并把文件改名为ifcfg-eth1,
然后重启网卡服务
# service network restart
一切正正常了。

另外网上搜到的方法说不用修改HWADDR的地址,直接将其注释掉,改名为ifcfg-eth1,然后重启网卡服务,也是可以。

经过各种google,最终要是找到了问题的原因
使用克隆后的虚拟机时发现原来在基本系统中的网卡eth0到了新系统却没有了,使用ifconfig -a会发现只有lo。
因为基本系统的网络相关配置都是基于eth0的,如果基于此克隆虚拟机继续克隆或复制新的虚拟机,网卡的标识每一次都会自动加1变成eth1(第二次克隆会变成eth2)。由于很多Linux distribution使用udev动态管理设备文件,并根据设备的信息对其进行持久化命名。例如在centos中,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中,
打开此文件
#vi /etc/udev/rules.d/70-persistent-net.rules
可以看到文件内容形式显示如下,不同机器具体内容显示有所不同,
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:8f:89:97″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”00:0c:29:50:bd:17″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″

在克隆出的虚拟机中只要删除跟NAME=”eth0″相关的行,并且把eth1的改为eth0,并重启系统即可。

本文章由 米豆网 - 1000seo 于2014年04月28日发布在服务器分类下,您可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
+复制链接 转载请注明:[centos] Linux下”Device eth0 does not seem to be present,delaying initialization.”问题解决方法.-米豆网
关键字:, ,

好文章就要一起分享!

更多

发表评论

你的大名(必填)

你的邮箱(必填)

你的网站(选填)

评论内容(必填)

😉 😐 😡 😈 🙂 😯 🙁 🙄 😛 😳 😮 mrgreen.png 😆 💡 😀 👿 😥 😎 ➡ 😕 ❓ ❗