On a un PC avec windows XP (home ou pro) implanté de manière courante sur le 1er disque (C:\pour windows, hda1 pour linux) et on veut installer en plus une ou plusieurs distribution(s) linux, sans toucher au MBR de Windows XP, en utilisant le multiboot de Windows XP et le programme bootpart. On prendra la suse 10.0 pour exemple.
On va considérer ici que le problème des partitions a déjà été résolu: la partition principale linux choisie (affectée à ”/”) sera, par exemple hdb5 (1ère partition logique de la partition étendue du 2ème disque).
Ce qui suit a été expérimenté dans plusieurs configurations:
Deux remarques concernant l'installation sur disque dur usb:
Au boot du PC, le bios charge et exécute le programme situé sur le 1er secteur de 512 octet du disque désigné par le bios pour booter (en général le 1er disque c:\ pour windows, hda pour linux). Ce secteur est appelé “MBR” (Master Boot Record). Celui-ci contient en plus des infos sur les partitions de ce disque.
Le rôle du MBR “windows” est de passer la main au chargeur de windows xp (qui s'appelle “NTLDR” = NT Loader), qui lit le fichier c:\boot.ini, qui dit quel système d'exploitation il faut lancer.
C'est ce fichier c:\boot.ini qu'il faut modifier pour présenter un menu des différents systèmes d'exploitation à lancer, y compris un ou plusieurs linux.
Pour établir le lien entre ce multiboot windows xp et le linux à lancer, on utilise le logiciel “bootpart.exe”.
Sous Windows, on télécharge le programme bootpart (bootpa26.zip=version d'oct. 2005) sur le site:
http://www.winimage.com/bootpart.htm
On le décompresse et on place le résultat dans un répertoire c:\bootpart créé à cette occasion. Attention: c'est un programme dos et pas windows, il n'y a pas de programme d'installation et il n'est pas placé ni à placer dans “c:\program files”.
On lance l'installation de la suse 10.0 par le 1er cd ou par le dvd d'installation.
A un certain moment, on se retrouve avec une page appelée “Paramètres d'installation ”. Cette page comporte 2 onglets : “Aperçu ” et Expert”. On clique sur Expert. C'est souvent le cas aussi pour les autres distributions: en général pour implanter ce multiboot, il ne faut pas laisser le mode par défaut.
La page ” Expert ” comporte une liste de chapitre d'installation. On clique sur le chapitre qui nous intéresse qui s'appelle ” Paramètres du chargeur d'amorçage ”.
C'est ici qu'on choisit le chargeur (GRUB par exemple), ainsi que ” l'emplacement du chargeur d'amorçage ”. Et là, au lieu de choisir ” secteur maître d'amorçage de /dev/hda ” qui correspond au MBR, on choisit ” secteur d'amorçage de la partition d'amorçage /dev/hdb5 ”, qui doit être la partition root de votre linux (celle affectée à ”/”).
On valide et on continue l'installation.
A la fin de la 1ère phase de l'installation, le pc reboote sur …Windows! Normal. On laisse faire.
Sous winxp, on ouvre la console DOS:
A l'intérieur de la fenêtre dos, et au prompt du dos (”>”), on se place dans le répertoire bootpart:
On lance le programme bootpart sans paramètre:
L'exécution sans paramètre donne la liste de toutes les partitions de tous les disques du pc, avec un numéro attribué en début de ligne à chacune d'entre elles. On repère le numéro attribué à notre partition linux, celle affectée à ”/”. Le formatage de chaque partition étant indiqué, on recherche celle marquée ”<linux native>” (souvent avec un astérisque au début qui devrait identifier les partitions “actives”, c'est à dire reconnues amorçable dans la table des partitions).
Ci-dessous l'exemple avec un portable (1 seul disque) :
Dans cet exemple, c'est la partition numéro 2 qui est la partition linux.
Si vous voulez plus d'infos sur bootpart, faites:
Admettons que le numéro de la partition linux soit “xx”. On lance ensuite:
lba est optionnel, et sert à forcer la gestion des grands disques.
c:\bootsuse.bin est n'importe quel nom de fichier que vous avez choisi (format 8.3 svp).
“Suse linux v 10.0” est le titre qui apparaitra au menu du multiboot winxp
Voilà, c'est fait.
On retire le cd de linux, et on reboote le pc. On se retrouve donc devant le menu multiboot de winxp (conforme au boot.ini), qui propose windows xp et Suse linux v 10.0. On choisit Suse linux v 10.0, et l'installation de la suse se poursuit normalement jusqu'à la fin.
Désormais, le menu du multiboot de windows xp apparaîtra à chaque boot, conformément à boot.ini.
Sous windows. Il faut d'abord que winxp permette le listage des fichiers cachés: dans l'explorateur windows, prendre “outils” et “options de dossiers” et “affichage”. On coche le choix “afficher les fichiers et dossiers cachés”.
Toujours dans l'explorateur windows, si on examine le contenu de c:\boot.ini avec un éditeur de texte type “bloc-notes” (pas de traitement de texte svp!), on voit quelque chose comme cela:
En fait, bootpart n'a fait qu'ajouter la dernière ligne, qui renvoie au fichier c:\bootsuse.bin, qu'il a créé à notre demande. C'est ce même fichier qui passera la main au grub de linux là où il a été installé, c'est à dire au début de votre partition linux.
Comment changer après coup le libellé proposé par boot.ini ? En fait, ce n'est pas trivial, car boot.ini a deux attributs: caché (H) et système(S). Pour modifier boot.ini, il faut donc annuler ces deux attributs et les remettre après.
Sous winxp, reprenons la console dos de tout à l'heure (démarrer→exécuter→cmd)
On change de répertoire:
On annule les attributs qui nous gênent:
On peut alors modifier le libellé “Suse Linux v 10.0” et le remplacer par n'importe quoi d'autre, par exemple “Suse Linux v 10.0 sur hda5” (toujours avec un éditeur de texte type “bloc-notes”), et on enregistre.
On restaure les bons attributs:
C'est fait !
ATTENTION: si vous abimez boot.ini, plus rien ne marche !! Faites une sauvegarde (boot.ini.sav par exemple) que vous saurez retrouver sous console de récupération winxp.
Pour ceux qui ne haïssent pas trop windows, recommandation chaleureuse pour l'excellent site de Bellamy: http://www.bellamyjc.org/ qui contient tout un chapitre consacré au multiboot, ainsi qu'aux procédures de récupération du MBR de Windows XP quand on s'est planté…