J'ai eu la malchance de devoir cloner un boîtier Windows XP / 7 à double démarrage pour remplacer son disque dur par un plus petit. J'ai eu beaucoup de mal à le faire démarrer et j'aimerais comprendre ce qui se passe et si je pouvais faire mieux.
Contexte: la machine a un disque de 750 Go avec 3 partitions:
- Windows XP
- Windows 7
- Les données
L'installation d'origine a été effectuée de manière à ce qu'il n'y ait pas de partition de récupération Windows 7 distincte. J'espère que ce fait simplifie quelque peu les choses.
Je le remplace par un lecteur 80 Go. Les partitions ont déjà été réduites à partir de Windows 7 afin qu'elles tiennent sur le plus petit disque.
J'ai utilisé GParted
(à partir d'un PartedMagic
LiveCD Linux) pour copier les partitions. Je marque la partition Windows XP comme partition active (la même que sur le disque d'origine).
Je n'ai pas pu utiliser CloneZilla
ou faire une copie de disque entière en raison de la transition d'un disque plus grand à un disque plus petit.
Après avoir copié les partitions, j'ai copié manuellement le chargeur de démarrage (en prenant soin de ne pas copier la table des partitions):
$ dd if=/dev/sda of=/dev/sdb bs=446 count=1
J'ai retiré le disque d'origine, mis le nouveau afin qu'il soit physiquement connecté de la même manière que l'original (maître IDE canal 1) et j'ai essayé de démarrer. Cela a présenté avec succès le menu de démarrage mais a échoué lors de la sélection de l'une des options (il y en a deux: un pour XP et un pour Win7).
J'ai fait pas mal de recherches qui m'ont permis de réaliser que les données de configuration de démarrage de Windows 7 ne contenaient pas tout ce qu'elles devraient. J'ai comparé la sortie BCD des disques originaux et nouveaux et j'ai noté que les entrées de périphérique sur ces derniers l'étaient unknown
. Je les ai donc modifiés manuellement pour correspondre à l'original - comme ceci:
$ bcdedit /set {ntldr} device partition=C:
$ bcdedit /set {default} device partition=D:
$ bcdedit /set {default} osdevice partition=D:
et redémarré. Cette fois, j'ai pu démarrer XP et Win7. J'ai besoin de faire plus de tests car il semble y avoir d'autres différences entre les deux BCD, mais apporter les modifications ci-dessus a au moins permis le démarrage.
Donc ma question est vraiment de demander pourquoi le BCD sur une partition clonée apparaîtrait différent de l'original, et suffisamment pour empêcher le démarrage?
Et une suite à cela serait de demander si je devrais faire cela d'une autre manière?
bcdboot
fournit un moyen plus facile de recréer une entrée de démarrage, mais je ne suis pas sûr qu'elle conviendrait dans un scénario de double démarrage XP / W7.Selon cette documentation non officielle sur les composants internes de BCD , les partitions du magasin BCD sont réellement identifiées par la signature du disque et le décalage de partition. Vous avez copié la signature du disque (octets MBR 440 à 443), mais vous avez probablement modifié les décalages de partition lorsque vous placez des partitions sur un disque plus petit. BOOTMGR n'est donc plus en mesure de trouver ces partitions.
la source
bcdedit
). Je préfère Visual BCD Editor moi-même. Si vous pouvez entrer dans un environnement Windows, Visual BCD facilite le paramétrage du périphérique de démarrage. Vous pouvez faire la même chose à partir du DVD de démarrage en ouvrant l'invite de commande (je pense que c'était F11 ou quelque chose) et en l'utilisantbcdedit
. Je recommanderais de ne pas réparer le système si vous vous sentez prêt à le réparer manuellement, car j'ai déjà supprimé le système de récupération sur disque.