麒麟系统开机卡在“正在连接网络”界面是因networkmanager默认等待网络就绪,需修改其启动策略:创建99-no-wait.conf禁用dns和接管权、编辑systemd单元移除网络依赖、重载服务;屏蔽或替换nm-online实现瞬时返回;对延迟网卡驱动(如r8169)提前加载。

麒麟系统开机时NetworkManager默认会等待网络就绪才完成启动流程,导致桌面卡在“正在连接网络”界面长达30秒以上,影响登录速度和用户体验——这不是网络故障,而是服务启动策略过于保守。
修改NetworkManager启动超时策略
第一步:创建专用配置文件防止被覆盖
执行sudo vim /etc/NetworkManager/conf.d/99-no-wait.conf,新建空白配置文件。
第二步:写入跳过网络就绪等待的指令
在文件中输入以下三行内容:
[main]
dns=none
rc-manager=unmanaged
这会禁用NetworkManager对DNS和网络管理器接管权的争夺,让系统不阻塞启动流程。
第三步:强制关闭NetworkManager的启动依赖链
执行sudo systemctl edit NetworkManager,在打开的编辑器中输入:
[Unit]
WantedBy=multi-user.target
After=systemd-udev-settle.service
【必须删除原有After=network-pre.target等网络前置依赖项】
第四步:重载并重启服务
执行sudo systemctl daemon-reload && sudo systemctl restart NetworkManager。此时NetworkManager将在基础系统就绪后立即启动,不再等待网卡link up或DHCP响应。
禁用图形界面网络就绪检测
UKUI桌面环境会在登录前主动调用nm-online -t 30检测网络连通性,这是造成卡顿的直接原因。需绕过该检测。
方法一:屏蔽nm-online调用链
执行sudo mv /usr/bin/nm-online /usr/bin/nm-online.disabled。此操作会让所有依赖nm-online的组件(包括登录管理器)自动降级为无网络检测模式。
方法二:替换为瞬时返回的假命令(推荐)
执行echo '#!/bin/sh\nexit 0' | sudo tee /usr/bin/nm-online && sudo chmod +x /usr/bin/nm-online。
这一步让nm-online永远立刻返回成功状态,既不中断流程,又避免误判网络失败。
调整内核网卡初始化时机
某些Realtek或Intel千兆网卡驱动在内核加载阶段耗时过长,导致NetworkManager启动时反复轮询未就绪接口。需提前触发驱动加载。
① 查看当前延迟设备:
lspci -k | grep -A 3 -i ethernet,记下驱动模块名(如r8169、e1000e)。
② 将驱动模块加入早期加载列表:
echo "r8169" | sudo tee -a /etc/modules(请将r8169替换为你实际的驱动名)。
③ 强制重建initramfs以包含该模块:
sudo update-initramfs -u。
【若系统使用dracut,则执行sudo dracut -f】
④ 重启生效:
sudo reboot。











