当前位置: 首页>>技术教程>>正文


自 16.04 以来不再有引导日志记录?

, , ,

问题描述

我注意到我的 /var/log/boot.log 文件的日期为 2016-04-22,这是我上次在 15.10 中启动时的日期。 Xenial boot.log 文件位于何处?

最佳办法

使用 journalctl

由于 journald 包含所有日志,您可以使用带有合适过滤器的 journalctl 命令。对于 boot.log ,它曾经包含来自 init 系统的消息,你可以这样做:

journalctl -b0 SYSLOG_PID=1
  • -b0 显示当前引导的消息,-b1 显示上次引导的消息,依此类推。如果没有 -b 选项,journalctl 将从日志开头显示消息。

  • SYSLOG_PID 过滤来自 PID 1 的消息,也就是 init。

或者:

journalctl -b0 --system _COMM=systemd
  • _COMM=systemd 查找来自 systemd 命令的消息。因为 systemd 是 init,所以这是我们感兴趣的。

  • --system 从系统日志而不是用户会话日志中过滤消息。

例子:

muru@muru-vm:~$ journalctl -b0 SYSLOG_PID=1
Apr 30 12:29:18 muru-vm systemd[1]: systemd 229 running in system mode. (+PA
Apr 30 12:29:18 muru-vm systemd[1]: Detected virtualization qemu.
Apr 30 12:29:18 muru-vm systemd[1]: Detected architecture x86-64.
Apr 30 12:29:18 muru-vm systemd[1]: Set hostname to <muru-vm>.
Apr 30 12:29:18 muru-vm systemd[1]: Initializing machine ID from random gene
Apr 30 12:29:18 muru-vm systemd[1]: Installed transient /etc/machine-id file
Apr 30 12:29:18 muru-vm systemd[1]: Set up automount Arbitrary Executable Fi
Apr 30 12:29:18 muru-vm systemd[1]: Listening on fsck to fsckd communication
Apr 30 12:29:18 muru-vm systemd[1]: Reached target User and Group Name Looku
Apr 30 12:29:18 muru-vm systemd[1]: Listening on udev Kernel Socket.
Apr 30 12:29:18 muru-vm systemd[1]: Started Forward Password Requests to Wal
Apr 30 12:29:18 muru-vm systemd[1]: Listening on /dev/initctl Compatibility 
Apr 30 12:29:18 muru-vm systemd[1]: Listening on Journal Socket.
Apr 30 12:29:18 muru-vm systemd[1]: Created slice User and Session Slice.
Apr 30 12:29:18 muru-vm systemd[1]: Created slice System Slice.
Apr 30 12:29:18 muru-vm systemd[1]: Starting Braille Device Support...
Apr 30 12:29:18 muru-vm systemd[1]: Mounting POSIX Message Queue File System
Apr 30 12:29:18 muru-vm systemd[1]: Mounting Debug File System...
Apr 30 12:29:18 muru-vm systemd[1]: Mounting Huge Pages File System...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Load Kernel Modules...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Uncomplicated firewall...
Apr 30 12:29:18 muru-vm systemd[1]: Starting Create list of required static 
lines 1-23

journalctl 默认情况下在寻呼机中打开日志,因此您无需通过管道传输到 less


持久日志记录

默认情况下,Ubuntu 不启用持久性日志记录。感谢 the comment by @Auspex ,您需要执行以下任一操作:

  1. 编辑 /etc/systemd/journald.conf 以包括:

    \n

    Storage=persistent\n
  2. 手动创建 /var/log/journal 目录:

    \n

    mkdir /var/log/journal\nsystemd-tmpfiles --create --prefix /var/log/journal\nsystemctl restart systemd-journald\n

有关的:

次佳办法

我正在浏览一些错误报告,并在以下报告中注意到:https://bugs.launchpad.net/ubuntu/+source/ubuntu-gnome-default-settings/+bug/1536771 Plymouth 实际上正在写入 boot.log。

如果您查看 https://launchpadlibrarian.net/257898272/plymouth-debug.log 并在浏览器中搜索 ‘boot.log’,您会得到以下几行:

[main.c:821] on_system_initialized:system now initialized, opening log 
[main.c:742] get_log_file_for_state:returning log file '/var/log/boot.log'
[main.c:805] prepare_logging:opening log '/var/log/boot.log'

我不了解 Plymouth 的内部工作原理,但由于它负责在登录屏幕之前显示的启动画面,我只能假设如果在进入登录屏幕之前没有启动画面(黑屏) , 文件没有被修改。如果您确实在登录屏幕之前显示了初始屏幕,则引导过程输出将重定向到 boot.log 文件。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/13495.html,未经允许,请勿转载。