现象
- 输入 ifconfig 查看网卡状态时只有lo,eth0没有正常启用,或者输入 ifconfig -a 没有eth0,却多出一个eth1。
- 输入 service network restart 会输出如下错误:
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]
原因
这是由于更改了网卡的mac地址导致系统无法找到对应的网卡配置文件导致的。如果是虚拟机,通常是因为安装完一个centos虚拟机后又拷贝了一份,在启动的时候vmware对其网卡进行了重新配置,结果导致网卡mac地址改变,无法与ifcfg-eth0对应,不能正常配置网卡。
解决办法
1 | 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 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a1:d4:75", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
记住mac地址 00:0c:29:a1:d4:75
注: 虚拟机有可能在此处出现两条数据,但实际上第一条记录的硬件已经不存在了(VMWare把mac改了,第一条数据已经没有对应的网卡了),此时第二条数据才是有效的,记住那条数据的mac地址,注意一下如NAME可能不是eth0而是eth1。 其实这就是个名字,如果你就喜欢叫eth0(比如我 ^_^ ),那就把名字改成eth0好了,其实叫什么都行,关键是下一步必须有对应的ifcfg配置文件。
编辑ifcfg文件
在 /etc/sysconfig/network-scripts/ 目录下,找ifcfg-网卡名字 比如我上面用的NAME用的是eth0,那就找ifcfg-eth0。要是没有对应的,那就需要新建一个文件和上边的NAME对应,可以直接复制ifcfg-eth0。
修改该文件中的内容
- DEVICE要与NAME一致
- HWADDR要与上面的mac地址一致
1 | [ifcfg-eth0] |