在 Linux 中,dmesg 用于查看**内核环形缓冲区(kernel ring buffer)**的日志,通常包含系统启动信息、硬件检测、驱动加载、内核错误等。
下面按常见场景说明怎么看。
dmesg
某些系统普通用户无权访问:
sudo dmesg
dmesg -w
# 或
watch dmesg
dmesg -T
示例:
[Tue Oct 10 14:22:31 2024] usb 1-1: new high-speed USB device
dmesg --level=err,warn
常见级别:
emergalertcriterrwarnnoticeinfodebugdmesg | tail -n 50
dmesg | grep -i error
dmesg | grep -i usb
dmesg | grep -i eth
dmesg | grep -i sd
dmesg -T | less
dmesg:内核启动后的实时内核日志/var/log/dmesg:系统启动时保存的 dmesg 副本journalctl:systemd 系统日志(包含 dmesg)查看内核日志(systemd 系统):
journalctl -k
journalctl -k -b # 当前启动
dmesg: read kernel buffer failed: Operation not permitted解决:
sudo dmesg
或修改权限(不推荐):
sysctl kernel.dmesg_restrict=0
用过滤 + 时间:
dmesg -T | grep -i "nvme"
如果你有具体想查的问题(如 USB 不识别、网卡异常、OOM、硬盘报错),可以告诉我,我帮你写对应的 dmesg 排查命令。