Copie d'un système XP d'un volume à un autre volume.


To English page

Il est utile  de pouvoir copier des systèmes d'exploitation et ainsi de disposer de plusieurs systèmes Ceci permet de pouvoir démarrer sur une sauvegarde sans avoir à restaurer.

Il est ainsi possible d'essayer plusieurs versions d'un programme dans des systèmes séparés

Si une nouvelle version d'un système ou d'un programme ne fonctionne pas il est possible de la dépanner tout en utilisant l'ancienne version sur un système séparé.

Tout ceci n'est pas cher:
Le stockage d'un système entier coûte environ 10 euros de disque dur.
Des programmes gratuits peuvent copier ou démarrer un système.
En 10 minutes il est possible de copier un système.

La copie est facile pour Windows Me mais avec Windows XP il est plus difficile d'obtenir par copie plusieurs systèmes.

Principale difficulté:
Chaque disque possède une signature écrite sur le disque chaque volume possède une identification écrite sur le volume. La correspondance entre l'identification d'un volume et sa lettre de lecteur est notée dans la base de registre.

Quelques conséquences:
Quand un nouveau disque est ajouté le registre assigne ou réassigne les lettres non utilisées à ses volumes même si ces lettres ont déjà été assignées à un disque actuellement absent. Lorsque l'on ajoute un nouveau disque tous les disques déjà reconnus doivent être présents.
Quand un système sur un volume source est copié sur un volume destination de nombreuses clés du registre du volume destination se réfèrent à des fichiers du volume source (les lettres de volume ne changent pas dans ce registre). Il est possible de démarrer sur le volume destination uniquement si le volume source est présent. Il n'est pas conseillé de fonctionner longtemps dans cette configuration car on peut détériorer la configuration des deux systèmes puisque certains fichiers sont communs mais il est possible simplement de corriger cette configuration.

Description d'une méthode pour copier un système XP (ce n'est peut être pas la meilleure).
Je n'utilise pas le clonage de disque mais la copie de partition en utilisant le programme gratuit savepart

1 Préparation des outils nécessaires
Créer une disquette de démarrage dos comme expliqué à http://www.partition-saving.com/  ( FAQ). et ajouter savepart.exe (à télécharger à http://www.partition-saving.com/ ). Le drivers souris est très utile.

Par sécurité créer une disquette de démarrage XP pour pouvoir démarrer un XP fonctionnel mais qui a perdu un de ses fichiers de démarrage: Pour cela copier sur une disquette Ntldr, Ntdetect.com et le fichier boot.ini universel ci-après:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
 [operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Pro disque 0 partition 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Pro disque 0 partition 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(0)partition(3)\WINDOWS="Microsoft Windows XP Pro disque 0 partition 3" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Pro disque 1 partition 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Microsoft Windows XP Pro disque 1 partition 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(1)partition(3)\WINDOWS="Microsoft Windows XP Pro disque 1 partition 3" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Pro disque 2 partition 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(2)\WINDOWS="Microsoft Windows XP Pro disque 2 partition 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(3)\WINDOWS="Microsoft Windows XP Pro disque 2 partition 3" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(3)partition(1)\WINDOWS="Microsoft Windows XP Pro disque 3 partition 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(3)partition(2)\WINDOWS="Microsoft Windows XP Pro disque 3 partition 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(3)partition(3)\WINDOWS="Microsoft Windows XP Pro disque 3 partition 3" /fastdetect /noexecute=optin

Ne pas utiliser  /noexecute=optin pour les systèmes XP plus anciens que SP2.

Cette disquette est utile pour le premier démarrage avec un boot.ini détérioré, il est ainsi possible de démarrer un XP sur l'une des trois premières partitions de l'un des quatre premiers disques.

2 Préparation des disques durs

Il est préférable de prévoir trois partitions principales de même taille sur chaque disque. Inclure le nom du disque et le numéro de la partition dans le nom de volume .

3 Préparation du volume source
Démarrer sur le volume source et vérifier la
lettre du volume de démarrage et la lettre du volume destination (ces lettres seront nécessaires plus tard). S’il y a plusieurs disques durs noter l’ordre des disques dans le gestionnaire de disques (c’est utile pour écrire un boot.ini correct). Le disque de démarrage est 0 les autres sont numérotés dans l’ordre primaire maître, primaire esclave, secondaire maître, secondaire esclave.
Il est préférable de supprimer la restauration système et l'indexation sur tous les volumes et de conserver sur le volume source pagefile.sys et tous les fichiers figurants dans le registre.

4 Copie de la partition source à la partition destination
Il est inutile d'effacer avant la partition destination: tous ses fichiers seront effacés.
Démarrer sur la disquette savepart . Entrer "savepart". choisir "copier" puis "copier tous les secteurs occupés" . Répondre aux questions pour choisir les partitions source et destination. (les noms de volume sont ici très utiles)

5 Modifications nécessaires pour pouvoir démarrer sur le nouveau système
Démarrer sur le XP source (si c'est impossible utiliser la disquette de démarrage préparée ci-dessus). On peut constater que le volume destination a pris le même nom que le volume source. Lui rendre son nom (pour choisir le bon volume s'aider des lettres ou utiliser la gestion des disques). Ajouter les lignes nécessaires au nouveau système dans le fichier boot.ini de la partition active: Voir Reviewing and Correcting Boot.ini Settings on x86-based Systems et boot.ini example. S'aider du boot.ini ci-dessus.

6 Modification nécessaire pour utiliser le nouveau système
Démarrer sur le nouveau système.en mode sans échec (si c'est impossible utiliser la disquette de démarrage préparée ci-dessus)
 Les lettres du volume source et du volume destination doivent être permutées dans le registre du volume destination en cours d'utilisation. Pour cela utiliser http://support.microsoft.com/kb/223188/fr ( regedit : HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices, clic droit sur volume, choisir renommer par exemple C to Z, D to C, Z to D, redémarrer). 

Vérifier les erreurs éventuelles dans les journaux d'évènements.

Le nouveau système est alors indépendant de l'ancien, il est opérationnel.  La copie est terminée. Par ailleurs il est possible de démarrer sur l'ancien système (source) qui reste opérationnel.

Remarque: Il n'est pas possible de choisir la lettre du système copié: Il est nécessaire d'utiliser la seule lettre pour laquelle le système copié fonctionne normalement: c'est la lettre du volume de démarrage lorsque ce système XP a été installé (lettre qui est utilisée dans de nombreuses clés du registre)

7 Variante avec démarrage direct sur une partition primaire quelconque
Pour séparer complètement les volumes je préfère:
-choisir le disque de démarrage dans le bios,
- utiliser un programme de démarrage compact 
small boot manager  dans le MBR du disque pour choisir le volume de démarrage.
-placer dans chaque "operating system boot partition*" (partition windows) des fichiers de démarrage XP (Ntldr
boot.ini Ntdetect.com) Ainsi chaque partition windows devient aussi "system partition*" (*dénominations Microsoft) et la perte d'un volume n'interdit pas le démarrage des autres volumes ou des autres disques. Ce n'est pas le cas lorsqu'il n'existe qu'un seul boot.ini dans l'ordinateur
_________________________________________________
mountvol /? donne les GUID des volumes


Comment vérifier la lettre du registre en cours d'utilisation

(seulement utile avec plusieurs systèmes XP)

Utiliser set pour vérifier les variables d'environnement
ou bien:
Ouvrir une fenêtre dos et taper
(lettre):             (va sur un volume)
cd \                    ( va au répertoire racine)
cd  %windir%   si on va au répertoire windows c'est bien la lettre du volume de démarrage
Si on reste dans le répertoire racine ce volume n'héberge pas le registre en cours d'utilisation
 


Un programme de démarrage compact (pour les disques de base)

Le programme de démarrage compact décrit ci-après tient entièrement dans le secteur de démarrage (MBR)
J'ai modifié le programme de John S. Fine smbmbr.asm à http://my.execpc.com/~geezer/johnfine/
La version modifiée smbnew.asm peut être utilisée avec des disques de plus de 8 Go et avec Windows XP (signature des disques)
Le disque de démarrage doit être choisi dans le bios .
Peut démarrer seulement une des partitions principales (pas sur partition étendue).
Smbnew.asm peut être modifié compilé facilement comme expliqué par John Fine pour la version originale smbmbr.asm. Il est possible aussi d'utiliser directement le fichier binaire smbnew.bin comme expliqué ci-après.

Utilisation du programme
Seulement quatre choix:
Taper 1 pour démarrer sur la première partition,
Taper 2 pour démarrer sur la deuxième partition,
Taper 3 pour démarrer sur la troisième partition,
Taper 4 pour démarrer sur la quatrième partition,
sans entrée démarre sur la dernière partition utilisée

Une fois installé sur un disque le programme ne demande pas de modifications si les volumes du disque sont modifiés

Avant de démarrer sur une disquette ou un CD amorcer un démarrage sur la partition qui doit être active
(même s'il n'existe pas encore de système d'exploitation: c'est uniquement pour activer la partition dans le MBR)


Au démarrage s'affichent::
- La dernière partition utilisée (pour démarrer sur une autre partition entrer le numéro de la partition)
- "SMBMBR" (Si vous avez plusieurs disques il est recommandé de remplacer "SMBMBR" par le nom du disque ceci peut être fait directement dans le fichier .bin sans recompiler)
- Un beep demande d'entrer une touche
- La partition effectivement démarrée (ou un message d'erreur)

Messages d'erreur:
- "1 2 3 or 4 only ": vous avez entré un signe qui n'est pas - 1 2 3 or 4 essayez à nouveau
- "no partition " La touche est acceptée mais aucune partition ne correspond sur le disque
- "disk error" : ne peut pas lire ou écrire sur le disque
Les autres messages proviennent du bios ou du système d'exploitation

Modifications possibles sans compilation
Remplacer smbmbr par le nom du disque . Il est possible aussi de changer la valeur de certaines temporisations.

Avant installation
Voir la documentation XP Master Boot Record on Basic Disks
Préparer un disque de démarrage DOS minimal (comme pour flasher un bios mais ajouter le clavier azerty) Voir http://www.bootdisk.com/
Ajouter les fichiers suivants:
- partcopy.exe http://my.execpc.com/~geezer/johnfine/pcopy02.zip
- un petit éditeur de secteurs de disques (comme diskedit )
- le fichier binaire smbnew.bin qui doit être transféré dans le MBR

Installation
Après un démarrage sur la disquette
Sauvegarder le début du disque sur la disquette
partcopy -h0 0 10000 original.mbr
Comme sauvegarde supplémentaire copier le premier secteur du disque (l'original) dans par exemple le cinquième secteur
partcopy -h0 0 200 -h0 800
Installer le fichier binaire dans le MBR
partcopy smbnew.bin 0 1b4 -h0 (1b4 est la longueur de la zone a copier)
Comme sauvegarde supplémentaire copier le le premier secteur du disque dans par exemple le quatrième secteur
partcopy -h0 0 200 -h0 600
et le début du disque sur la disquette
partcopy -h0 0 10000 smbnew.mbr

Quelques précautions
Pour installer sur un disque il est préférable de déconnecter les autres disques (enlever le petit connecteur de l'alimentation).
Utiliser le petit éditeur de disque pour vérifier le début du disque avant et après chaque modification. La fin du premier secteur (1b4 à 200) ne doit pas changer sinon tous les fichiers du disque peuvent être perdus
Il est préférable d'expérimenter en ajoutant un nouveau disque vide. Il est possible qu'après des essais infructueux il soit impossible de partitionner le disque avec fdisk. Il est alors probable que la table de partition soit devenue illisible. Dans ce cas il est possible de récupérer le disque (mais pas les données) en effaçant la table de partition ou le premier secteur du disque avec un éditeur de disque

Restauration
La restauration de smbnew peut devenir nécessaire par exemple après une installation de windows qui modifie le MBR. Pour modifier un MBR il est préférable d'enlever les autres disques. Après démarrage sur la disquette d'installation smbnew il est utile de lire le MBR pour savoir ce qui a été modifié (programme de démarrage ou table de partition). Pour restaurer snbnew à partir de la disquette taper
partcopy smbnew.mbr 0 1b4 -h0
Pour restaurer à partir du quatrième secteur du disque taper
partcopy -h0 600 1b4 -h0
Il est possible de restaurer aussi la table de partition et la signature: partcopy -h0 600 200 -h0) mais il faut être sur que la sauvegarde est à jour une modification de partition a pu être faite depuis la dernière sauvegarde (par exemple FAT 32 à NTFS).

Modifications avec compilation
Voir http://my.execpc.com/~geezer/johnfine/ Les mêmes opérations peuvent être faites avec smbnew.asm


boot.ini pour plusieurs XP avec menu XP et sans programme de démarrage compact

C'est la configuration classique
Exemple:
3 disques sur un contrôleur HPT370
Primaire maître D60 avec 2 partitions primaires comme partitions de démarrage: D60 1, D60 2,
Primaire esclave B60 avec 3 partitions primaires comme partitions de démarrage: B60 1, B60 2, B60 3
Secondaire maître B45 avec 3 partitions primaires comme partitions de démarrage: B45 1, B45 2, B45 3
Windows Me sur B45 1, Linux sur B45 3, XP sur les autres partitions. Le disque de démarrage (choisi avec HPT370) est B45
Dans ce cas je trouve que le premier disque est B45 rdisk(0), second D60 rdisk(1) et troisième B60 rdisk(2).
Le boot.ini dans B45 1 (partition système) est:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(1)partition(1)\WINDOWS
[operating systems]
C:\ = "Microsoft Windows Me B45 1"
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professionnel B45 2" /fastdetect /noexecute=optin
C:\linux.ini="Linux B45 3"
multi(0)disk(0)rdisk(1)partition(1)\WINDOWS="Microsoft Windows XP Professionnel D60 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Microsoft Windows XP Professionnel D60 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(1)\WINDOWS="Microsoft Windows XP Professionnel B60 1" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(2)\WINDOWS="Microsoft Windows XP Professionnel B60 2" /fastdetect /noexecute=optin
multi(0)disk(0)rdisk(2)partition(3)\WINDOWS="Microsoft Windows XP Professionnel B60 3" /fastdetect /noexecute=optin

C:\ doit avoir Ntldr et Ntdetect.com
Le fichier C:\linux.ini a été créé en utilisant un petit éditeur de secteurs de disques en enregistrant le premier secteur de la partition de démarrage Linux B45 3 vers un fichier.

Lettres après démarrage sur une de ces 7 partitions primaires 

un système XP installé en C:\ puis 5 copies de cet XP

Windows Me voit seulement les trois Fat32 partitions

D60_1  D60_2 B60_1  B60_2  B60_3  B45_2 B45_1
D60_1 C D D D D N
D60_2 K C K N O D
D60_3 I I I I I I
D60_4 E E E E E E
D60_5 F F F F F F
D60_6 G G G G G G
B60_1 D K C K K K
B60_2 N N N C N O
B60_3 O O O O C P
B60_4 H H H H H H
B60_5 L L L L L L
B60_6 M M M M M M
B45_1  Q Q Q Q Q Q C
B45_2 V V V V V C E
B45_6 T T T T T T D
B45_7 U U U U U U
Les lettres des partitions étendues ne changent pas dans les XP. Si nécessaire les lettres des partitions primaires (autres que C:) peuvent être changées en utilisant le gestionnaire de disque de XP.
Le menu XP est très commode mais une indisponibilité de la partition B45 1 empêche le démarrage. Les deux solutions suivantes n'ont pas cet inconvénient: le démarrage est toujours possible même si on perd toutes les autres partitions.

boot.ini pour chaque XP avec un programme de démarrage et sans menu XP

Exemple de fichier boot.ini pour démarrer un XP sur la deuxième partition du disque de démarrage sans menu de démarrage XP:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professionnel" /fastdetect /noexecute=optin
Placer ce boot.ini dans la deuxième partition et ajouter Ntldr and Ntdetect.com
Si vous utilisez smbnew le disque de démarrage est choisi dans le bios. Tous les fichiers boot.ini auront: multi(0)disk(0)rdisk(0).
Après une copie il suffit de mettre à jour le numéro de partition dans la ligne multi(0)disk(0)rdisk(0)partition(?) du boot.ini du volume qui démarre directement sans menu XP.

Démarrage avec un menu XP ou avec un programme de démarrage compact

La partition système par défaut a un boot.ini normal avec menu (voir ci-dessus) Les autres volumes XP ont un boot.ini simplifié (et Ntldr and Ntdetect.com)
Avec cette configuration il est possible de choisir comme d'habitude la partition de démarrage avec le menu XP mais aussi avec le programme de démarrage compact. Il est même possible d'avoir plusieurs boot.ini avec menu.
Pour copier Vista
Pour copier Windows 7
10 mai 2011 _________g@gjullien.fr__________