上周日,由于断电,公司所在的集群服务器在关机断电重启后,发现唯一的一个登陆节点主板出现了故障,以致于 log 登陆节点的 Red Hat Enterprise 6 系统无法启动。


由于集群是生信所有分析工作的基础,我们所用的 IBM LSF 集群一共有 30 多个计算节点,其中还包括了 2 个大内存 fat 节点,log 节点挂掉后,整个生信部门几十号人的工作都没法正常进行,情况可谓是非常紧迫。负责硬件的同事在加班加点联系供应商更换主板后,终于可以把系统启动起来,但是问题也来了:

  • 系统启动后一直提示 "Network is unreachable" 错误,log 无法跟计算、管理、存储等节点进行网络连接。

  • 供应商负责硬件更换后就走人了,系统层面各种服务还是需要自己去解决。

这个文章主要参考散尽浮华(高级 Linux 运维工程师)在博客园的相关文章,对 Linux 服务器更换主板后,网卡识别失败的处理进行一下记录与分享,希望对大家有用。

1. 现象说明

公司 IDC 机房里的一台线上服务器硬件报警,最后排查发现服务器主板坏了,随即联系厂商进行更换主板,最后更换后,登录服务器,发现网卡绑定及 ip 信息都在,但是 ip 却 ping 不通了,进一步排查,重启网卡,提示之前的 eth0 和 eth1 网卡设备发现不了了,也就是说服务器主板更换后,之前的网卡设备都识别不了了!

主板更换后,重启并登陆服务器,发现之前的网卡设备(eth0、eth1、eth2、eth3)都没有了!

[root@kevin01 ~]# ifconfig -abond0     Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:72           inet addr:192.168.10.20  Bcast:192.168.10.255  Mask:255.255.255.0          inet6 addr: fe80::a94:efff:fe5e:ae72/64 Scope:Link          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1          RX packets:75582 errors:0 dropped:0 overruns:0 frame:0          TX packets:58537 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:5890233 (5.6 MiB)  TX bytes:4390537 (4.1 MiB)

lo        Link encap:Local Loopback           inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:26 errors:0 dropped:0 overruns:0 frame:0          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:1983 (1.9 KiB)  TX bytes:1983 (1.9 KiB)

usb0      Link encap:Ethernet  HWaddr 0A:94:EF:5E:AE:79           BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

之前的网卡设备和 bond 绑定的配置信息都还在(bond 绑定网卡操作:《 Linux下绑定网卡的操作记录》)。

[root@kevin ~]# cd /etc/sysconfig/network-scripts/[root@kevin network-scripts]# lsifcfg-bond0  ifcfg-lo     ifdown-ib    ifdown-ppp     ifup-aliases  ifup-ipv6   ifup-ppp       init.ipv6-globalifcfg-eth0   ifcfg-usb0   ifdown-ippp  ifdown-routes  ifup-bnep     ifup-isdn   ifup-routes    net.hotplugifcfg-eth1   ifdown       ifdown-ipv6  ifdown-sit     ifup-eth      ifup-plip   ifup-sit       network-functionsifcfg-eth2   ifdown-bnep  ifdown-isdn  ifdown-tunnel  ifup-ib       ifup-plusb  ifup-tunnel    network-functions-ipv6ifcfg-eth3   ifdown-eth   ifdown-post  ifup           ifup-ippp     ifup-post   ifup-wireless

[root@kevin ~]# /etc/init.d/network restart......报错说没有发现eth0和eth1网卡

[root@kevin ~]# ipdown eth0报错提示说没有发现eth0网卡

2. 产生原因

这是因为服务器更换了主板或网卡,mac 地址改变所导致的。系统加载网卡驱动后会去读一个文件(即 /etc/udev/rules.d/70-persistent-net.rules ),这个文件是一个缓冲文件,包含了网卡的 mac 地址,因为更换了主板,网卡的 mac 地址也变了,但是这个文件的 mac 地址还没变,还是之前坏了的主板的上面的网卡的 MAC 地址,这样系统在加载网卡,读取这个文件的时候读取的是之前网卡的 mac 地址,和现在更换后主板后的网卡 mac 地址不一致导致混乱,所以就识别不了当前网卡。

3. 解决方法

一般来说,删除 /etc/udev/rules.d/70-persistent-net.rules 文件(或者把这个文件重新命名 或者清空该文件内容),重启服务器就可以解决了,重启后会重新生成这个文件,这样就顺利解决这个问题了!这里注意下,由于我的这台服务器绑定了网卡,所以重启网卡后,还需要进行 modprobe 命令使得网卡绑定生效,大致步骤如下:

$ mv /etc/udev/rules.d/70-persistent-net.rules /etc/udev/rules.d/70-persistent-net.rules.bak20180307$ init 6 

重启服务器后,查看 /etc/udev/rules.d/70-persistent-net.rules 文件,发现没有 eth0、eth1、eth3、eth4 的网卡信息(mac 和设备名称):

[root@kevin network-scripts]# 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 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="****", ATTR{type}=="1", KERNEL=="eth*"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="****", ATTR{type}=="1", KERNEL=="eth*"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="****", ATTR{type}=="1", KERNEL=="eth*"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="****", ATTR{type}=="1", KERNEL=="eth*"

然后重启网卡等操作:

[root@kevin ~]# modprobe bonding[root@kevin ~]# /etc/init.d/network restart[root@kevin ~]# modprobe bonding

接着 ifconfig 查看,发现 eth0、eth1、eth2、eth3 网卡设备都能识别了:

[root@kevin ~]# ifconfig -abond0     Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:72          inet addr:192.168.10.20  Bcast:192.168.10.255  Mask:255.255.255.0          inet6 addr: fe80::a94:efff:fe5e:ae72/64 Scope:Link          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1          RX packets:108809 errors:0 dropped:0 overruns:0 frame:0          TX packets:84207 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:8471111 (8.0 MiB)  TX bytes:6322341 (6.0 MiB)

eth0      Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:72          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1          RX packets:38051 errors:0 dropped:0 overruns:0 frame:0          TX packets:14301 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:2869726 (2.7 MiB)  TX bytes:944276 (922.1 KiB)          Interrupt:16

eth1      Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:72          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1          RX packets:69158 errors:0 dropped:0 overruns:0 frame:0          TX packets:68615 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:5469647 (5.2 MiB)  TX bytes:5279012 (5.0 MiB)          Interrupt:17

eth2      Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:74          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)          Interrupt:16

eth3      Link encap:Ethernet  HWaddr 08:94:EF:5E:AE:75          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)          Interrupt:17

lo        Link encap:Local Loopback          inet addr:127.0.0.1  Mask:255.0.0.0          inet6 addr: ::1/128 Scope:Host          UP LOOPBACK RUNNING  MTU:65536  Metric:1          RX packets:26 errors:0 dropped:0 overruns:0 frame:0          TX packets:26 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:0          RX bytes:1983 (1.9 KiB)  TX bytes:1983 (1.9 KiB)

usb0      Link encap:Ethernet  HWaddr 0A:94:EF:5E:AE:79          BROADCAST MULTICAST  MTU:1500  Metric:1          RX packets:0 errors:0 dropped:0 overruns:0 frame:0          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0          collisions:0 txqueuelen:1000          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

在查看 /etc/udev/rules.d/70-persistent-net.rules 文件,发现 eth0、eth1、eth2、eth3 网卡及其 mac 地址信息都有了:

[root@kevin ~]# 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 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:94:ef:5e:ae:75", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:94:ef:5e:ae:72", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:94:ef:5e:ae:73", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x14e4:0x1657 (tg3)SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:94:ef:5e:ae:74", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

接着尝试 ping 其他机器:

[root@kevin ~]# ping 192.168.10.23PING 192.168.10.23 (192.168.10.23) 56(84) bytes of data.64 bytes from 192.168.10.23: icmp_seq=1 ttl=64 time=0.030 ms64 bytes from 192.168.10.23: icmp_seq=2 ttl=64 time=0.016 ms64 bytes from 192.168.10.23: icmp_seq=3 ttl=64 time=0.016 ms

如果 ping 不通的话,多执行下面命令:

[root@kevin ~]# modprobe bonding

温馨提示:有时候重启后还是出现以上情况,对比之前的 /etc/udev/rules.d/70-persistent-net.rules 文件,新的文件 mac 地址和 name 已经改变,name=eth0 和之前 name=em1 的名字不同;

作者:散尽浮华(本文已经原作者同意授权转载)
原文:https://www.cnblogs.com/kevingrace/p/8524664.html

4. 后话

如果你的服务器有 4 个网卡,重启后对比之前的 /etc/udev/rules.d/70-persistent-net.rules 文件,发现新文件 mac 地址和 name 已经改变,name 变成了 name=eth4,name=eth5,name=eth6,name=eth7,这也是正常的。使用 ifconfig -a 命令也是同样的道理。

此外,如果你在 /etc/sysconfig/network-scripts/ 中分别使用 ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3 对四个网卡进行 IP、网关等做了绑定,你需要:

  • 分别把这四个文件名改为 ifcfg-eth4、ifcfg-eth5、ifcfg-eth6、ifcfg-eth7,并把其中的 MAC 地址(HWADDR)改为对应的新 MAC 地址;

  • 或者,把 /etc/udev/rules.d/70-persistent-net.rules 文件中的 name 分别改成 name=eth0,name=eth1,name=eth2,name=eth3,同时修改 ifcfg-eth0、ifcfg-eth1、ifcfg-eth2、ifcfg-eth3 文件中对应的 MAC 地址(HWADDR);

  • 重启网络服务。

本文分享自微信公众号 - 生信科技爱好者(bioitee)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

Linux 服务器更换主板后,网卡识别失败的处理方法相关推荐

  1. linux主板上的网卡不显示,linux服务器更换主板后无法识别网卡解决办法

    在我的超算集群里,有台服务器故障报修,主板坏了,更换主板后,无法识别网卡,用命令ifconfig -a 查看只显示lo loopback 127.0.0.1,以及eth7,eth8,eth9等没有网卡 ...

  2. Linux系统换主板后网络,linux 跟换主板后网卡配置.docx

    linux 跟换主板后网卡配置 计算机中心所有的删除操作都要谨慎!删除需谨慎!要备份服务器故障报修,主板坏了,更换主板后,无法识别网卡,用命令ifconfig -a 查看只显示lo loopback ...

  3. 华为服务器更换主板后怎么进系统,服务器更换主板

    服务器更换主板 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 如果弹性负载均衡 ...

  4. 服务器更换主板后系统无法启动

    针对 2008R2.linux6 以上版本更换主板后无法启动 由于机器故障不得不更换主板,这样主板上的启动项就会随着老主板一起报废开机后找不到 启动项无法进入系统. 新更换的主板没有操作系统的启动项 ...

  5. 服务器更换主板后linux系统无法启动解决

    由于机器故障不得不更换主板,这样主板上的启动项就会随着老主板一起报废开机后找不到 启动项无法进入系统.提示Boot Failed 新更换的主板没有操作系统的启动项 进入 RAID 看 raid 信息也 ...

  6. 华为服务器更换主板后怎么进系统,服务器换主板之后

    服务器换主板之后 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例,Windows ...

  7. 服务器更换主板后无法启动网络

    如更换主板又没重装操作系统时,实际的mac地址已经变更,因此网络无法启动,此时只需 ifconfig查询对应网卡的实际mac地址,然后更新到ifcfg-eth0配置中即可.

  8. IBM x3650M4服务器更换主板后,导入原有硬盘阵列信息

    x3650m4服务器主板坏了,更换好的主板,需要导入原来硬盘的里面的阵列信息 1.开机有提示信息,按C导入配置 2.按Y继续 3.点击start进入阵列卡配置 4.选择configurations 1 ...

  9. X3650M5更换主板后无法正常进系统的原因

    主题:解决IBM / Lenovo X3650M5服务器更换故障主板后无法正常进入系统的故障现象. 1:首先X3650M5这款机器老实说主板故障还是非常多的.常见的报错故障问题有以下几种: 1.1:主 ...

最新文章

  1. Atitit.提升 升级类库框架后的api代码兼容性设计指南
  2. Java基础学习——多线程(线程间通信-生产者消费者代码示例)
  3. java数据通道抽象为流_【java】IO流
  4. 2016网易实习生编程题:n个骰子的和等于m
  5. ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
  6. zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
  7. Spring Boot 2.1.8.RELEASE集成UReport2 (四) 添加Mysql存储器
  8. Neo4j的开发方式
  9. 用TA学吉他,下个双11再也不孤单-吉他音阶实战 (三)
  10. 苹果库乐队怎么玩_iPhone实用技巧:怎么将抖音上的背景音乐制作成手机铃声
  11. 智能制造,从smart到intelligent
  12. 由膳食纤维选择性促进的肠道细菌缓解二型糖尿病
  13. VBA 把电信的电话费用表转换成部门电话费用明细表(图文)
  14. 为什么需要Code Review?
  15. FLV格式的视频怎么在线转换成MP4格式
  16. Module “*” must not contain source root *. The root already belongs to module “*”
  17. Spark 提交执行源码学习
  18. 【渝粤题库】广东开放大学 工程经济 形成性考核
  19. 小程序也能是App中的引流神器?
  20. 微信个性签名服务器维护,微信个性签名更改不了系统维护

热门文章

  1. 数据中台已成气候!大数据架构师如何站上风口?
  2. 简单明了!OLTP场景下的数据分布式设计原则
  3. 伟大公司为什么都考核价值观?
  4. 团队如何实施敏捷开发以及Scrum电子看板工具
  5. Windows消息队列
  6. Wordpress 加入html等文件
  7. 什么是Fabric网络
  8. 二叉树镜像,交换左右子树
  9. 双链表(删除节点操作)
  10. 视觉传感器:3D感知算法