Modifier le fichier grub.conf sous CentOS 5.2
J’ai été amené à installer CentOS 5.2 en dual-boot avec Windows XP sur un poste portable et au redémarrage de la machine, il n’y avait pas de choix de l’OS ! Cela ne me gène pas personnellement, mais pourquoi installer Windows XP si l’on ne peut pas y accéder.
En fait, le menu de choix de l’OS n’est pas afficher par défaut, pour
corriger cela, il faut modifier le fichier /boot/grub/grub.conf
.
Installation de Windows
Pour un double-boot, il faut installer Windows en premier en lui
allouant qu’une partie du disque, l’autre partie du disque restant
disponible pour l’installation de Linux.
Si vous faites l’inverse, Windows écrasera le mbr contenant le lanceur
de boot et ne détectera pas la présence de Linux pour rajouter une
entrée dans son lanceur. A l’inverse, les distributions Linux détectent
la présence de l’autre système et configure le lanceur de démarrage pour
qu’il soit possible d’accéder à la fenêtre.
Installation de Linux
Une fois Windows installé et opérationnel, il faut redémarrer la machine
sur le CD d’installation et suivre la procédure d’installation en
utilisant la partie du disque qui n’a pas été accaparée par la fenêtre.
Dans mon cas, il s’agit d’un CD de NetInstall automatique basée sur un
fichier Kickstart, je n’ai donc aucune réponse à fournir.
A la fin de l’installation, le PC redémarre et je vois juste le un menu m’indiquant qu’il va démarrer sur Linux !
Configurer le menu de démarrage
Le menu de démarrage est géré par Grub, son fonctionnement est expliqué sur cette page de Linux-Pedia. Seul un fichier de configuration est à modifier, il s’agit de /boot/grub/grub.conf.
Avant toute modification du fichier, il faut en faire une copie de sauvegarde :
cd /boot/grub
cp grub.conf grub.conf_origine
Pour adapter le fichier à mon besoin, seule 3 lignes sont à modifier :
-
timeout=5 : il s’agit du temps pendant lequel le menu reste affiché avant d’activer le menu par défaut, je l’ai augmenté à 10s :
timeout=10
-
hiddenmenu : cette définit que le menu est caché, il suffit donc de la commenter en insérant un “#” en début de ligne, ce qui donne :
#hiddenmenu
-
title other : le menu permettant d’accéder à Windows n’est pas explicite (c’est peut être mérité). Pour que l’utilisateur lambda s’y retrouve, on la modifie en :
title Windows
Maintenant, j’ai donc 10 seconde pour choisir entre démarrer sur CentOS 5.2 ou sur Windows ; par défaut, le PC démarre sur CentOS.
Si l’on veut démarrer sur Windows par défaut, il faut modifier la ligne
default=0
et remplacer le chiffre 0 par le N° d’entrée de Windows.
Pour une installation automatique, j’ai inclus les commandes suivantes dans la Post-installation d’un fichier Kickstart :
cd /boot/grub
echo "-> Mise a jour de grub.conf"
/bin/sed -i.bak1 's/timeout=5/timeout=10/' grub.conf
/bin/sed -i.bak2 's/hiddenmenu/#hiddenmenu/' grub.conf
/bin/sed -i.bak3 's/title Other/title Windows/' grub.conf