journalctl -b -k 是查看本次启动内核日志最直接方式,等效 dmesg;-b 后接序号或 boot ID 可查历史启动,--list-boots 列出所有启动记录。

用 journalctl 查看内核启动日志,关键是筛选出 系统首次启动时的内核消息,而不是当前会话或近期的日志。默认情况下 journalctl 会显示所有日志,但内核启动信息(即 dmesg 类似的内容)集中在 boot 阶段,需配合特定参数过滤。
查看本次启动的内核日志
最常用也最直接的方式是查看当前 boot 的内核日志:
-
journalctl -b:显示本次启动的所有日志(含内核、systemd、服务等) -
journalctl -b | grep -i "kernel\|boot\|firmware":快速筛选含内核相关关键词的行 -
journalctl -b -k:专门只显示内核日志(kernel ring buffer 内容),等效于传统dmesg输出,但由 journald 管理
查看上一次或指定启动的日志
如果系统重启过多次,可通过 boot ID 或序号定位特定启动:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
journalctl --list-boots:列出所有已记录的启动会话及其 ID 和时间范围 -
journalctl -b -1:查看上一次启动的日志(-2 是上上次,依此类推) -
journalctl -b <boot-id>:用--list-boots中看到的 boot ID 精确查询某次启动
聚焦早期内核初始化过程
内核启动初期(如硬件探测、驱动加载、initrd 阶段)的日志可能被后续消息冲刷,journalctl 默认保留完整内容,但要注意:
- 确保
systemd-journald已启用且日志未被轮转清空(检查/var/log/journal/是否存在) - 若需更底层信息(如 UEFI 固件输出、ACPI 表解析),可加
-o verbose查看原始字段,或结合journalctl -b -k -o cat去掉时间戳和优先级前缀,让输出更接近dmesg -T - 某些嵌入式或最小化系统可能禁用了 journald,此时需依赖
dmesg或串口日志
实用技巧与注意事项
提升排查效率的小方法:
- 用
journalctl -b -k -S "10 minutes ago"限制时间范围,避免滚动过多历史 -
journalctl -b -k --since "2024-05-20 08:00:00"按绝对时间筛选 - 加
--no-pager直接输出到终端(适合脚本处理),或管道给less分页浏览 - 注意:
-k参数仅过滤 kernel 日志,但不包括 early boot 的 firmware messages(如 Intel microcode 加载),这类信息通常在-b全量日志里,需手动搜索

















