Device ensXX does not seem to be present, delaying initialization.

本文讲述了存量服务器开机时网卡无法正常拉起的问题,通过调整开机时的模块加载顺序和修改ifcfg配置文件中的DEVTIMEOUT参数来解决。还提到NetworkManager服务可能带来的冲突,以及排除这些冲突的方法。
摘要由CSDN通过智能技术生成

1.问题描述

存量服务器在开机时无法正常拉起某些网卡, 进而导致配置的bond也无法拉起. 查看服务器的启动日志 /var/log/messages 或者 dmesg | grep ens

发现报错如下
在这里插入图片描述
Device ens5f0 does not seem to be present, delaying initialization.

字面意思是网卡不存在,延迟初始化.

这个问题其实可以通过开机后再重启网络服务解决, 但生产服务器这么操作肯定不合理

systemctl restart network

2.解决方法

解决方法 1

服务器厂商描述, 开机阶段需要先加载网卡驱动模块, 再加载bonding 模块, 否则会出现网卡无法拉起的现象
因此在 /etc/modules-load.d/bonding.conf 文件内写入启动顺序
/etc/modules-load.d/ 系统启动时需要自动加载的模块 (CentOS 系统)

vi /etc/modules-load.d/bonding.conf  
ice  #网卡驱动模块
bonding

# 重启
systemd-modules-load
systemctl restart systemd-modules-load

之后 reboot 检查

解决方法 2

在 /etc/sysconfig/network-scripts 的网卡配置文件( ifcfg-ens5f0 )里面加上一行 DEVTIMEOUT=10
意思是 等待设备响应的时间限制 设置为10s, 也即10s内等待网卡准备

3.解决过程

首先这个报错指明了文件路径(/etc/sysconfig/network-scripts/ifup-eth), 先去文件里面看看
在这里插入图片描述
可以看到调用 is_available_wait 函数, 在函数返回 0 时,执行括号中的内容, 看到参数 DEVTIMEOUT 怀疑其和超时时间有关, (is_awailable_wait 函数的定义其实在 network-function 里面可以找到, 但是没有用), 找了很久不知道这个参数如何设置, 后面看了下文件里面的其他变量发现了一些熟悉的身影: DEVICE, MASTER, ONBOOT, 所以怀疑是在网卡的配置文件里面修改,试了一下, 果然没错.

在网上找了很久, 都是一些基本的方法, 比如NetworkManager 和 network 服务冲突, 禁用 NetworkManager 服务, 并没有用, 还有一些网卡名和mac地址的配置确认, 在此就不再重复

systemctl stop NetworkManager
systemctl disable NetworkManager
  • 10
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值