对于 CentOS/RHEL 5,6

对于 CentOS/RHEL 5 和 6,可以将“log_buf_len=8M”添加到 /boot/grub/grub.conf 中默认引导内核条目的内核行。

例如,如果当前内核行是:

kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/mapper/vg_root-lv_root

将 log_buf_len 添加到这一行以使其:

kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=/dev/mapper/vg_root-lv_root log_buf_len=8M

重新启动系统以使更改生效。

# shutdown -r now

临时变更

我们还可以在引导系统时临时更改 log_buf_len 值。
启动系统时,请按照以下步骤操作:

  1. 再次按 e 编辑内核行。

  2. 将 log_buf_len=8M 添加到内核行的末尾,如上例所示。

  3. 按 Enter 临时保存更改。

  4. 按 b 以编辑过的引导项进行引导。

如何在 CentOS/RHEL 的 /var/log/dmesg 中捕获更多日志

有时,由于连接到服务器的块设备太多,在 Linux 操作系统/内核启动后,并非 /var/log/dmesg 中的所有日志消息都可以被捕获。
这篇文章说明了除了配置串行控制台之外记录所有启动日志消息的另一种方法。

基本上可以配置内核参数“log_buf_len”来增加内核日志缓冲区大小,

名称:log_buf_len,设置内核日志缓冲区的大小。

概要: log_buf_len= n [ KMG ]

描述:设置内核内部日志缓冲区的大小。
n 必须是 2 的幂,否则将四舍五入为 2 的幂。
此值也可以通过 CONFIG_LOG_BUF_SHIFT 内核配置值更改。

https://onitroad.com 更多教程

对于 CentOS/RHEL 7

对于 CentOS/RHEL 7,可以将相同的设置添加到 /etc/default/grub 中的“GRUB_CMDLINE_LINUX”行:

# cat /etc/default/grub
GRUB_TIMEOUT=15
GRUB_HIDDEN_MENU_QUIET=false
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"
GRUB_CMDLINE_LINUX="console=tty0 log_buf_len=8M"
GRUB_DISABLE_RECOVERY="true"

然后使用以下命令重建启动时使用的 grub.cfg:

# grub2-mkconfig -o /boot/grub2/grub.cfg

对于基于 EFI 的系统,请使用以下命令:

# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg

重新启动系统

# shutdown -r now

临时变更

引导系统时,在 GRUB 内核选择屏幕上通过向上或者向下按箭头键来停止引导过程。

  1. 按 e 编辑引导条目。

  2. 使用向上和向下箭头选择带有 vmlinuz 文件的内核行。

  3. 按 End 将光标置于该行的末尾。

  4. 将 log_buf_len=8M 添加到内核行的末尾,如上例所示。

  5. 按 Ctrl+x 以使用编辑过的引导项进行引导。

日期:2020-09-17 00:13:10 来源:oir作者:oir