Sur CentOS/RHEL, il est parfois complexe de déterminer quelle partie de la séquence de démarrage prend beaucoup de temps. Plusieurs événements différents se produisent pendant la séquence de démarrage, et parfois le niveau par défaut des journaux n'est pas suffisant pour déterminer le composant à l'origine du problème. Dans ce cas, les étapes décrites dans cet article peuvent être utilisées pour recueillir plus de données sur une cause première possible de la séquence de démarrage lente.
1. Modifiez la ligne du noyau de l'entrée de menu grub correspondante dans /etc/grub.conf . Par exemple :
[...] 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 [...]
Et ajoutez-y le paramètre suivant :
initcall_debug
Pour des exemples, un argument de démarrage du noyau résultant est illustré ci-dessous :
[...] 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 [...]
Et redémarrez le système en utilisant cette entrée de menu dans le menu grub lors du démarrage.
2. Après avoir ajouté ce paramètre, la console série et la sortie de la commande dmesg impriment également le temps nécessaire pour qu'un appel init se termine. Par exemple :
calling init_autofs4_fs+0x0/0x2a [autofs4] @ 1581 initcall init_autofs4_fs+0x0/0x2a [autofs4] returned 0 after 7463 usecs