Dual Boot de Windows 7 et XP, avec XP installé après W7

Ici vous trouverez divers tutoriels de logiciels et OS, que ce soit lié à Windows, Linux, ou autres systèmes.
Etre_Libre
Administrateur
Messages : 602
Inscription : 13 novembre 2012, 21:44

Dual Boot de Windows 7 et XP, avec XP installé après W7

Message par Etre_Libre » 18 novembre 2012, 14:31

Quand on souhaite installer Windows 7 et XP dans un même stockage (disque dur ou SSD) (quelques différences si on a un second stockage, les fichiers de démarrage seront à déplacer, j'en parle à la fin), l'idéal est d'installer d'abord XP, puis 7 qui va voir qu'il y a XP et l'intégrer dans son gestionnaire de démarrage (BCD + BOOTMGR).

Problème : si on a déjà Windows 7 d'installé et que l'on souhaite tout de même XP à côté, XP va écraser le chargeur de démarrage de 7... et seul XP démarrera.

Note : je parle d'une machine avec BIOS, ou hybride BIOS UEFI. Si jamais la machine n'a qu'un UEFI seul, comme les Mac, Windows XP ne fonctionnera pas du tout sans une émulation de BIOS.

Nous allons voir comment procéder pour avoir les 2 côte à côte, et que tout fonctionne.

→ Tout d'abord, installer Windows 7 sur le disque dur, peu importe si on prend tout l'espace car on peut modifier cela après dans Windows via la gestion des disques.

Une fois, Windows installé, il doit y avoir 2 partitions, comme ceci :
Image


On remarque qu'il y a une 1ère partition de 100 Mo réservée au système : en fait elle contient le BOOTMGR, le BCD (liste des entrées de démarrage) et quelques polices d'écriture.
Avec Vista, ces fichiers étaient directement dans la partition de Windows, mais le fonctionnement est exactement le même.

La seconde partition est le C: et contient Windows etc... (tout le reste)

Il faut maintenant faire de la place pour XP, en réduisant la partition C: via un clic droit puis "Réduire le volume".

Dans l'exemple, c'est réduit de seulement 10000 Mo à des fins de tests, c'est une machine virtuelle :
Image

Valider, puis on voit bien qu'il y a de l'espace libre ensuite :
Image

Maintenant qu'il y a de l'espace non alloué, il suffit de lancer l'installation de Windows XP (depuis le démarrage du BIOS, pas depuis Windows 7) et installer sur cette partie non allouée :
Image


Se mettre sur l'espace non partitionné, puis appuyer sur "Entrée" sur clavier :
Image

Choisir le format NTFS (rapide), et installer XP de manière tout à fait classique.

Information : il n'est pas important que XP se soit choisi une lettre élevée (F: pour mon cas), cela ne change absolument rien à son fonctionnement.

Une fois XP installé, essayons déjà de comprendre ce qui s'est passé sous le capot...

Dans la gestion des disques, cela donne :
Image


Visiblement, la partition réservée au système de Windows 7 est bien présente, et a la lettre C:
Le D: est Windows 7 (2ème partition), et le F: est XP (3ème partition)

Notons que dans mon cas, XP a créé une partition logique pour lui, ce qui indique clairement que les fichiers de démarrage ne sont pas dans cette partition.
Attention justement : si jamais on supprime les partitions de Windows 7, Windows XP ne démarrera plus.

Enfin, par curiosité, une fois tous les fichiers cachés visibles (et aussi ceux protégés du système, il y a 2 options à modifier dans l'affichage des dossiers, et même une 3ème option si on afficher toutes les extensions de fichiers), dans la partition réservée au système, l'on retrouve du monde :
Image


Au 1er regard, on se rend compte qu'il y a bien le chargeur de démarrage de Windows 7 (BOOTMGR + son dossier Boot contenant le BCD) mais aussi celui de XP (NTLDR et NTDETECT.COM + boot.ini).

Dans ce cas, cela veut dire que tout est encore présent, mais que le secteur de boot de cette partition a l'ordre de démarrer sur NTLDR au lieu de BOOTMGR.

Le plus simple est donc de faire démarrer à nouveau sur BOOTMGR, puis grâce à ce gestionnaire de démarrage plus récent, il pourra intégrer le fait de pouvoir démarrer aussi sur NTLDR et donc XP.

Le but est d'utiliser bootsect.exe fourni avec le DVD de Windows 7, il fait très bien le travail.
Seul problème, le DVD est 64 bits et le XP 32 bits, donc il y a le droit à un message d'erreur :
Image


Jusque là, rien d'étonnant.

Il y a donc 2 possibilités que je propose :

Soit on a un DVD de Windows 7 en 32 bits (solution facile)
Soit on a seulement le DVD 64 bits (solution à peine plus difficile, celle que nous verrons)

Il me semble plus intéressant de voir la solution avec 64 bits et booter sur le DVD, car il n'y a pas toujours de DVD 32 bits pour sauver la mise.

Nous voici avec le DVD 64 bits démarré depuis le BIOS :
Image

Pour obtenir tout de suite l'Invite de commandes, appuyer sur les touches MAJ (Shift) + F10 :
Image


En appelant "bootsect", l'aide précieuse apparaît :
Image

Vérifier dans C: via la commande "dir /a" si on est bien dans la partition réservée au système :
Image

En l'occurrence, oui, il y a bien BOOTMGR et NTLDR.
Taper ensuite la commande adéquate pour démarrer à nouveau sur BOOTMGR :
Image

La commande est (un espace entre chaque argument) : bootsect /nt60 C: /force

Plus qu'à fermer l'invite de commandes, retirer le DVD de Windows 7 et fermer la fenêtre d'installation de Windows 7, et valider sur oui.

C'est désormais Windows 7 qui démarre, mais XP pas encore.

Information : il ne faut pas s'étonner de voir que les lettres changent d'un Windows à un autre, car c'est quelque chose de très relatif et peu important :
Image


Tant qu'on ne change pas la lettre de la partition système, tout va bien (d'ailleurs Windows empêche qu'on le fasse depuis la gestion des disques).


Depuis Windows 7, nous allons maintenant modifier le BCD (équivalent du boot.ini de XP) via l'utilitaire bcdedit

Seul "souci" : comme bcdedit veut une lettre de partition pour démarrer le NTLDR et que la partition réservé au système n'en a pas du point de vue de Windows 7, ça ne marche pas...
Il faut attribuer une lettre pour cette partition de 100 Mo (n'importe quelle lettre, tant qu'on ne la change pas plus tard), et dans ce cas, voici les commandes à taper (avec la lettre X) en tant qu'Administrateur bien sûr :

bcdedit -create {ntldr} -d "Windows XP"
bcdedit -set {ntldr} device partition=X:
bcdedit -set {ntldr} path \ntldr
bcdedit -displayorder {ntldr} -addlast


Image

Voilà, Windows XP apparaît désormais au démarrage, et par défaut cela reste Windows 7 :
Image

Autre méthode je précise, mais qui n'a pas voulu fonctionner :
Si on ne voulait pas assigner de lettre à la partition réservée du système, il faudrait théoriquement quand même le faire temporairement, afin de déplacer les fichiers suivants : NTLDR, NTDETECT.COM et boot.ini
Nous les déplaçerions dans la partition qui contient XP, et la partition aurait dû être principale (E: pour mon cas, depuis Windows 7)

Les fichiers AUTOEXEC.BAT, CONFIG.SYS, IO.SYS et MSDOS.SYS sont vides et d'un autre âge (de DOS), nous pourions les supprimer car ils ne servent plus à rien.

Ensuite, les commandes seraint les mêmes que précédemment, sauf que la lettre est différente, c'est celle de la partition XP.
Exemple :

bcdedit -create {ntldr} -d "Windows XP"
bcdedit -set {ntldr} device partition=E:
bcdedit -set {ntldr} path \ntldr
bcdedit -displayorder {ntldr} -addlast

La lettre assignée à la partition réservée au système pourrait être enlevée.



Autre cas possible : si on installe XP sur un autre stockage que Windows 7, ou si XP ne démarre plus après avoir réactivé Windows 7 et bien renseigné le BCD

Dans ce cas là, j'invite à vérifier si les fichiers de démarrage de XP sont bien mis dans la même partition que Windows 7 : NTLDR, NTDETECT.COM et boot.ini

En effet, si ces fichiers sont sur une autre partition que 7, cela ne fonctionnera pas.

Il faut donc adapter, et aussi si jamais le boot.ini a eu besoin d'être déplacé, éditer le boot.ini depuis Windows 7 ou depuis un Live Windows :

- Vérifier la partie "rdisk" dedans, qui est le numéro de disque dur / SSD utilisé (0, 1, 2, etc...)
- Vérifier aussi la partie "partition" qui est le numéro de partition du stockage (1, 2, 3, etc...)

Exemple : j'ai mis XP sur un 2ème stockage, dans ce cas "rdisk" est à 1 au lieu de 0.
Et comme c'est la 1ère partition du stockage, on lit : partition(1).

On voit donc :
Image

Répondre