Créer un clone du système

Vous avez des sauvegardes ? Faites des clones !

Sommaire

Introduction
Créer une image de la partition système
Créer une partition
Lettre de la partition Clone
Nom de la partition Clone
Restauration d'une image
Modification de la lettre du Clone
Signature d'un disque
BOOT.INI
Cas du portable
Vista
Liens

Introduction

Nous sommes de plus en plus nombreux à sauvegarder le système (la partition comprenant Windows). Ainsi on installe son système une seule fois, il n'est ensuite plus question de reformater, on se contente de rétablir la partition sauvegardée.  Des logiciels comme Acronis True Image permettent de créer et de maintenir à jour une image d'un disque ou d'une partition. L'utilisateur peut dès lors retrouver rapidement un système opérationnel même après un crash en recréant la partition à partir de l'image, sur un disque neuf si besoin. L'opération est assez rapide, compter une quinzaine de minutes, et exécutable en bootant sur un CD.

La question s'est posée de savoir s'il était possible de ne pas attendre qu'une panne ait lieu, et d'utiliser cette image pour créer un second système utilisable sans manipulations, et disponible à tout moment. Par ailleurs cela permettrait de s'assurer que l'on sait récupérer une image, et que celle-ci est opérationnelle. Enfin disposer d'un second système permet de faire des tests sans prendre trop de risques.

Recréer une partition à partir de son image est rapide, mais c'est une opération qui demande d'avoir le CD à disposition, et un minimum de savoir faire. Avoir en permanence un clone du système prêt à démarrer est rassurant.

Plusieurs cas sont à envisager selon le matériel dont on dispose et son degré d'organisation. Par exemple un PC de bureau peut être équipé de plusieurs disques, alors qu'un portable n'a en général qu'un seul disque. Les disques actuels ayant une importante capacité, ils sont souvent partitionnés. Très souvent on utilise une partition pour le système proprement dit, et une partition pour les données vers laquelle on délocalise certains dossiers du système et les temporaires. Pour mémoire on citera la possibilité d'utiliser deux disques en se contentant de faire une copie disque à disque. Le passage d'un système à l'autre se faisant soit par la modification des préférences de démarrage dans le BIOS, soit en écrivant des boot.ini adaptés (Windows XP), ou en utilisant easybcd (Vista, W7).

L'utilisation d'une image de la partition Windows pour créer une autre partition bootable apporte beaucoup de souplesse par rapport à la copie disque à disque.

Voici une autre application du clonage : installer un nouveau système sans risque et sans recommencer toute son installation. En clair installer Vista en tant que mise à jour sur un clone de XP. On conserve ainsi toute son organisation, et on garde XP sous la main. Vista installera un multi-boot à sa manière.

 

Créer une image de la partition système

Il existe plusieurs utilitaires permettant l'opération (Créer une image de partition). Il y a du gratuit et du payant. Certains ne fonctionnent qu'en dehors de Windows à l'aide d'un CD bootable. Certains permettent la création et l'actualisation automatique de l'image sans quitter Windows. C'est le cas d'Acronis True Image, connu également pour sa simplicité d'utilisation.
Avant de créer cette image on devrait lire la section sur le BOOT.INI qui se trouve un peu plus loin.

Créer une partition

Pour créer une partition on dispose sous Windows du Gestionnaire de disques. Acronis propose de restaurer l'image aussi bien dans l'espace non alloué du disque et donc de créer une partition. On peut restaurer l'image sur une partition déjà existante.

Si on n'a pas prévu à l'avance cette partition et qu'on ne dispose pas d'espace libre, il faudra revoir le partitionnement avec un logiciel adapté. Windows XP ne sait que créer une partition dans l'espace non alloué. Au besoin il sait supprimer une partition. Vista sait retailler les partitions, mais reste limité.

Lettre de la partition Clone

Acronis True Image propose par défaut la première lettre disponible. On peut changer pour une autre lettre. Cette lettre n'a pas d'importance et ne sert qu'à identifier facilement le clone, on verra plus loin comment faire en sorte que la partition système prenne la lettre C lors de son utilisation, ceci afin de ne pas perturber le fonctionnement; car bien des adresses sont stockées en dur dans le registre au lieu d'utiliser les variables d'environnement comme %SystemRoot%. Noter que si l'utilisation de C est habituel, ce n'est nullement une obligation. Disons que c'est la situation la plus couramment observée.

Nom de la partition Clone

On modifiera le nom du clone pour bien l'identifier. L'opération se fait dans Poste de Travail une fois la copie effectuée. On peut imaginer d'autres moyens pour identifier facilement après démarrage si on est sur le clone ou non, par exemple en modifiant le fond d'écran, en ajoutant un fichier sur le bureau, en ouvrant automatiquement le Poste de Travail au démarrage (explorer /e,%homedrive%), etc.

Restauration d'une image

Cliquer sur ce lien (PDF) ou sur l'imagette pour visionner un exemple d'une restauration d'une image de la partition du système actif C vers une partition d'un autre disque, avec la lettre G. Nous allons voir comment faire pour que cette partition redevienne C lorsque l'on boote sur ce clone.

Modification de la lettre du Clone

Quelques infos sur la valeur \DosDevices\C:
Redéfinir la lettre de la partition de boot sous Windows NT/2000/XP

Une recherche dans le registre montre immédiatement le problème. De nombreux chemins sont notés "en dur" au lieu d'utiliser des variables d'environnement comme %homedrive%, %windir%, %systemroot%, %userprofile%, %allusersprofile% (taper set dans une console de commandes pour voir quelques variables d'environnement et leurs valeurs).

http://fspsa.free.fr/images/chemins-en-dur-dans-le-registre.gif

http://fspsa.free.fr/images/chemins-en-dur-dans-le-registre2.gif

On peut donc s'attendre à des problèmes si la lettre de la partition de Windows a changé.

On a restauré une image de la partition C en G. Mais lorsque l'on bootera sur le Clone, il ne faut pas que celui-ci se voit comme étant G, car bien des adresses sont codées en dur dans le registre. Il faut donc, dans la dans la clé HKLM\SYSTEM\MountedDevices de la Ruche system du Clone, permuter les lettres C et G :

Vu l'idée ? On va détailler un peu.

Signature d'un disque
Chaque disque reçoit une signature lors de la création de la première partition.
Cette signature occupe 4 octets à l'offset 0x1B8 du MBR (Master Boot record).
Ce sont les quatre premiers octets dans la clé HKLM\SYSTEM\MountedDevices surlignés en jaune dans les images ci-dessous.
Savoir cela permet de mieux se repérer. Bien sûr les autres chiffres identifient les partitions du disque (explications).

La première image ci-après montre le registre du disque actif.
Avant d'aller plus loin lire Édition du Registre d'une autre partition pour savoir lire le contenu de la ruche system de l'autre partition (partition qu'on désignera par "Clone").
La seconde image montre la Ruche SYSTEM du Clone importée dans Regedit. Simplement constater qu'elle est bien identique à sa source.
On va modifier de façon à ce que le Clone ait la lettre C lorsque l'on boote sur lui (quand on bootera sur le Clone, c'est son Registre qui sera actif)
Pour cela on procède selon ces articles :

Remarque
Dans ces exemples on utilise momentanément une lettre disponible (X). Ce n'est pas indispensable, on a vu plus haut qu'il suffit de donner momentanément un nom quelconque à la valeur pour permettre la permutation.
Exemple : \DosDevices\C: ==> renommer en \DosDevices\aG:
Le nom "aG" mis à la place de la lettre permet de visualiser que le nom final de cette valeur sera \DosDevices\G:

Sur la seconde image \DosDevices\C: a une valeur commençant par d2 35 ce e8 et \DosDevices\G: par f6 41 35 11
Ces signatures nous aident à nous repérer.
La troisième image montre qu'on a donné à  \DosDevices\C: le contenu de \DosDevices\G:
Ainsi le Clone aura la lettre C quand il sera utilisé.
Quant à la partition qui était en C, on l'a déplacée auparavant en X, puis en G (on fait comme on veut).
Une fois la Ruche SYSTEM du clone sauvegardée (dans Regedit : Fichier, Décharger la ruche),
vérification en bootant sur le clone et en ouvrant normalement Regedit ==>
La quatrième image montre que le disque correspondant à \DosDevices\C: commence bien par f6 41 35 11
 

Remarque
Si on omet de renseigner \DosDevices\C: ( par exemple en renommant la valeur en \DosDevices\C:TEST ) on constate que Windows attribue la lettre C à la partition lors du démarrage sur celle-ci.

Résultat
À gauche on a booté sur le système normal (source), à droite on a booté sur le Clone.
Seuls les noms donnés aux partitions permettent ici de mettre en évidence le changement de situation :

                 http://fspsa.free.fr/images/fleche-bleue-droite.png  

 

Pour booter sur le Clone au lieu du disque normal on change l'ordre de la liste des disques durs de démarrage dans le BIOS.
Mais on jouera plus fin en éditant le BOOT.INI :

 

BOOT.INI

Boot INI Options Reference
Boot.ini Boot Parameter Reference
Structure et paramètres du fichier "boot.ini" (Windows NT)
KB102873 : Conventions d'affectation de noms et utilisation des chemins BOOT.INI et ARC
KB289022 : Comment faire pour modifier le fichier Boot.ini dans Windows XP
KB330184 : Messages d'erreur "Boot.ini non valide" ou "Windows n'a pas pu démarrer" lorsque vous démarrez votre ordinateur

On devrait parler de ce fichier plus tôt, car il est pratique qu'il soit modifié avant le clonage. Cependant son utilité apparaît mieux maintenant qu'on a créé une seconde partition bootable. Le Gestionnaire de disques apporte quelques informations et permet au besoin d'activer une partition. Les numéros des disques rdisk(0) à rdisk(3) dépendent du montage et du BIOS (voir ces exemples fournis par Christophe Daximont).

Petit point de Terminologie
La partition d'amorçage est appelée partition système par Microsoft, alors que la partition qui contient Windows est appelée Partition de démarrage (KB314470 : Définition de la partition système et de la partition de démarrage). Retenir que la partition d'amorçage contient les fichiers Ntldr, Boot.ini et Ntdetect.com, et que Windows peut très bien être sur une autre partition.
Addendum :
Voyons l'évolution du concept : 
Vista : Que sont les partitions système et les partitions de démarrage ?
Vista : Créer une partition de démarrage
Vista : Désinstaller Windows Vista sur un système à démarrage multiple
Win7 : Que sont les partitions système et les partitions de démarrage ?
Win7 : Créer une partition de démarrage
Win7 : Désinstaller Windows 7 sur un système à démarrage multiple
Noter l'apparition d'une partition d'amorçage de 100Mo. Elle est toujours qualifiée de Système, elle gère le multiboot et permet le dépannage avec winre ( Windows 7 installe une partition cachée : A quoi sert-elle ? ). À ne pas confondre avec la partition Recovery des installations OEM.

Disquette de démarrage
Pour illustrer le fait que la partition d'amorçage peut être différente de la partition de Windows on peut expérimenter une disquette d'amorçage en s'inspirant de ces articles : KB311073, disquette de boot partiel (todo : proposer un CD de boot partiel, les PC n'étant plus équipé de lecteur de disquettes)

Dans l'opération de clonage décrite ici, partition d'amorçage et partition Windows ne font qu'une. C'est le disque désigné dans le BIOS qui sert pour l'amorçage, et c'est le boot.ini de ce disque qui est utilisé.

Édition du BOOT.INI
BOOT.INI est un fichier Caché et Système, et protégé contre l'écriture. Si on utilise comme indiqué ci-après les Propriétés Système (WIN+Pause) pour éditer boot.ini tout cela est géré de façon transparente.
Si on désire éditer manuellement le fichier, on peut afficher tous les fichiers en cochant comme nécessaire deux items dans Options des Dossiers : voir Afficher vraiment tous les fichiers. Un clic droit sur c:\boot.ini permet alors de décocher la protection contre l'écriture. On peut ensuite modifier boot.ini avec Bloc-Notes.

Au lieu d'afficher tous les fichiers il est plus opportun de modifier les Attributs de boot.ini afin de lever ses protections :

La première commande ATTRIB lève les attributs System, Hidden, Read-only.
La seconde commande ATTRIB permet de rétablir ces protections après modification avec bloc-Notes

Résumé des possibilités d'édition du BOOT.INI :

Astuce : on peut ajouter des commentaires dans le boot.ini, il suffit de créer une nouvelle section, par exemple [notes].

Les partitions systèmes (de 1 à 4) sont représentées dans l'ordre indiqué (pour chaque disque), mais éventuellement séparées dans le Gestionnaire de disques par des partitions non-système ou inactivées. Ceci peut rendre délicat la désignation de la bonne partition dans BOOT.INI, d'autant que le rdisk va changer de numéro si on boote sur le clone.

Pour contourner ces difficultés on peut utiliser un BOOT.INI universel.
Il aura cet aspect, sachant qu'en général on boote sur la partition(1) du rdisk(0) :

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="disque 0 partition 1" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="disque 0 partition 2" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="disque 0 partition 3" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="disque 1 partition 1" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="disque 1 partition 2" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="disque 1 partition 3" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="disque 2 partition 1" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(2)partition(2)\WINDOWS="disque 2 partition 2" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(2)partition(3)\WINDOWS="disque 2 partition 3" /fastdetect /NoExecute=Optin
 

Selon sa situation on pourrait aller jusqu'à rdisk(3) et Partition(n).
Mais très souvent on pourra se contenter de :

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="disque 0 partition 1" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="disque 0 partition 2" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="disque 1 partition 1" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="disque 1 partition 2" /fastdetect /NoExecute=Optin

Et en pratique on devrait finir par seulement deux lignes dans [operating systems] :

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems] 
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Clone"           /fastdetect /NoExecute=Optin

Sur le Clone on fera un boot.ini symétrique de façon à pouvoir démarrer en amorçant sur son disque (à régler dans le BIOS) tout en pouvant continuer à choisir entre les deux systèmes :

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Clone"           /fastdetect /NoExecute=Optin

On ajoutera des commentaires en ajoutant une section [NOTES] ou [Commentaires] ==>

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS

[operating systems]
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Windows XP" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Clone"           /fastdetect /NoExecute=Optin

[NOTES]
On démarre par défaut au bout de 11 secondes sur rdisk(1)partition(1), càd la source originale Windows XP
/fastdetect permet de détecter automatiquement les périphériques
http://msdn.microsoft.com/en-us/library/ms791530.aspx
/NoExecute=OptOut étend la Prévention de l'exécution des données :
WIN+Pause, Avancé, Performances.
Sous l'onglet "Prévention de l'exécution des données", cliquer sur "Comment cela fonctionne-t-il ?".
La première coche correspond à OptIn et la seconde à Optout
http://support.microsoft.com/kb/875352

 

Cas du portable

Dans le cas où un seul disque est disponible, le rdisk ne change pas, c'est la partition à démarrer qui change de numéro :

[boot loader]
timeout=11
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems] 
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP" /fastdetect /NoExecute=Optin
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Clone"           /fastdetect /NoExecute=Optin

L'intérêt peut sembler moindre car cela ne protège pas d'un crash disque. Cependant ce n'est pas une panne courante. Et on appréciera de disposer d'un clone prêt à démarrer en cas de difficulté (Loi de Murphy : en pleine conférence...)

 

Vista

À titre de simple démonstration on a cloné jusqu'à quatre systèmes sur un seul disque.
Sur ce disque 3 ont trouve deux XP (GClone et LEST) et deux Vista (Vista1 et Vista2).
Au démarrage seul le boot.ini de la partition amorçable est exploité, et les Vista sont ignorés, boot.ini ne connait pas le nouveau système.
Pour que Vista soit pris en compte il faut utiliser EasyBCD (tutos).
En effet Vista utilise un nouveau fichier de démarrage appelé BCD, ou Boot Configuration Data.
Retenir qu'un système ancien ne sait rien d'un système plus récent.
En conséquence c'est toujours le système plus récent qui gère le multi-boot avec les autres systèmes.
Une fois que Vista a pris le contrôle du démarrage, c'est son système qui offre le choix entre les différents Windows.
Le menu de démarrage multi-boot propose Vista1, Vista2, et XP.
Si on choisit XP, c'est le boot.ini qui proposera, dans un second menu multi-boot, le choix entre les deux XP.
Dans le gestionnaire de disques un clic droit sur une partition permet de modifier sa lettre.
Une fois démarré sur un des deux Clones de Vista, le Gestionnaire de disques peut refuser de modifier une lettre.
La raison en est que la première partition primaire (Y) fait office de partition d'amorçage :

Remarquer que toutes les autres partitions Windows sont sur des partitions logiques (couleur bleue).
Noter la signature du disque 3 (c1 e7 96 c4), elle nous aide à nous y retrouver.
Puisque le Gestionnaire de disques ne veut pas modifier la lettre Y, on ouvre Regedit pour redonner à la partition GClone sa lettre G.
On renomme "\Dosdevices\G:" en "\Dosdevices\G:en attente" :

On renomme \DosDevices\Y: en \Dosdevices\G:

Et on renomme "\Dosdevices\G:en attente" en \Dosdevices\Y:

Ces nouvelles dispositions sont prises en compte au démarrage suivant.
Les autres lettres peuvent être modifiées avec le gestionnaire de disques.
On procède de même avec l'autre Vista. Voici le résultat après un démarrage sur Vista2 :

Lors de ces opérations j'ai noté qu'une partition XP qui après démarrage n'a pas sa lettre C comme c'était le cas pour la source dont elle est la copie fonctionne très mal. Par contre Vista râle un peu mais fonctionne suffisamment pour permettre l'utilisation du Gestionnaire de Disques et de Regedit. Cela simplifie un peu, on n'a pas à importer une ruche comme on a dû le faire pour XP.

 

 

Liens

La valeur \DosDevices\C:
Redéfinir la lettre de la partition de boot sous Windows NT/2000/XP

Aides de Windows.
Aides de Windows googlées
Aide de Windows : Créer une partition de démarrage sur Vista
Aide de Windows : Désinstaller Windows Vista sur un système à démarrage multiple
EasyBCD (tutos, 1, 2)
Documentation Technet : BCDEdit Command-Line Options (l'éditeur de la configuration de démarrage)
Documentation Technet : Bootsect Command-Line Options (permet de modifier facilement le MBR pour choisir de démarrer XP ou Vista)
Documentation Technet : How Basic Disks and Volumes Work
Documentation MSDN : Reassign Drive Letters to Volumes in Target Designer
Documentation MSDN : Make Your Runtime Think it's on C:\ While it's on Any Other Partition
Documentation MSDN : Naming a Volume (UVN : Unique Volume Name <==> GUID : Globally Unique Identifier - c'est tout le principe -)
Documentation MSDN : Naming a File or Directory
KB927817 : Vous ne pouvez pas démarrer Windows XP après avoir installé Windows Vista dans une configuration à double démarrage avec Windows XP
KB926185 : No restore points are available when you use Windows Vista or Windows Server 2008 in a dual-boot configuration together with an earlier Windows operating system
How to Stop System Restore Points from being Deleted in Vista when Dual Booting with XP

Récupérations de Partitions : TestDisk, PTEDIT

http://www.commentcamarche.net/faq/304-creation-d-image-systeme-ghost


Remerciements à Christophe Daximont pour ses explications et captures d'écrans.
Retour au début
Les restes du site
JF (Jean-François)
 

compteur Free
Publié le 3/1/2009