サーバーに接続されているブロック デバイスが多すぎるため、Linux OS/カーネルの起動後に /var/log/dmesg 内のすべてのログ メッセージをキャプチャできない場合があります。この投稿では、シリアル コンソールを構成する以外に、すべての起動ログ メッセージを記録する別の方法について説明します。
基本的にカーネルパラメータ「log_buf_len」 」は、カーネル ログのバッファ サイズを増やすように構成できます。
名前 :log_buf_len, カーネル ログ バッファのサイズを設定します。
あらすじ :log_buf_len=n [KMG]
説明 :カーネルの内部ログ バッファのサイズを設定します。 n は 2 の累乗でなければなりません。そうでない場合は、2 の累乗に切り上げられます。この値は CONFIG_LOG_BUF_SHIFT でも変更できます カーネル構成値。
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 7 の場合
CentOS/RHEL 7 の場合、同じ設定を「GRUB_CMDLINE_LINUX」に追加できます。 」の行 /etc/default/grub :
# 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 を押して、編集したブート エントリで起動します。