dmesg
(display message或者driver message)是Linux下用于显示内核启动信息和运行时状态的命令。它从内核环形缓冲区中读取消息并显示在终端上。这些消息对于诊断硬件和软件问题非常有帮助。解读dmesg
日志中的内核消息需要了解一些基本概念和关键字。
以下是一些常见的关键词和概念:
解读dmesg
日志时,需要关注以下几点:
以下是一个简化的dmesg
日志示例:
[ 0.000000] Initializing cgroup subsys cpuset
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Linux version 5.4.0-42-generic (buildd@lgw01-amd64-039) (gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.4.0-42-generic root=UUID=xxxx-xxxx-xxxx-xxxx-xxxx rootflags=ro quiet splash vt.handoff=7
[ 0.000000] KERNEL supported cpus:
[ 0.000000] Intel GenuineIntel
[ 0.000000] AMD AuthenticAMD
[ 0.000000] Centaur CentaurHauls
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
[ 0.000000] x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
...
[ 0.200000] ACPI: Added _OSI(Module Device)
[ 0.200000] ACPI: Added _OSI(Processor Device)
[ 0.200000] ACPI: Added _OSI(3.0 _SCP Extensions)
...
[ 0.300000] ACPI: Executed 1 blocks of module-level executable AML code
[ 0.300000] ACPI: Executed 1 blocks of method AML code
[ 0.400000] ACPI: Enabled 3 GPEs in block 00000080-0000008F
...
[ 1.000000] NET: Registered protocol family 2
[ 1.000000] tcp_listen_portaddr_hash hash table entries: 8192 (order: 4, 65536 bytes)
[ 1.000000] TCP established hash table entries: 32768 (order: 5, 131072 bytes)
...
[ 1.000000] MPTCP hash table entries: 8192 (order: 4, 65536 bytes)
[ 1.000000] MPTCP built-in socket
[ 1.000000] NET: Registered protocol family 10
...
在这个示例中,我们可以看到内核版本、命令行参数、支持的CPU类型等信息。同时,我们还可以看到一些与网络相关的消息,例如注册协议族、TCP哈希表条目等。
总之,解读dmesg
日志需要对Linux内核有一定的了解,关注关键字和概念,并结合实际情况进行分析。在遇到问题时,可以尝试搜索特定的关键字或错误代码,以找到解决方案。