正在加载...

刚才在VM虚拟机里测试Scientific Linux 6(RHEL6的重编译版,相当于CentOS 6),看看是否可用于生产环境。因为镜像是在家里的电脑安装的,复制过来启动系统发现网卡启动失败,提示:

Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.   [FAILED]

Google了一下,发现是网卡mac地址写入硬件问题导致。

环境:Virtualbox+RHEL 6 x64
用VirtualBox的vboxmanager克隆的虚拟机,操作系统RHEL6,启动后发现网卡不能用了。重启网络服务,报以下错误:
Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization. [FAILED]

在RHEL5里也发生类似事情,因为复制虚拟机MAC会重新生成,但是操作系统的MAC却写在ifcfg-ethx里,造成了不一致,所以不能启动网络接口,在RHEL5里可以使用kudzu或者注释网卡配置文件的MAC字段来解决这个问题。但是在RHEL6里,kudzu已经被hal服务取代了。虽然lspci能够正常认到网卡,但是却无法使用/etc/init.d/network restart来启动服务。尝试注释ifcfg-eth0的MAC字段,还是报错。查看了下udev的规则,发现了问题的所在。

[root@Oracle ~]# 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.

# net device () (custom name provided by external tool)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:16:31:11″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

# net device ()
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth1″
[root@Oracle ~]#

原来UDEV这里把克隆前的MAC当成了当前虚拟机的eth0 MAC,而重新生成的08:00:27:32:66:63是eth1的MAC。

解决这个问题,只要删除旧的UDEV配置,修改为:
[root@Oracle ~]# 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.

# net device () (custom name provided by external tool)
SUBSYSTEM==”net”, ACTION==”add”, DRIVERS==”?*”, ATTR{address}==”08:00:27:32:66:63″, ATTR{type}==”1″, KERNEL==”eth*”, NAME=”eth0″

重启network服务有时可以有时不行,重启系统就一切OK!试过多次!
[root@Oracle ~]# /etc/init.d/network restart
Shutting down interface eth0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
[root@Oracle ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 08:00:27:32:66:63
inet addr:172.16.100.3 Bcast:172.16.100.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe32:6663/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:206 errors:0 dropped:0 overruns:0 frame:0
TX packets:203 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:21157 (20.6 KiB) TX bytes:24515 (23.9 KiB)

参考:http://bbs.chinaunix.net/viewthread.php?tid=1918368

我的测试环境是VMware Workstation 7.1 + SL 6 x64
最简单的解决办法是直接删除70-persistent-net.rules配置文件

rm -fr /etc/udev/rules.d/70-persistent-net.rules
reboot

重启系统就ok了,系统会自动生成一个新的。

: http://www.ha97.com/4046.html

本文相关评论 - 才 6 条评论
嘉谟之行
2011-05-19 00:18:21
Firefox 4.0.1 Firefox 4.0.1 Windows 7 Windows 7

请问 rhel6 如何用centos 的源 或fedora 。 我安装软件时 ,不太方便。

pultuo
2011-05-20 17:20:59
Firefox 4.0 Firefox 4.0 Windows 7 Windows 7

安装ELPL的源在图形界面下修改下把bate也选上就可以安装很多软件了.

2011-06-09 16:26:42
Google Chrome 11.0.696.71 Google Chrome 11.0.696.71 Windows 7 x64 Edition Windows 7 x64 Edition

这个还要图形界面修改?直接vim /etc/yum.repos.d/epel-testing.repo 把里面enabled=0改成enabled=1就可以了~~

2011-06-09 16:24:26
Google Chrome 11.0.696.71 Google Chrome 11.0.696.71 Windows 7 x64 Edition Windows 7 x64 Edition

很简单,可以看我总结得这篇:http://www.ha97.com/4052.html RHEL/CentOS/SL Linux 6.x使用EPEL 6的yum软件源

2013-02-23 20:18:35
Internet Explorer 9.0 Internet Explorer 9.0 Windows 7 x64 Edition Windows 7 x64 Edition

但是/etc/sysconfig/network-script/ifcfg-eth* 里面的MAC也不一样啊,手工修改?

frankwong
2013-05-30 09:31:59
Google Chrome 25.0.1364.172 Google Chrome 25.0.1364.172 Windows 7 Windows 7

光重启似乎不总是work,还需要修改mac地址,http://gitsea.com/?p=53#more-53