/var/log/dmesg
是一个有用的启动时dmesg
转储。我在 Ubuntu 16.04 中再也找不到它了。它在别的地方吗?
(/var/log/kern.log*
是有限的;它只在日志守护进程运行后捕获内核消息。此外,找到上次启动发生的正确的 kern.log.X.gz 文件也很麻烦。(它也可能已经被旋转掉了。))
答案1
要显示上次启动的输出,您仍然可以使用该命令dmesg
。
但是,Ubuntu 16.04(实际上所有 Ubuntu >=15.04)使用systemd
具有日志守护进程journald
和一个可以高度灵活地访问记录数据的接口:journalctl
。您可以看到上次启动的日志,相当于dmesg
:
journalctl -k
-k, --dmesg
仅显示内核消息。这意味着 -b 并添加匹配“_TRANSPORT=kernel”
dmesg
过去 2 小时内的所有输出
journalctl -k --since "2 hours ago"
自上次启动以来的所有日志
journalctl -b
在日记中列出靴子
journalctl --list-boots
要设置持久日志记录,您需要配置journald
- 默认情况下,其日志会非持久地写入/run/systemd/journal
(二进制文件 - 尝试读取它没有用)并且在当前启动之前没有可用数据。要设置持久日志记录,请编辑文件/etc/systemd/journald.conf
并取消注释该行#Storage=auto
并更改auto
为persistent
。使用您最喜欢的文本编辑器或
sudo sed -i.bak 's/#Storage=auto/Storage=persistent/' /etc/systemd/journald.conf
然后你必须重新启动服务(或重启)
sudo systemctl restart systemd-journald
启用持久日志记录后,您将来可以使用所有功能,journalctl
例如,查看当前启动之前的启动信息
journalctl -b -2
看相关页面精彩的<3 Arch Wiki <3 提供了更多使用技巧和窍门journalctl