Dans mon billet précédent, je découvrais au passage un outil permettant d'observer le démarrage du système de manière graphique. Je vais à présent tenter de l'utiliser et de voir ce que je peux en tirer.

Installation

J'ai d'abors télécharger le dépot svn de bootchart

[Bash]
$ svn co https://bootchart.svn.sourceforge.net/svnroot/bootchart bootchart

une fois télécharger, je me suis rendu sous le répertoire trunk et suivi les instruction du README et INSTALL. qd j'ai voulu exécuter install.sh, il ne trouvait pas rubby; je me suis donc arrangé en modifiant la variable d'environnement $PATH. Pour faire cela de manière durable, j'ai ajouté dans les fichier /home/blaisouille/.bashrc et /root/.bashrc la ligne suivante:

[Bash]
export PATH="/sbin:/usr/sbin:$PATH"

J'ai modifié les deux fichiers pour que ce changement soit effectué de manière durable, cela m'a donc ajouté deux répertoire dans le path. Vous trouverez un tutoriel très bien réalisé ce sujet ici.

Ensuite, j'ai pu exécuter le script d'installation sans le moindre soucis. Cependant il semble ne pas avoir su mettre grub à jour; ce que j'ai donc fait en ajoutant dans /boot/grub/grub.conf les lignes suivantes (en gros j'ai copié un autre boot et ajouté init=/sbin/bootchartd)

[Bash]
title Bootchart (2.6.22.9-91.fc7)
	root (hd0,6)
	kernel /vmlinuz-2.6.22.9-91.fc7 ro root=LABEL=/ init=/sbin/bootchartd rhgb quiet
	initrd /initrd-2.6.22.9-91.fc7.img

Deuxième étape importante: installation du renderer. Pour cela il faut installer le package ant de Apache (j'ai installé la ver 1.6.5-4jpp.2) ensuite il n'y a plus qu'à taper ant à la console sous l'arborescence de bootchart.

Utilisation

A présent, il est temps de redémarrer, au reboot je choisis la nouvelle entrée Bootchart. Je peux lire qu'il l'initialise bien et le système semble démarrer correctement.

Une fois arrivé dans l'os, je vérifie tout de suite si /var/log/bootchart.tgz existe... et c'est bien le cas! youpie; next.

il ne me reste en principe plus qu'à visualiser l'évolution du boot. je retourne dans le répertoire d'installation de bootchart et exécute la commande

[Bash]
$ java -jar bootchart.jar%%%
Parsing /var/log/bootchart.tgz

Wrote image: ./bootchart.svgz

çà met un certain temps... mais çà fonctionne :D

J'ai ensuite utilisé inkscape pour visualiser le graphique vectoriel généré que vous trouverez en pièce jointe de ce billet (exporté en png)

La première chose que j'ai voulu faire une fois cela fait est de virer la détection d'un cable réseau au démarrage; ce message en rouge qui s'affiche à tous les démarrage commençait à me filer la nausée. Un coup d'oeuil sur ce graphique et je suis fixé en moins de deux. Je vois que c'est un script qui répond au nom de S10network qui s'occupe de çà; je constate également qu'il fait appelle à ifup deux fois avec un sleep entre les deux; c'est certain, c'est là que çà se passe. je cherche S10network, il se trouve dans /etc/rc.d/rc1-5.d/S10network mais il s'agit en gros d'un lien vers /etc/init.d/network. je commente sa ligne 134 sans me prendre la tête et le problème est réglé.

plutôt pratique non?

conclusion:

j'adopte l'outil; une méthode simple qui peut permettre de diagnostiquer des problèmes basiques liés au démarrage de manière rapide et efficace grâce à une présentation visuelle du processus d'initialisation du système. De plus, il a également un côté ludique puisqu'il permet de mieux voir dans quel ordre chaque service est lancé et donne une idée sur la dépendances entre chacun d'eux.