Linux 启动卡在某服务问题解决

6次阅读

linux启动卡在某服务主因是服务失败、依赖缺失、配置错误或资源冲突,系统默认等待90秒;应通过journalctl查错、systemctl–failed定位,并在grub中临时用systemd.mask=xxx.service跳过以进入系统修复。

Linux 启动卡在某服务问题解决

Linux 启动卡在某个服务,通常是因为该服务启动失败、依赖未满足、配置错误或资源冲突,系统默认等待超时(常见为90秒)后才继续或报错。关键不是跳过它,而是定位并修复根本原因。

查看卡住时的实时日志

启动过程中按 Ctrl+Alt+F2~F6 切换到 TTY 终端,登录后执行:

  • journalctl -b -p 3:查看本次启动中所有优先级为“Error”及以上的日志
  • journalctl -b | grep -i “failed|timeout|dependency”:快速筛选失败或超时关键词
  • systemctl –failed:列出当前已加载但启动失败的服务(需成功进入系统后运行)

临时跳过问题服务以进入系统

若无法进入系统,可在 GRUB 启动菜单中临时干预:

  • 启动时长按 Shift(BIOS)或按 Esc(UEFI)调出 GRUB 菜单
  • 选中内核条目,按 e 编辑启动参数
  • 找到以 linux 开头的行,在末尾添加: systemd.unit=multi-user.target(跳过图形界面)或 systemd.mask=xxx.service(如 systemd.mask=NetworkManager-wait-online.service
  • Ctrl+XF10 启动

常见卡住服务及处理方式

以下服务较常引发启动阻塞,可针对性检查:

  • NetworkManager-wait-online.service:等待网络就绪。若无有线连接或 DHCP 响应慢,会卡住。可禁用:sudo systemctl disable NetworkManager-wait-online.service
  • docker.servicecontainerd.service:镜像损坏、存储驱动异常、/var/lib/docker 权限错误。尝试重置:sudo rm -rf /var/lib/docker(注意备份)再重启服务
  • lvm2-monitor.servicemdmonitor.service:LVM/RAID 设备识别异常。检查 sudo pvscan; sudo vgscan; sudo lvscan 是否正常,确认物理磁盘是否在线
  • iscsi.service:试图挂载不可达的 iSCSI 目标。检查 /etc/iscsi/nodes/ 下配置,或禁用:sudo systemctl disable iscsi

修复后验证与预防

修复配置或禁用问题服务后,建议:

  • sudo systemctl daemon-reload 重载 unit 文件
  • sudo systemctl start xxx.service 手动测试服务能否正常启动
  • sudo systemctl enable xxx.service 恢复启用(如确认已修复)
  • 更新 initramfs:sudo update-initramfs -udebian/ubuntu)或 sudo dracut -f(RHEL/centos/Fedora)
text=ZqhQzanResources