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

jas*_*nes 26 boot logging log 16.04

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

mur*_*uru 34

journalctl

由于journald包含所有日志,您可以使用journalctl带有合适过滤器的命令。在boot.log, 曾经包含来自 init 系统的消息的情况下,您可以执行以下操作:

journalctl -b0 SYSLOG_PID=1
Run Code Online (Sandbox Code Playgroud)
  • -b0显示来自当前引导、-b1上次引导等的消息。如果没有该-b选项,journalctl将从日志的开头显示消息。
  • SYSLOG_PID 过滤来自 PID 1(又名 init)的消息。

或者:

journalctl -b0 --system _COMM=systemd
Run Code Online (Sandbox Code Playgroud)
  • _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
Run Code Online (Sandbox Code Playgroud)

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


持久日志记录

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

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

    Storage=persistent
    
    Run Code Online (Sandbox Code Playgroud)
  2. /var/log/journal手动创建目录:

    mkdir /var/log/journal
    systemd-tmpfiles --create --prefix /var/log/journal
    systemctl restart systemd-journald
    
    Run Code Online (Sandbox Code Playgroud)

有关的:

  • journalctl 没有显示我在启动时看到的启动画面,我需要那个 (3认同)

小智 3

我正在查看一些错误报告并在其中注意到: https: //bugs.launchpad.net/ubuntu/+source/ubuntu-gnome-default-settings/+bug/1536771普利茅斯实际上正在写入 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'
Run Code Online (Sandbox Code Playgroud)

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

  • 我确认在`/etc/default/grub`中配置`GRUB_CMDLINE_LINUX_DEFAULT=""`时不会写入`boot.log`。当使用 `GRUB_CMDLINE_LINUX_DEFAULT="quiet Splash"` 时,会再次写入 `boot.log`。我使用Ubuntu 19.04。 (3认同)