CentOS dmesg日志中常见错误代码及解析
ACPI Error: AE_NOT_FOUND
解读:ACPI(高级配置与电源接口)在评估某个对象时未找到对应项,常见于硬件与BIOS配置不兼容(如新硬件未在BIOS中启用)或ACPI表损坏。
示例:[ 0.000000] ACPI Error: AE_NOT_FOUND, While evaluating Null (20200831/psparse-542)
排查:进入BIOS检查硬件配置(如SATA模式、USB控制器是否开启),更新BIOS至最新版本。
i8042: PNP: No PS/2 controller found
解读:未检测到PS/2控制器(负责键盘、鼠标输入),可能是键盘/鼠标未正确连接、控制器硬件故障或驱动缺失。
示例:[ 0.000000] i8042: PNP: No PS/2 controller found.
排查:检查外设物理连接(更换USB/PS/2接口),尝试使用外接USB键盘/鼠标测试。
ata1: SATA max UDMA/133 abar m2048@0xf6000000 port 0xf680 irq 45
解读:SATA控制器初始化信息(非错误,但需关注后续是否有error或fail关键字)。若后续出现ataX: softreset failed或link down,则表示硬盘连接故障。
示例:[ 1.234567] ata1: SATA max UDMA/133 abar m2048@0xf6000000 port 0xf680 irq 45
排查:若出现失败信息,检查SATA数据线、电源线连接,更换线缆测试。
Out of memory: Killed process 12345 (python)
解读:系统内存耗尽,触发OOM Killer(内存杀手)终止进程以释放内存。常见于内存不足、进程内存泄漏(如Python脚本未释放内存)。
示例:[ 1234.567890] Out of memory: Killed process 12345 (python) total-vm:1234567kB
排查:用free -m查看内存使用情况(重点关注available列),用top找出内存占用高的进程(按M排序),优化进程或增加内存。
Memory allocation failed
解读:内存分配失败,可能是物理内存不足、虚拟内存(Swap)耗尽或内存泄漏。
示例:[ 567.890123] kmalloc: memory allocation failed: size=1048576
排查:用free -m检查内存和Swap使用情况,若Swap已满,可添加Swap分区(fallocate -l 2G /swapfile→chmod 600 /swapfile→mkswap /swapfile→swapon /swapfile);若为内存泄漏,需重启相关服务或修复程序。
modprobe: fatal: module aufs not found
解读:尝试加载aufs(高级多层统一文件系统)内核模块失败,说明模块未安装或内核不支持。常见于需要aufs的容器或虚拟化场景(如Docker)。
示例:[ 2.345678] modprobe: fatal: module aufs not found in directory /lib/modules/$(uname -r)
排查:安装对应内核版本的aufs模块(yum install kernel-devel-$(uname -r)→编译安装aufs),或改用其他支持的文件系统(如overlay2)。
[drm:intel_modeset_init [i915]] ERROR Failed to initialize intel modesetting
解读:Intel集成显卡驱动初始化失败,可能是驱动版本不兼容、内核更新后未更新驱动或显卡硬件故障。
示例:[ 3.456789] [drm:intel_modeset_init [i915]] *ERROR* Failed to initialize intel modesetting
排查:更新Intel显卡驱动至最新版本(yum install xorg-x11-drv-intel),或回滚内核至之前稳定的版本。
e1000e: eth0: link is not ready
解读:Intel千兆网卡(e1000e驱动)链路未就绪,可能是网线未连接、网卡故障或交换机端口问题。
示例:[ 4.567890] e1000e: eth0: link is not ready
排查:检查网线连接(更换网线、接口),用ip link show eth0查看网卡状态(若state UP但link not ready,可能是驱动问题,更新驱动)。
NETDEV WATCHDOG: eth1: transmit timed out
解读:网卡(eth1)发送数据超时,可能是网络拥塞、网卡硬件故障或驱动bug。
示例:[ 789.012345] NETDEV WATCHDOG: eth1: transmit timed out
排查:检查网络连接(用ping测试连通性),更新网卡驱动(yum update e1000e),或更换网卡测试。
EADDRINUSE: Address already in use
解读:端口已被占用,常见于多个服务绑定同一端口(如两个Apache实例都绑定80端口)。
示例:bind: Address already in use(对应errno=EADDRINUSE)
排查:用netstat -tulnp | grep :80或ss -tulnp | grep :80查看占用端口的进程,杀掉冲突进程(kill -9 <PID>)或修改服务端口。
ENODEV: No such device
解读:指定的设备不存在,可能是硬件未连接、设备名称错误或驱动未加载。
示例:[ 5.678901] scsi_hostadapter: device not found (ENODEV)
排查:检查硬件连接(如USB设备、SATA硬盘),用lsblk或fdisk -l查看设备是否存在,加载对应驱动(modprobe <driver_name>)。
ENOMEM: Cannot allocate memory
解读:内存不足,无法完成操作(如分配大块内存、创建进程)。
示例:[ 901.234567] kmalloc: Cannot allocate memory (ENOMEM)
排查:用free -m查看内存使用情况,关闭不必要的进程释放内存,或增加系统内存。
[ 1234.567890] CPU0: Core temperature above threshold, cpu clock throttled (total events = 123)sensors命令查看CPU温度(coretemp-isa-0000),清理风扇灰尘(用毛刷+压缩空气),检查散热片是否松动,必要时更换风扇。[ 567.890123] power_supply BAT0: failed to update statusupower -i /org/freedesktop/UPower/devices/battery_BAT0查看电池健康状态(health字段为good/warning/critical),更新电源管理驱动(如acpi、battery模块)。