在 Linux 中,dmesg 用于显示内核环形缓冲区(kernel ring buffer)的日志。将 dmesg 日志导出到文件有多种方式,下面按常见场景说明。
dmesg > dmesg.log
或
dmesg | tee dmesg.log
(tee 会同时显示并保存)
dmesg -T > dmesg.log
示例输出:
[Fri Jun 21 10:32:11 2024] usb 1-1: new high-speed USB device
dmesg -t > dmesg.log
某些系统普通用户无法读取 dmesg:
sudo dmesg > dmesg.log
或
sudo dmesg -T > dmesg.log
如果内核启用了 printk 持久化(较新 systemd 系统):
sudo journalctl -k > dmesg_last_boot.log
或指定某次启动:
sudo journalctl -k -b -1 > dmesg_prev_boot.log
-b -1:上一次启动-b -2:再上一次sudo dmesg -w > dmesg_live.log
(-w = watch,实时跟踪内核日志)
按 Ctrl+C 停止。
sudo dmesg -T | gzip > dmesg.log.gz
查看:
zcat dmesg.log.gz
dmesg 只显示内核启动后的日志dmesg 内容会清空(除非用 journald)dmesg: read kernel buffer failed: Operation not permittedsudo sysctl kernel.dmesg_restrict=0
如果你告诉我:
我可以给你更精确的命令。