0%

Centos 配置eth0 提示Device does not seem to be present


现象

  • 输入 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。

修改该文件中的内容

  1. DEVICE要与NAME一致
  2. HWADDR要与上面的mac地址一致
1
2
3
4
5
6
7
8
[ifcfg-eth0]
DEVICE=eth0
HWADDR=00:0c:29:a1:d4:75
TYPE=Ethernet
UUID=69c06f0b-0639-4b47-a926-f31ba80c4bda
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp

##参考
Centos 配置eth0 提示Device does not seem to be present

centos 网卡未识别 查看MAC地址