En CentOS/RHEL, a veces es complejo determinar qué parte de la secuencia de arranque lleva más tiempo. Hay varios eventos diferentes que suceden durante la secuencia de inicio y, a veces, el nivel predeterminado de registros no es suficiente para determinar el componente que causa el problema. En ese caso, los pasos descritos en esta publicación se pueden usar para recopilar más datos sobre una posible causa raíz de la secuencia de arranque lenta.
1. Edite la línea del núcleo de la entrada correspondiente del menú de grub en /etc/grub.conf . Por ejemplo:
[...] 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 [...]
Y añádale el siguiente parámetro:
initcall_debug
A modo de ejemplo, a continuación se muestra un argumento de arranque del kernel resultante:
[...] 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 [...]
Y reinicie el sistema, utilizando esta entrada de menú en el menú de grub al iniciar.
2. Después de agregar este parámetro, tanto la consola serie como la salida del comando dmesg también imprimirán el tiempo necesario para que se complete una llamada init. Por ejemplo:
calling init_autofs4_fs+0x0/0x2a [autofs4] @ 1581 initcall init_autofs4_fs+0x0/0x2a [autofs4] returned 0 after 7463 usecs