在 Linux 内核日志系统中,日志级别用于标记不同事件的重要性和紧急程度。通过 dmesg -l <级别> 可以过滤特定级别的日志。
内核日志级别
1. emerg(紧急)
- 严重性:最高,系统完全不可用(例如内核崩溃、硬件灾难性故障)。
- 触发场景:
系统遇到无法恢复的致命错误,可能直接导致宕机或无法启动。 - 示例:
Kernel panic - not syncing: VFS: Unable to mount root fs
2. alert(警报)
- 严重性:极高,需要立即人工干预。
- 触发场景:
硬件关键组件故障(如 CPU 温度过高、电源异常)、关键数据损坏。 - 示例:
Critical temperature reached (100°C), shutting down
3. crit(关键)
- 严重性:高,系统核心功能受损。
- 触发场景:
文件系统损坏、内存不足导致核心服务崩溃、关键驱动加载失败。 - 示例:
EXT4-fs error (device sda1): ext4_find_entry: reading directory
4. err(错误)
- 严重性:中等,非核心功能错误,但需要关注。
- 触发场景:
外设驱动加载失败(如 USB 设备无法识别)、网络接口异常、IO 操作超时。 - 示例:
usb 1-1: device descriptor read/64, error -110
5. warn(警告)
- 严重性:低,潜在问题或非致命异常。
- 触发场景:
硬件兼容性问题(如固件过时)、资源临时不足(如内存压力)、配置冲突。 - 示例:
ACPI Warning: SystemIO range 0x000000000000F040-0x000000000000F05F conflicts with OpRegion 0x000000000000F040-0x000000000000F04F
6. notice(通知)
- 严重性:信息性,正常但重要的事件。
- 触发场景:
系统正常启动阶段的关键事件(如文件系统挂载完成)、硬件热插拔事件。 - 示例:
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
7. info(信息)
- 严重性:常规,系统运行中的普通日志。
- 触发场景:
驱动加载成功、设备识别完成、内核模块初始化。 - 示例:
scsi 0:0:0:0: Direct-Access ATA ST1000LM024 HN-M 0001 PQ: 0 ANSI: 5
8. debug(调试)
- 严重性:最低,用于开发者调试的详细信息。
- 触发场景:
内核开发或驱动调试时的详细跟踪日志(默认不记录,需手动启用调试模式)。 - 示例:
[DEBUG] usb_submit_urb(pipe=0xffff880036e3d800, buffer=0x00000000)
过滤示例
- 仅显示错误和警告:
dmesg -l err,warn

- 显示紧急、警报、关键错误:
-
dmesg -l emerg,alert,crit

注意事项
- 级别覆盖关系:
内核默认仅记录emerg到debug中某一级别以上的日志(可通过dmesg -n <级别>调整)。- 实际应用中:
- 日常故障排查重点关注
err和warn。crit/alert/emerg通常意味着硬件或系统核心问题。debug需要内核编译时启用调试选项。- 替代工具
在 systemd 系统中,journalctl -k或journalctl --dmesg也可查看内核日志,且支持更多过滤选项。
6840

被折叠的 条评论
为什么被折叠?



