首页/安全/取证与溯源速查/journald 启动分段定位时间跳跃
Linux 取证135 条

journald 启动分段定位时间跳跃

journalctl 按启动分段(boot)组织记录,先用 --list-boots 找到目标时段对应的 boot,再取样查看重启前后的时间衔接。

取证与溯源速查安全更新于 2026-10-13

引导周期切分

分析日志前先按引导周期切开,才能把「重启前发生了什么」和「重启后发生了什么」分开看。systemd 环境下 journalctl --list-boots 列出每次引导的序号与起止时间,再用 -b 加序号只看某一次引导的日志。

基本信息

列表命令journalctl --list-boots
取样命令journalctl -b <序号>,其中 -1 表示上一次引导
时间格式-o short-iso 输出带时区偏移的 ISO 时间
持久化条件只有启用持久化存储才保留历史引导日志
相关目录/var/log/journal 为持久化,/run/log/journal 为易失
校验价值重启时刻本身就是一个可靠的时间锚点

典型使用场景

  • 把重启前后的事件分开统计,避免混为一谈
  • 判断某次异常是否发生在更早的一次引导中
  • 用重启时刻校验两侧时间来源是否一致
  • 分析开机自启项与服务在引导阶段的加载情况
  • 输出跨引导时间线时标注周期边界

最小示例

最小示例
journalctl --list-boots | tail -5                           # 最近的引导周期
journalctl -b -1 -o short-iso --no-pager | head -20         # 上一次引导的开头
journalctl -b 0 -o short-iso --no-pager | tail -20          # 本次引导的结尾
journalctl -b -1 -u sshd --no-pager | tail -20              # 只看某个单元
uptime -s                                                   # 本次引导的起始时刻
grep 'Start-Date' /var/log/apt/history.log | tail -3        # 与包管理记录交叉核对

项目与说明

项目含义说明
引导序号0 为本次,-1 为上一次负数表示历史引导
起止时间该次引导的边界用于切分并校验时间线
-b 参数选择引导周期可与 --since 组合进一步收窄
-o short-iso时间输出格式带时区偏移,便于跨来源对齐
持久性日志是否跨重启保留易失存储下历史引导不可查
未启用持久化日志时,历史引导记录只存在于内存文件系统,重启即消失;排查前先确认 /var/log/journal 目录是否存在。
重启时刻是最有价值的时间锚点之一,可以用它校验文件系统 crtime 与日志时间两条来源是否一致。
使用 vacuum 或清理参数缩减日志体积会永久删除历史引导记录,取证阶段不要执行任何清理操作。

易错点

  • 不区分引导周期:把重启前后的日志混进同一条时间线,容易把两次事件当成一次
  • 依赖易失日志:未配置持久化时重启后就拿不到上一周期数据,采集必须及时
  • 忽略输出格式:默认时间格式不含时区信息,跨主机对齐时容易误判先后顺序
  • 用清理命令腾空间:会直接删除历史引导日志,属于不可逆的证据丢失

数据来源与参考

  • journalctl man 手册(--list-boots)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌