CentOS/RHEL では、ブート シーケンスのどの部分に時間がかかるかを判断するのが複雑な場合があります。ブート シーケンス中に発生するさまざまなイベントがいくつかあり、デフォルト レベルのログでは、問題の原因となっているコンポーネントを特定するには不十分な場合があります。その場合、この投稿で説明されている手順を使用して、遅い起動シーケンスの考えられる根本原因についてより多くのデータを収集できます。
1. /etc/grub.conf で一致する grub メニュー エントリのカーネル行を編集します。 .例:
[...] root (hd0,0) kernel /vmlinuz-3.8.13-68.3.4.el6uek.x86_64 ro root=/dev/mapper/vg_ol67-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_ol67/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_ol67/lv_root KEYBOARDTYPE=pc KEYTABLE=be-latin1 rd_NO_DM rhgb quiet [...]
それに次のパラメータを追加します:
initcall_debug
例として、結果のカーネル ブート引数を以下に示します:
[...] root (hd0,0) kernel /vmlinuz-3.8.13-68.3.4.el6uek.x86_64 ro root=/dev/mapper/vg_ol67-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_ol67/lv_swap rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=vg_ol67/lv_root KEYBOARDTYPE=pc KEYTABLE=be-latin1 rd_NO_DM rhgb quiet initcall_debug [...]
起動時に grub メニューのこのメニュー エントリを使用して、システムを再起動します。
2. このパラメーターを追加すると、シリアル コンソールと dmesg コマンドの両方の出力に、init 呼び出しが完了するまでに必要な時間が出力されます。例:
calling init_autofs4_fs+0x0/0x2a [autofs4] @ 1581 initcall init_autofs4_fs+0x0/0x2a [autofs4] returned 0 after 7463 usecs