首页 > 系统相关 >Linux系统启动慢/无法启动的排查方法

Linux系统启动慢/无法启动的排查方法

时间:2024-11-19 16:45:49浏览次数:3  
标签:系统启动 服务 GRUB 启动 排查 内核 Linux 日志

Linux系统启动慢或无法启动的问题,通常需要综合考虑硬件、内核、服务配置等多方面因素进行排查。以下是详细的排查步骤和方法:


1. 硬件检查

  • 确认硬件状态:

    检查硬盘、内存、CPU等是否正常,特别是硬盘是否存在坏道(使用smartctl 检测)。

smartctl -a /dev/sdX
  • 拔插外部设备:

    移除多余的外接设备(如USB设备)以排除外部硬件的影响。

  • 检查硬盘接口:

    确认BIOS/UEFI设置中硬盘的接口模式(如AHCI)。


2. GRUB阶段

  • 检查GRUB配置文件:

    在启动菜单中按e 编辑启动项,确认引导参数是否正确(如根分区、内核版本等)。

  • 引导日志查看:

    启动时在GRUB中添加debugrescue 模式,排查引导是否卡在某个环节。


3. 单用户模式启动

  • 进入单用户模式:

    在GRUB中编辑启动项,添加singleinit=/bin/bash

  • 文件系统检查:

    使用fsck 修复可能损坏的文件系统。

fsck /dev/sdXn
  • 检查磁盘挂载问题:

    如果/etc/fstab 中配置错误,可能导致启动挂起。可以临时注释可疑挂载项。


4. 系统服务排查

  • 查看启动日志:

    使用journalctl 查看系统日志,定位启动慢或失败的具体服务。

journalctl -b
  • 分析启动耗时:

    使用systemd-analyze 查看启动总耗时。

systemd-analyze
  • 使用systemd-analyze blame 找出耗时最长的服务。

systemd-analyze blame
  • 禁用无用服务:

    对耗时过长或无关的服务进行禁用。

systemctl  disable 服务名

5. 核心组件检查

  • 内核模块加载问题:

    检查内核模块是否加载失败或冲突(dmesg 查看内核日志)。

  • 驱动兼容性问题:

    更新或回滚内核,使用稳定版本。

  • 启动参数优化:

    在GRUB配置中优化内核启动参数,例如quietnomodesetnosplash 等。


6. 网络配置

  • DNS或网络挂起:

    网络服务配置错误可能导致启动卡住,检查/etc/resolv.conf 和网络服务状态。

  • 禁用网络服务测试:

    临时禁用网络相关服务,排查是否因网络导致启动慢。

systemctldisable NetworkManager

7. 文件系统和磁盘IO

  • 磁盘性能问题:
    使用iotopiostat 检查磁盘IO负载。
    • 安装工具:
yum install sysstat -y
    • 运行:

iostat -x
  • 过多文件碎片:

    定期清理临时文件目录/tmp/var/tmp


8. 排查启动脚本

  • 查看启动过程输出:

    移除启动参数中的quiet,让内核打印详细启动日志。

  • 逐步启用服务:

    使用systemctl 单独启动服务,排查哪个服务导致问题。


9. 日志分析

  • 日志文件位置:
    • 内核日志:/var/log/dmesg

    • 系统日志:/var/log/messages/var/log/syslog

    • 系统启动日志:journalctl -b

  • 关键错误排查:

    搜索错误或超时关键字(如errorfailedtimeout)。

grep -i"error" /var/log/messages

10. 系统恢复措施

  • 备份重要数据:

    使用LiveCD或救援模式挂载磁盘并备份数据。

  • 重装引导程序:

    如果GRUB损坏,可以使用以下命令重新安装:

grub2-install /dev/sdX grub2-mkconfig -o /boot/grub2/grub.cfg
  • 重建initramfs:

    如果initramfs损坏,可以重新生成:

dracut -f

11. 优化建议

  • 精简启动服务:

    关闭无用服务,优化开机速度。

  • 定期清理系统:

    清理旧日志和缓存文件,释放磁盘空间。

  • 升级或回滚系统组件:

    使用稳定版本的内核、驱动和关键服务。

阅读 23

标签:系统启动,服务,GRUB,启动,排查,内核,Linux,日志
From: https://blog.csdn.net/qq_24442273/article/details/143889969

相关文章

  • 从0开始学习Linux——Shell编程详解【01】
    期目录:从0开始学习Linux——简介&安装从0开始学习Linux——搭建属于自己的Linux虚拟机从0开始学习Linux——文本编辑器从0开始学习Linux——Yum工具从0开始学习Linux——远程连接工具从0开始学习Linux——文件目录从0开始学习Linux——网络配置从0开始学习Linux——防......
  • 【Linux】线程ID与互斥、同步(锁、条件变量)
      ......
  • linux学习day02_linux文件权限以及目录配置
    1、文件拥有者:文件的主人  群组:文件的共享者组成的集合    其他人:others 在我们Linux系统当中,默认的情况下,所有的系统上的帐号与一般身份使用者,还有那个root的相关信息,都是记录在/etc/passwd这个文件内的。至于个人的密码则是记录在/etc/shadow这个文件下。此......
  • Linux常用命令之tar命令详解
    tar命令详解tar(TapeArchive)是Unix和Linux系统中一个非常强大的文件归档工具,用于创建、提取和管理归档文件。归档文件可以包含一个或多个文件和目录,常用于备份、存档和传输数据。tar支持多种压缩方式,如gzip、bzip2和xz。基本语法tar[选项][归档文件][文件或......
  • Linux系统怎么通过端口号查找完整进程
    需求已知某进程启动了一个端口号,怎么才能知道改进程的完整启动命令查找过程例如本机已经启动了8006端口通过端口PID可以查看到改端口启动的进程PID是6120#lsof-i:8006COMMANDPIDUSERFDTYPEDEVICESIZE/OFFNODENAMEpt_main_t6120xiaoxing93u......
  • 【Linux】进程的基本概念
    目录一、进程概念的推导二、描述进程(PCB)2.1task_struct2.2task_struct内容2.2.1task_struct内容分类2.2.2PID(进程ID)2.2.3PPID(父进程的进程ID)三、查看进程四、进程的创建4.1命令行直接启动进程4.2通过代码来创建进程4.2.1通过fork函数来创建进程4.2.2fork函数......
  • 适应等保的Windows系统和Linux系统安全加固V1.2.0版本
    《Web安全》http://mp.weixin.qq.com/s?__biz=MzkwNjY1Mzc0Nw==&mid=2247484238&idx=1&sn=ca66551c31e37b8d726f151265fc9211&chksm=c0e47a12f793f3049fefde6e9ebe9ec4e2c7626b8594511bd314783719c216bd9929962a71e6&scene=21#wechat_redirect《网安面试指南》http:/......
  • linux常用命令(解压,压缩)
    目录1. tar -归档文件常用参数示例2. gzip -压缩单个文件常用参数示例3. bzip2 -压缩单个文件常用参数示例4. zip -压缩文件和目录常用参数示例5. unzip -解压.zip文件常用参数示例1. tar -归档文件tar是一个非常强大的工具,不仅可以打包......
  • linux常用命令(文件操作)
    目录1. ls -列出目录内容2. cd -更改目录3. pwd -打印当前工作目录4. mkdir -创建目录5. rm -删除文件或目录6. cp -复制文件或目录7. mv -移动或重命名文件8. touch -更新文件访问和修改时间9. cat -显示文件内容10. grep -搜索文本......
  • linux C高级(持续更新中)
    linux介绍1.1.不同操作系统的内核:windows-NTubuntu-linuxAndroid-linuxmacOsios-unix1.2.查看系统版本查看操作系统版本lsb_release-a或者-rcat/etc/issue--->文件中查看查看内核版本uname-a或者-rcat/proc/version--->文件中查看1.3.......