零、前言

今天在配置ubuntu系统的网络时,重启后发现系统加载时一直在等待完成某个配置,但是好在没有永久卡死在这个地方,最后会报错并越过该错误启动系统。
最后通过分析找到了问题所在,做个记录。

一、加载系统时启动服务无限等待问题  

在网络配置过程中,使用reboot重启后,卡死在如下地方无法通过  

image-20240530214444395

一直等待大概几分钟后会出现如下报错,并作出了提示,这里猜测是在等待网络  

image-20240530213936950

越过错误启动后系统启动成功,使用如下命令查看启动的服务耗时,可以看到systemd-networkd-wait-online耗时最长,是问题的关键。

systemd-analyze blame

image-20240530214123539

systemd-networkd-wait-online服务一般用于确保在网络接口完全配置并准备好进行通信之前,不会启动依赖网络的其它需要网络的服务。

查阅资料后了解到,如下情况该服务会进入等待状态:

  • 静态IP配置:如果网络接口配置了静态IP地址,systemd-networkd-wait-online可能会等待直到网络接口被手动激活或自动配置完成。
  • DHCP配置:在使用 DHCP 自动获取 IP 地址时,该服务可能会等待直到 DHCP 客户端成功获取到地址。
  • 网络接口问题:如果网络接口存在问题,如驱动问题或物理连接问题,该服务可能会持续等待。
  • 网络管理器冲突:如果您的系统上同时运行了 NetworkManager 和 systemd-networkd,可能会发生冲突,导致等待行为。

了解后明白自己通过systemd-networkd服务给eth0网口配置了静态IP,然后在启动系统时候没有在eth0网口插入网线,导致网口无法激活。

解决建议: 

即使替换为DHCP配置IP,也会在启动系统时候卡住,因为网口没有接入网线的原因,这个检测时无法通过的,所以只能去掉systemd-networkd服务里的IP配置,或接好网线再使用这个网络服务。
还有就是在没有可用网口的情况下,udhcpc同样是无法分配到地址的。

如果有大佬知道其他更好的解决办法的话希望可以分享一下!

文章作者: keeshow
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 keeshow
默认分类 Linux
喜欢就支持一下吧