掌握journalctl、dmesg和系统日志文件的配合使用,能全面分析Linux启动过程。首先通过journalctl -b查看本次启动日志,-b -1查看上一次,--list-boots列出所有启动记录,-u指定服务如ssh.service排查具体问题;结合-f参数实时监控日志输出。其次使用dmesg查看内核初始化阶段硬件检测与驱动加载信息,-T显示可读时间,-l过滤错误级别日志,定位硬件或驱动异常。再检查/var/log/boot.log、/var/log/messages(或syslog)、/var/log/kern.log等文件补充分析启动行为。最后结合systemd-analyze blame评估各服务启动耗时,按“内核→systemd→服务”顺序排查故障,提升诊断效率。

在Linux系统中,了解系统启动过程中的详细信息对排查启动故障、优化启动时间或确认服务加载顺序非常有帮助。系统启动流程日志记录了从BIOS/UEFI到用户空间服务初始化的全过程。掌握如何查看和分析这些日志,是系统管理员和运维人员的基本技能之一。
使用journalctl查看系统启动日志
现代Linux发行版大多使用systemd作为初始化系统,其自带的日志工具journalctl是查看启动日志最直接的方式。
- journalctl -b:显示本次开机的启动日志
- journalctl -b -1:查看上一次启动的日志(需保留日志)
- journalctl --list-boots:列出最近几次启动的ID和时间
- journalctl -b -u ssh.service:查看特定服务(如SSH)在本次启动中的日志
通过-f参数可实时跟踪启动日志:journalctl -f -b,适合在系统重启后立即监控输出。
dmesg查看内核启动消息
系统启动初期,内核会输出大量硬件检测与驱动加载信息,这些内容可通过dmesg命令查看。
- dmesg:显示完整的内核环形缓冲区日志
- dmesg | grep -i error:筛选出错误信息
- dmesg -T:显示带人类可读时间戳的日志
- dmesg -l err,crit,alert,emerg:只显示高优先级日志
这些信息能帮助判断是否出现硬件识别失败、驱动加载异常或文件系统挂载问题。
分析/boot下的启动相关日志文件
部分传统日志仍保存在/var/log目录下,可用于补充分析:
- /var/log/boot.log:某些发行版记录系统启动脚本执行情况
- /var/log/messages 或 /var/log/syslog:包含系统整体运行日志,含启动阶段信息
- /var/log/kern.log:专门记录内核消息,适合深入分析硬件和驱动问题
这些文件通常由rsyslog服务管理,格式清晰,适合用grep、tail等工具过滤关键内容。
理解系统启动阶段与日志对应关系
Linux启动流程可分为几个关键阶段,每个阶段都有对应的日志来源:
- BIOS/UEFI阶段:无操作系统日志,但可通过UEFI固件日志或串口输出查看
- Bootloader阶段(GRUB):GRUB本身不记录详细日志,但可通过配置grub.cfg开启调试模式
- 内核初始化:由dmesg和journalctl记录设备探测、内存初始化等
- systemd初始化:journalctl -b 显示各个target和服务的启动顺序与耗时
- 用户服务启动:各服务日志可在journalctl中按单元查询
使用systemd-analyze可量化启动性能:systemd-analyze blame列出各服务启动耗时,帮助定位慢启动服务。
基本上就这些。掌握journalctl、dmesg和系统日志文件的配合使用,就能全面掌握Linux启动流程的运行状态。遇到启动异常时,建议按“内核 → systemd → 服务”顺序逐步排查,效率更高。










