Table des matières
Ce tutoriel vous guide pas à pas pour migrer votre installation de Windows qui est actuellement sur un disque dur de votre PC vers un nouveau disque, en l'occurrence un SSD. A vrai dire, vous pouvez aussi bien migrer vers un autre HDD.
La spécificité de ce tutoriel est qu'il utilise les outils fournis par Microsoft avec Windows ainsi que des logiciels libres (Clonezilla principalement, mais si quelque chose devait mal tourner vous pouvez avoir besoin d'utiliser fdisk, gdisk ou testdisk pour ne citer qu'eux). Quand j'ai voulu faire cette migration je n'ai pas trouvé de tutoriel expliquant de bout en bout comment faire cette migration juste avec les outils de Microsoft et des logiciels libres.
Typiquement, vous pouvez avoir envie/besoin de faire cela car vous avez acheté un nouveau disque pour remplacer l'ancien (par exemple car l'ancien montre des signes de faiblesse, ou vous voulez améliorer la réactivité de votre système).
En plus de la migration du système d'exploitation, ce tutoriel vous explique comment passer d'un démarrage en mode BIOS/MBR à un démarrage en mode UEFI/GPT.
Succinctement la démarche est la suivante, d'abord installer le nouveau disque dans le PC, et initialiser la table de partition selon les normes Microsoft. Puis cloner/dupliquer la partition contenant le système d'exploitation à l'aide de Clonezilla. Ensuite et avant de redémarrer dans le clone de Windows sur le SSD, faire quelques modifications dans le registre pour que la lettre de lecteur C:
pointe vers la bonne partition et éventuellement modifier le mode SATA en AHCI si vous le modifiez aussi dans le UEFI/BIOS. Après cela, on va préparer la partition système EFI/ESP pour que le PC puisse démarrer dessus et qu'il démarre sur le Windows du SSD. Finalement, une fois dans le Windows du SSD, on va réactiver l'"environnement de récupération de Windows".
Mise en garde : Faites une sauvegarde de vos données avant toute opération. Personne n'est à l'abri d'une mauvaise manipulation ou d'une erreur.
Niveau de difficulté : Difficile.
Vous devez être à l'aise au niveau de l'utilisation de la ligne de commande dans Windows, mais aussi assez à l'aise pour gérer les partitions de votre disque. Savoir modifier le paramétrage de votre Firmware UEFI/BIOS et aussi nécessaire. Ce tutoriel guide pas à pas pour la majorité des opérations. Certaines n'ont pas été détaillées par souci de simplicité et d'efficacité.
Le PC où vous voulez installer le SSD. Il faut qu'il soit en état de marche. De plus il doit avoir un firmware UEFI. S'il n'a que un BIOS standard, sans UEFI, ce tutoriel n'est pas adapté.
Clé(s) USB ou plusieurs CD/DVD sur lequel vous aurez mis Clonezilla, System rescue CD et un environnement de démarrage Windows PE, ou Windows RE, ou le DVD/Disque d'installation de Windows.
Le disque SSD (testé avec Samsung SSD 860 EVO 250GB). Il doit avoir une taille suffisante pour contenir votre partition de Windows. Dans tous les cas, la taille de la partition qui contiendra Windows sur le SSD doit être au moins égale à la taille de la partition Windows du HDD que vous voulez cloner. Au besoin, pour remplir ce critère, réduisez la taille de votre partition Windows avec le gestionnaire de disque de Windows par exemple (ou un autre outil de gestion de partition, comme gparted, sur le System Rescue CD). Cherchez sur internet si vous ne savez pas comment faire.
Windows 10 installé (en version 64 bits) (testé avec Win10 v1709)
Windows 10 PE ou support d'installation de Windows 10 (clé USB ou DVD) - En Version 64 bits (testé avec un support d'installation de Win10 v1804)
System rescue CD (version 5.2.2 par exemple)
Clonezilla installé sur une clé ou un CD. Bien vérifier avant que votre système arrive à démarrer dessus. (Testé avec Clonezilla 2.5.5-38)
SSD : désigne le nouveau SSD
HDD : désigne votre disque actuel, sur lequel est installé Windows
WinPE : un environnement de démarrage Windows PE, ou Windows RE, ou le DVD/Disque d'installation de Windows. Il doit être sur un support amovible (USB, CD ou DVD)
S: La lettre de lecteur affectée à la partition Système EFI qui sera sur le nouveau SSD (parfois appelée ESP, EFI_System_Partition ou encore SYSTEM, ou EFI)
N: Le clone de Windows, sur le SSD
O: Le Windows cloné, sur le HDD
C: La partition dans laquelle est installée Windows, lorsqu'on est dans Windows (que ce soit le windows cloné, ou le clone)
Les commandes doivent être lancées en tant qu'administrateur.
Fixer et brancher le SSD dans l’ordinateur
Initialiser et partitionner le disque à l'aide de Windows
Démarrer sur le Windows installé ou WinPE
Pour initialiser le disque, d'abord créer une table de partition, puis partitionner le disque. Pour ce faire :
C:
)
Cloner le Windows installé sur le HDD. Ceci sera fait à l'aide de Clonezilla
pagefile.sys
,
hyberfil.sys
(désactiver windows faststart avant),
swapfile.sys
.
-e1 auto
(automatically adjust file system geometry for a ntfs boot partition if exists) -e2
(sfdisk uses CHS of hard drive from EDD (for non grub loader) -r
(resize filesystem to fit partition size of target) -m
(do NOT clone boot loader) -v
(verbose)
Dans le Firmware UEFI (ou BIOS-UEFI), on peut en profiter pour passer du mode SATA "IDE" vers "AHCI". Windows n'aime pas ce changement et il faut donc faire une opération dans le registre qui est détaillée ci-dessous. Tant que vous ne le faites pas, vous aurez un écran de plantage bleu de windows au démarrage (BSOD).
Si vous voulez être sûr de ne pas faire de bêtise dans le Windows que vous venez de cloner, je vous conseille d'éteindre l’ordinateur & de débrancher l’ancien disque. Ainsi vous ne risquez pas de modifier le mauvais fichier de registre (en l'occurrence celui de votre Windows sur le HDD)
Effectuer quelques opérations sur le Windows de destination (celui sur le SSD) avant qu'on ne démarre dessus. En particulier corriger le registre pour affecter la lettre de lecteur C: à la bonne partition, et si le paramétrage du Firmware UEFI (BIOS-UEFI) a été modifié pour passer de SATA Mode PCI vers AHCI, on va aussi faire ce changement pour que ca fonctionne.
N:
(lettre utilisée dans les exemples qui suivent)
C:
utilisée par Windows soit celle du SSD et pas celle de l’ancien disque, modifier une clé de registre du nouveau Windows :
N:\Windows\System32\Config\SYSTEM
. Lui donner le nom "NewWin"
On s’intéresse à HKEY_LOCAL_MACHINE\NewWin\MountedDevices
. Ce sont là les valeurs qui sont dans le registre "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
" lorsqu'on est dans l'installation de Windows.
HKEY_LOCAL_MACHINE\NewWin\MountedDevices
modifier la lettre de lecteur C: en renommant \DosDevices\C: par \DosDevices\O: (car la valeur fait référence à la partition de l'ancien Windows sur le HDD et on ne veut pas, en démarrant, utiliser cette partition mais celle de son clone qui est sur le SSD). Ainsi, lorsqu'on démarrera dans le nouveau Windows, la partition contenant le Windows sur le HDD aura la lettre O:, et la partition contenant le Windows sur le SSD aura la lettre C:
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
(C:
étant la lettre qu'utilisait le Windows du HDD comme partition où il y a le dossier \Windows
)
HKEY_LOCAL_MACHINE\NewWin
N:\windows /l fr-fr /s S: /f UEFI
N:\Windows
est le répertoire contenant le clone de Windows sur le SSD)
Redémarrer, et avant le lancement de Windows vérifier votre UEFI (ou BIOS-UEFI). Il faut qu'il soit configuré pour démarrer par défaut en mode UEFI et pas en mode BIOS. Penser aussi à corriger le paramétrage SATA si cela a été modifié dans le registre de Windows.
Le paramétrage du démarrage avec bcdboot N:\windows /l fr-fr /s S: /f UEFI
a normalement créé le magasin BCD, mis tous les fichiers EFI sur la partition SYSTEME (ESP, partiton EFI, la 1ère du SSD) et dit au firmware UEFI qu'il doit automatiquement démarrer avec le gestionnaire de démarrage (boot manager) de Windows.
Une fois qu’on a réussi à démarrer dans la copie de Windows
/enable
. Vérifier avec reagentc.exe /info
. Et s'il y a une erreur essayer avec reagentc.exe /enable /setreimage /path C:\Recovery\WindowsRE
où C:\Recovery\WindowsRE
est le dossier où se trouve le fichier Winre.wim
C:
(pour la différencier de celle sur le HDD) en lançant: LABEL [drive:][label]
Réinsérer l'ancien disque dur.
Normalement, il devrait être possible de redémarrer dans l'ancien Windows, du moment que vous savez comment booter en MBR, et sous réserve de ne pas avoir modifié le mode SATA dans le UEFI/BIOS. SI c'est le cas, vous pouvez envisager de modifier le registre du Windows du HDD, ou de modifier le paramétrage du UEFI/BIOS.
Si vous avez aussi Linux d'installé sur le HDD, il devrait toujours être possible de le démarrer en mode BIOS
On peut diminuer/augmenter la taille de la partition C: du SSD (Pour un SSD TLC ou VNAND, on peut par exemple laisser de l’espace libre à la fin ~10 % de la capacité du disque d'après le logiciel Samsung Magician, pour un SSD 860 EVO)
En principe, puisqu’on boot en EFI on peut enlever sur le clone Windows sur le SSD les fichiers \bootmgr
et \Boot\BCD
puisque ce sont ceux qui étaient utilisés pour un boot en mode BIOS/MBR et que désormais on est en EFI. Vous pouvez d'abord les renommer et vérifier que ca ne change rien au prochain boot, plutôt que de les supprimer tout de suite.
/store s:\EFI\Boot\Microsoft\BCD /enum
(Si la partition système n'est pas montée sur S:, lancer Mountvol s: /s
)
\EFI
, \EFI\Boot\
, \EFI\Microsoft\
...) Si ce n'est pas le cas, il y a eu un problème avec bcdboot N:\windows /l fr-fr /s S: /f UEFI
/fixboot
/scanos
A propos du EFI/UEFI:
A propos de l'entrée MountedDevices du registre: http://diddy.boot-land.net/firadisk/files/mounteddevices.htm
Si on veut y accéder, par défaut les fichiers du BCD sont cachés. Pour les rendre visibles:
Documentation bcdedit:
MBR Partition ID
A propos des disk ID (=Disk signatures):
Si besoin de supprimer du registre les entrées de disques qui ne sont pas connectés ou sans lettre assignée lancer: mountvol /R. Ce programme permet aussi de lister les lettres de volumes avec leur GUID (GUID pour ce système uniquement, il n’est pas stocké dans la partition, ni ailleurs sur le disque, il est assigné par windows pour un couple (signature de disque/partition offset) dans une instance de windows alors que dans une autre instance de windows la même partition sur le même disque aura ce GUID différent)
Changer le label du volume: commande LABEL [drive:][label]