对于 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 值。
启动系统时,请按照以下步骤操作:
再次按 e 编辑内核行。
将 log_buf_len=8M 添加到内核行的末尾,如上例所示。
按 Enter 临时保存更改。
按 b 以编辑过的引导项进行引导。
有时,由于连接到服务器的块设备太多,在 Linux 操作系统/内核启动后,并非 /var/log/dmesg 中的所有日志消息都可以被捕获。
这篇文章说明了除了配置串行控制台之外记录所有启动日志消息的另一种方法。
基本上可以配置内核参数“log_buf_len”来增加内核日志缓冲区大小,
名称:log_buf_len,设置内核日志缓冲区的大小。
概要: log_buf_len= n [ KMG ]
描述:设置内核内部日志缓冲区的大小。
n 必须是 2 的幂,否则将四舍五入为 2 的幂。
此值也可以通过 CONFIG_LOG_BUF_SHIFT 内核配置值更改。
对于 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 内核选择屏幕上通过向上或者向下按箭头键来停止引导过程。
按 e 编辑引导条目。
使用向上和向下箭头选择带有 vmlinuz 文件的内核行。
按 End 将光标置于该行的末尾。
将 log_buf_len=8M 添加到内核行的末尾,如上例所示。
按 Ctrl+x 以使用编辑过的引导项进行引导。