journalctl是systemd的日志管理工具,可集中查看系统启动时的所有日志(包括内核、服务启动、用户空间进程等)。常用命令如下:
journalctl -b(若需查看指定启动次数,如第2次启动,用journalctl -b -1)。journalctl -f(启动后立即运行,可实时查看服务启动状态)。journalctl -k(仅显示内核环缓冲区中的启动信息,如硬件检测、驱动加载)。journalctl -u 服务名.service(如journalctl -u NetworkManager.service,查看特定服务的启动日志)。systemd-analyze可统计启动时间、识别耗时服务,帮助优化启动速度。常用命令:
systemd-analyze time(输出内核启动时间、用户空间启动时间及总时间,如Startup finished in 7.356s (kernel) + 3min 9.863s (userspace) = 3min 17.219s)。systemd-analyze blame(按启动时间排序,显示最耗时的服务,如某服务占用1分钟,则需重点检查)。systemd-analyze critical-chain(显示启动过程中的关键依赖链,如图形界面启动依赖的服务)。systemd-analyze plot > boot.svg(生成SVG格式的时间线图,可视化启动过程)。dmesg命令可查看内核环缓冲区中的启动信息,涵盖硬件检测、驱动加载、分区挂载等底层过程。常用命令:
dmesg(输出较长,建议结合less或grep过滤,如dmesg | less)。dmesg | grep -i error(查找内核启动时的错误,如驱动加载失败)。dmesg --since "1 minute ago"(查看最近1分钟的内核日志,适用于实时分析)。Ubuntu的/var/log目录下有多个与传统启动相关的日志文件,可通过文本工具查看:
grep过滤启动时间,如grep "startup" /var/log/syslog)。dmesg内容类似,但以文本形式存储,便于长期保存。若需在启动时实时查看详细日志,可通过GRUB修改内核参数:
ESC进入GRUB菜单,选择启动项后按e编辑,在linux行末尾添加systemd.show_status=1或loglevel=3,按F10启动(会显示详细的服务启动状态)。/etc/default/grub,在GRUB_CMDLINE_LINUX中添加上述参数,运行sudo update-grub生效。通过以上方法,可全面分析Ubuntu系统启动过程中的服务状态、性能瓶颈及底层硬件/驱动问题,快速定位启动异常。