最直接查看历史启动日志的方式是用 journalctl -b 加启动编号(如 -1、-2),前提是系统已启用日志持久化且存在多次启动记录。

用 journalctl -b 加启动编号(如 -1、-2)是最直接的方式,前提是系统已启用日志持久化且记录了多次启动。
确认历史启动记录是否可用
执行以下命令检查基础条件:
-
sudo journalctl --disk-usage:输出非零值(如 89.2M),说明
/var/log/journal/已启用持久存储 -
journalctl --list-boots:列出类似
-2 5a7c... Wed 2026-09-13 08:22:11 CST的多行结果,代表有可查的历史启动 -
journalctl -b -1 -k | head -n 3:能输出早于
systemd[1]: Starting...的内核消息,说明 early boot 日志完整保留
按编号过滤指定启动的日志
编号从 0 开始表示本次启动,负数表示过去启动(-1 是上一次,-2 是上上次,依此类推):
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
- journalctl -b 0 或 journalctl -b:本次启动全部日志
- journalctl -b -1:上一次启动的全部日志(含内核、服务、systemd)
-
journalctl -b -1 -k:仅上一次启动的内核日志(等效于那次开机的
dmesg) - journalctl -b -2 -u sshd.service:查看倒数第二次启动中 SSH 服务的运行全过程
用 Boot ID 精确匹配某次启动
当编号不够用(比如重启频繁、编号易混淆)时,用唯一 Boot ID 更可靠:
- 先运行 journalctl --list-boots,复制某行开头的长字符串(如
5a7c3e1f9b2d4a8c9e0f1a2b3c4d5e6f) - 再执行 journalctl -b 5a7c3e1f9b2d4a8c9e0f1a2b3c4d5e6f 查该次完整日志
- 加 -k 或 -u xxx.service 可进一步限定内容类型
注意事项与常见问题
部分情况会导致编号过滤失效或结果异常:
- 若 journalctl --list-boots 只显示一行(
0),说明历史日志未持久化,需配置Storage=persistent并重启systemd-journald -
-b -1 不等于 “上次关机前的日志”——它指最近一次成功完成的
boot,若系统崩溃后强制断电重启,可能跳过记录 - 编号和 Boot ID 都只对
systemd管理的正常启动有效;UEFI 快启、内核 panic 后自动重启等场景可能不生成独立 boot 条目

















