控制台被日志刷屏,导致输入命令困难

配置物理机网口聚合时,两个网口接了自环线(用来测试光模块),导致出现环路。此时系统大量重复报错:

Aug 14 11:11:52 HY-S103-A06-HW-01 kernel: bond0: (slave enp129s0f0): An illegal loopback occurred on slave#012Check the configuration to verify that all adapters are connected to 802.3ad compliant switch ports

问题机器属性与配置:

# cat /etc/os-release
NAME="openEuler"
VERSION="22.03 (LTS-SP4)"
ID="openEuler"
VERSION_ID="22.03"
PRETTY_NAME="openEuler 22.03 (LTS-SP4)"
ANSI_COLOR="0;31"

# sysctl -a | grep kernel.printk
kernel.printk = 7       4       1       7
kernel.printk_delay = 0
kernel.printk_devkmsg = on
kernel.printk_ratelimit = 5
kernel.printk_ratelimit_burst = 10

原因是日志等级调的太高。

解决方法:

# 临时降低控制台日志级别,只显示警告及以上
# 这决定了哪些日志会实时输出到控制台。当日志等级 ≤ 该值时,直接打印到控制台,数值越大,输出越全。
sudo sh -c "echo '4 4 1 7' > /proc/sys/kernel/printk"

# 永久修改配置
# cat /etc/sysctl.conf | grep kernel.printk
kernel.printk = 4 4 1 7

  1. 第一个数字 4‌:当前控制台日志级别(console log level)。
    表示只有日志级别等于或高于 4 的消息才会被输出到控制台。

  2. 第二个数字 4‌:默认消息日志级别(default message log level)。
    如果在 printk() 中没有指定日志级别,内核将使用这个值作为默认级别。

  3. 第三个数字 1‌:最小控制台日志级别(minimum console log level)。
    这是可以通过程序修改的最低日志级别。

  4. 第四个数字 7‌:默认控制台日志级别(default console log level)。
    当系统启动时,控制台将显示日志级别为 7 的消息。

数字 日志级别 含义说明

0 KERN_EMERG 系统不可用,紧急情况,如系统崩溃或硬件错误。

1 KERN_ALERT 需要立即采取行动的紧急情况。

2 KERN_CRIT 严重错误,如硬件故障。

3 KERN_ERR 错误信息,如系统调用失败。

4 KERN_WARNING 警告信息,如配置问题或潜在问题。

5 KERN_NOTICE 一般重要信息,如系统正常运行状态。

6 KERN_INFO 一般信息,用于调试和用户通知。

7 KERN_DEBUG 调试信息,通常用于开发和调试阶段。

安装系统时,无法识别磁盘阵列卡 2026-01-22
CPU和磁盘使用率周期性升高 2026-01-12

评论区