Linux 服务器更换主板后,网卡识别失败的处理方法
上周日,由于断电,公司所在的集群服务器在关机断电重启后,发现唯一的一个登陆节点主板出现了故障,以致于 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 服务器更换主板后,网卡识别失败的处理方法相关推荐
- linux主板上的网卡不显示,linux服务器更换主板后无法识别网卡解决办法
在我的超算集群里,有台服务器故障报修,主板坏了,更换主板后,无法识别网卡,用命令ifconfig -a 查看只显示lo loopback 127.0.0.1,以及eth7,eth8,eth9等没有网卡 ...
- Linux系统换主板后网络,linux 跟换主板后网卡配置.docx
linux 跟换主板后网卡配置 计算机中心所有的删除操作都要谨慎!删除需谨慎!要备份服务器故障报修,主板坏了,更换主板后,无法识别网卡,用命令ifconfig -a 查看只显示lo loopback ...
- 华为服务器更换主板后怎么进系统,服务器更换主板
服务器更换主板 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. 如果弹性负载均衡 ...
- 服务器更换主板后系统无法启动
针对 2008R2.linux6 以上版本更换主板后无法启动 由于机器故障不得不更换主板,这样主板上的启动项就会随着老主板一起报废开机后找不到 启动项无法进入系统. 新更换的主板没有操作系统的启动项 ...
- 服务器更换主板后linux系统无法启动解决
由于机器故障不得不更换主板,这样主板上的启动项就会随着老主板一起报废开机后找不到 启动项无法进入系统.提示Boot Failed 新更换的主板没有操作系统的启动项 进入 RAID 看 raid 信息也 ...
- 华为服务器更换主板后怎么进系统,服务器换主板之后
服务器换主板之后 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例,Windows ...
- 服务器更换主板后无法启动网络
如更换主板又没重装操作系统时,实际的mac地址已经变更,因此网络无法启动,此时只需 ifconfig查询对应网卡的实际mac地址,然后更新到ifcfg-eth0配置中即可.
- IBM x3650M4服务器更换主板后,导入原有硬盘阵列信息
x3650m4服务器主板坏了,更换好的主板,需要导入原来硬盘的里面的阵列信息 1.开机有提示信息,按C导入配置 2.按Y继续 3.点击start进入阵列卡配置 4.选择configurations 1 ...
- X3650M5更换主板后无法正常进系统的原因
主题:解决IBM / Lenovo X3650M5服务器更换故障主板后无法正常进入系统的故障现象. 1:首先X3650M5这款机器老实说主板故障还是非常多的.常见的报错故障问题有以下几种: 1.1:主 ...
最新文章
- Atitit.提升 升级类库框架后的api代码兼容性设计指南
- Java基础学习——多线程(线程间通信-生产者消费者代码示例)
- java数据通道抽象为流_【java】IO流
- 2016网易实习生编程题:n个骰子的和等于m
- ai钢笔工具怎么描线_AI中钢笔工具绘图的实战操作技巧!(干货满满)
- zookeeper3.5.x版本启动报错java.io.IOException: No snapshot found, but there are log entries.解决
- Spring Boot 2.1.8.RELEASE集成UReport2 (四) 添加Mysql存储器
- Neo4j的开发方式
- 用TA学吉他,下个双11再也不孤单-吉他音阶实战 (三)
- 苹果库乐队怎么玩_iPhone实用技巧:怎么将抖音上的背景音乐制作成手机铃声
- 智能制造,从smart到intelligent
- 由膳食纤维选择性促进的肠道细菌缓解二型糖尿病
- VBA 把电信的电话费用表转换成部门电话费用明细表(图文)
- 为什么需要Code Review?
- FLV格式的视频怎么在线转换成MP4格式
- Module “*” must not contain source root *. The root already belongs to module “*”
- Spark 提交执行源码学习
- 【渝粤题库】广东开放大学 工程经济 形成性考核
- 小程序也能是App中的引流神器?
- 微信个性签名服务器维护,微信个性签名更改不了系统维护