dmesg

dmesg 用来显示或控制内核环缓冲区(kernel-ring buffer)的内容。

在开机系统引导 (boot) 阶段,内核将与硬件和模块初始化相关的信息填到这个缓冲区中。这些消息也存在 /var/log/dmesg 文件里。

dmesg 命令会直接输出所有消息。使用 dmesg -H 来滚屏阅读更方便。

Kernel Ring Buffer

Kernel Ring Buffer 由一块内存区域和两个指针组成,其中一个指向缓冲区的起始位置,另一个则指向当前可写入的位置。当缓冲区满时,新的消息将从缓冲区的起始位置覆盖旧的消息。

Kernel Ring Buffer 的大小是由内核启动参数 log_buf_len 决定的,它指定了内核环形缓冲区的最大大小。 默认情况下,log_buf_len 的值为 16KB 或 1/12 的物理内存大小(以较小者为准)。

dmesg -n 64K 可以将 Kernel Ring Buffer 的大小设为 64KB。