使用 journalctl -b 结合时间范围、服务单元和优先级筛选可聚焦初始化阶段关键日志,该阶段指内核加载至 multi-user.target 就绪的前2–3分钟,推荐命令如 journalctl -b --since "boot" -u systemd -u kernel -p err..notice。

使用 journalctl -b 可查看自本次系统启动以来的所有日志,但要聚焦“初始化阶段关键日志”,需结合时间范围、服务单元和优先级进一步筛选。
明确“初始化阶段”的时间窗口
系统初始化通常指从内核加载到多用户目标(multi-user.target)就绪的时段。该阶段日志集中在启动早期,一般在启动后前 2–3 分钟内。可借助 --since 和 --until 限定大致时间:
-
journalctl -b --since "1 minute ago"—— 快速查看最近一分钟的日志(适合刚启动后排查) -
journalctl -b --since "boot"—— 等价于-b,默认从本次启动开始 - 若已知启动完成时间(如
systemd报告的启动耗时),可用具体时间点:--since "2024-05-20 08:12:00"
按关键服务单元过滤初始化日志
初始化阶段核心服务包括 systemd、kernel、udev、systemd-journald,以及基础 target 单元。推荐组合命令:
-
journalctl -b -u systemd -u kernel -u systemd-udevd -u systemd-journald -p err..notice—— 聚焦核心单元,只显示 notice 级及以上(含 warning、err)的日志 -
journalctl -b -t kernel—— 单独查看内核启动日志(含硬件检测、驱动加载) -
journalctl -b -u multi-user.target --no-pager—— 查看该 target 启动完成的确认日志,常含“Started Multi-User System”等提示
识别真正关键的初始化事件
以下几类日志行值得重点关注(可配合 grep):
-
失败服务:含
Failed to start、Unit xxx.service failed -
超时等待:含
Timed out waiting for、Dependency failed -
硬件异常:内核日志中
ACPI Error、PCIe Bus Error、ataX.00: failed command -
systemd 启动统计:运行
systemd-analyze blame或systemd-analyze critical-chain辅助定位慢启动环节
实用技巧提升排查效率
避免信息过载,建议按需使用这些选项:
-
--no-pager:禁用分页器,方便管道处理(如配合grep) -
-n 100:仅显示最后 100 行,快速定位末尾错误 -
--output=short-monotonic:用单调时间戳(启动后毫秒数),更直观判断初始化顺序 journalctl -b -o json | jq 'select(.PRIORITY —— 用 <code>jq提取 error 级(数值 3)及更严重日志


















