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