/var/log/dmesg 的功能在 xenial 16.04 中去了哪里?

Rob*_*mer 9 kernel logging dmesg 16.04

/var/log/dmesg是一个有用的启动时间dmesg转储。我在 Ubuntu 16.04 中再也找不到了。是别的地方吗?

/var/log/kern.log*是有限的;它仅在日志守护程序运行后才捕获内核消息。此外,找到上次启动发生的正确 kern.log.X.gz 文件很麻烦。(它也可能已被轮换。))

Zan*_*nna 19

要显示上次启动的输出,您仍然可以使用命令dmesg

然而,Ubuntu 16.04(实际上所有 Ubuntus >=15.04)使用systemd它有一个日志守护进程,journald以及一个可以高度灵活地访问日志数据的接口:journalctl. 您可以看到相当于上次启动的日志dmesg

journalctl -k
Run Code Online (Sandbox Code Playgroud)

journalctl手册页

-k, --dmesg仅显示内核消息。这意味着 -b 并添加匹配“_TRANSPORT=kernel”

dmesg过去 2 小时内的所有输出

journalctl -k --since "2 hours ago"
Run Code Online (Sandbox Code Playgroud)

自上次启动以来的所有日志

journalctl -b
Run Code Online (Sandbox Code Playgroud)

在日志中列出靴子

journalctl --list-boots
Run Code Online (Sandbox Code Playgroud)

要设置持久日志记录,您需要配置journald- 默认情况下,其日志非持久地写入/run/systemd/journal(二进制文件 - 尝试读取它没有用)并且在当前启动之前没有可用的数据。要设置持久日志记录,请编辑文件/etc/systemd/journald.conf并取消注释该行#Storage=auto并更改autopersistent. 使用您喜欢的文本编辑器或

sudo sed -i.bak 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
Run Code Online (Sandbox Code Playgroud)

然后您必须重新启动服务(或重新启动)

sudo systemctl restart systemd-journald
Run Code Online (Sandbox Code Playgroud)

启用持久日志记录后,您将来可以使用完整功能,journalctl例如,查看当前启动之前的启动信息

journalctl -b -2
Run Code Online (Sandbox Code Playgroud)

有关使用的更多提示和技巧,请参阅精彩 <3 Arch Wiki <3的相关页面journalctl