Linux系统加载时进入等待状态
零、前言
今天在配置ubuntu系统的网络时,重启后发现系统加载时一直在等待完成某个配置,但是好在没有永久卡死在这个地方,最后会报错并越过该错误启动系统。
最后通过分析找到了问题所在,做个记录。
一、加载系统时启动服务无限等待问题
在网络配置过程中,使用reboot重启后,卡死在如下地方无法通过

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

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

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同样是无法分配到地址的。
如果有大佬知道其他更好的解决办法的话希望可以分享一下!
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
keeshow!
喜欢就支持一下吧