在 Linux 中,dmesg 可以查看内核环形缓冲区中的消息,很多硬件错误(Hardware Error)会被内核记录到其中(尤其是 CPU、内存、PCIe、电源、磁盘控制器等)。下面按实用方法 → 常见错误类型 → 示例 → 进阶工具来讲。
dmesg
dmesg -T | grep -i error
-T:显示人类可读时间-i:忽略大小写dmesg -T | grep -iE "hardware|error|fail|pci|memory|cpu|mce"
mce: [Hardware Error]: Machine check events logged
查看详细 MCE 信息:
dmesg | grep -i mce
或:
mcelog --ascii < /dev/mcelog
pcieport 0000:00:1c.0: AER: Corrected error received
过滤 PCIe 错误:
dmesg -T | grep -i pci
ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x0
ata1.00: failed command: READ DMA
查看磁盘错误:
dmesg -T | grep -i ata
CPU0: Core temperature above threshold
或:
dmesg -T | grep -i cpu
ACPI Error: Method parse/execution failed
查看:
dmesg -T | grep -i acpi
dmesg -T -l err,warn
级别说明:
emergalertcriterrwarndmesg -wT | grep -i error
或:
watch "dmesg -T | tail -n 50"
dmesg -s 1048576
journalctl -k | grep -i error
或:
journalctl -k -p err
| 工具 | 用途 |
|---|---|
mcelog |
CPU / 内存 MCE |
edac-util |
ECC 内存错误 |
smartctl |
磁盘健康 |
lspci -vvv |
PCIe 设备状态 |
rasdaemon |
统一硬件错误收集 |
例如:
edac-util -v
smartctl -a /dev/sda
dmesg -T -l err,warn | grep -iE "hardware|mce|pci|memory|cpu|ata|acpi"
如果你愿意,可以:
dmesg 报错片段