journalctl -b -1 查看上一次启动日志,其中 -b 表示 boot,-1 是 systemd 分配的启动序号(非时间偏移);需先确认持久化配置(Storage=persistent)并存在 /var/log/journal/,否则旧日志可能丢失。

用 journalctl -b -1 就能查看上一次开机以来的所有日志。
为什么是 -b -1,而不是其他写法
“-b”代表 boot(启动),后面跟数字表示第几次启动:
- -b 或 -b 0:本次启动(默认)
- -b -1:上一次启动
- -b -2:上上次启动
注意:这里的“-1”不是时间偏移,而是启动序号,由 systemd 自动编号,和系统重启次数直接对应。
先确认有没有上一次启动的日志记录
有些系统默认不持久化日志,重启后旧日志就丢了。运行下面命令检查:
journalctl --list-boots
如果输出为空或只有一行(当前启动),说明上一次的日志已被清除。此时需要确保:
-
/var/log/journal/ 目录存在(不存在可手动创建:
sudo mkdir -p /var/log/journal) - 配置已启用持久化:
Storage=persistent在/etc/systemd/journald.conf中 - 改完配置后重启日志服务:
sudo systemctl restart systemd-journald
查看时加点实用参数更高效
单独用 journalctl -b -1 会输出全部内容,容易刷屏。建议组合使用:
-
只看错误和严重问题:
journalctl -b -1 -p err -
限制显示最后 100 行:
journalctl -b -1 -n 100 -
导出到文件方便分析:
journalctl -b -1 > last-boot.log -
过滤某个服务在上次启动的表现:
journalctl -b -1 -u sshd.service
内核日志也包含在内,但可单独提取
journalctl -b -1 默认含内核、systemd、所有服务日志。如果只想聚焦硬件初始化、驱动加载等底层信息,加 -k:
journalctl -b -1 -k
这等效于用 dmesg 查看上一次启动的内核环缓冲区内容,但更可靠——因为 journald 记录的是完整、未被冲刷过的启动期内核消息。


















