Terrifiant comme un ghost, beau comme un Adonis.

  • Le problème est simple : recopier un MS-Windows d'un disque vers un autre, en gardant les réglages d'origine.
  • La plupart des utilisateurs font appel pour cela à Ghost ou à Adonis True Image.
    • Ghost pose problème lors du démarrage de MS-Window, au login : tous les comptes sont désactivés. Pas de message d'erreur, ni de demande de réactivation, on ne peut simplement plus se logger.
    • Adonis semble mieux fonctionner, mais c'est également un logiciel payant.
  • Heureusement, il reste dd , le meilleur ami de vos disques durs.
  • Merci à Frédéric Jolliton qui m'a incité à utiliser dd, et qui m'a expliqué l'astuce du mode LBA.
  • Avant de passer aux choses sérieuses, veuillez lire le disclaimer de rigueur, qui suit.


Comme d'habituuudeuhh...

  • Rien n'est garanti.
  • Vous opérez en toute connaissance de cause.
  • Vous avez lu le manuel, vous l'avez compris, et vous assumez les conséquences des manipulations.
  • Les plaintes concernant les pertes de données, consécutives à de mauvaises manipulations, ne recueilleront qu'un rire moqueur.


Dédé à la rescousse

  • Le principe est simple:
    • Nous allons profiter du fait que les problèmes de géométrie de disques ont disparus depuis l'arrivée du LBA.
    • Avec le LBA, les disques sont vus comme une simple succession de secteurs, ce qui convient très bien à dd.
  • Le disque dur de destination peut avoir une taille supérieure ou égale au disque source.
    • Cependant, il est préférable que la partition MS-Windows à cloner corresponde physiquement au premier secteur du disque.
    • C'est le cas si votre partition d'installation correspond à la première partition physique du disque dur.
    • La manipulation est faisable si MS-Windows est intallé sur la 6ème partition logique de la 4ème partition étendue. Il faudra copier tout ce qui se trouve auparavant, et éventuellement pas la suite, utiliser un utilitaire de redimensionnement de disque.
  • Pour l'exemple qui suit, nous nous plaçons dans le cas le plus courant:
    • MS-Windows est installé sur la première partition physique du disque.


L'exemple que nous attendions tous.

Structure du disque source
  • J'ai coupé un peu la sortie du fdisk pour garder ce qui est intéressant
#~ fdisk -l /dev/sda

Périphérique Amorce    Début         Fin      Blocs    Id  Système
/dev/hda1   *           1        3851     8192984    c  W95 FAT32 (LBA)
/dev/hda2            3852      114781   236003575    f  W95 Etendu (LBA)
/dev/hda5            3852       17623    29299911+   b  W95 FAT32
/dev/hda6           17624      114539   206188771+   7  HPFS/NTFS



Première étape: copie brute avec dd
  • Nous voulons donc copier la partition primaire numéro un du disque sda vers sdb.
  • Nous utilisons dd, et nous faisons fi des notions de partitions. Ici, nous n'allons copier que des secteurs.
    • la MBR sera donc bien sûr copiée au passage, et le disque restera parfaitement bootable avec son menu d'origine.
  • Pour copier les 9 premiers gigas du disque sda, vers le disque sdb:
    • dd if=/dev/sda of=/dev/sdb bs=1k count=8500


Seconde étape: fignolage avec fdisk
  • La première partition physique est copiée entièrement (si vous avez bien calculé la taille).
    • Mais dd ne s'est pas arrêté à la fin de la première partition physique, et a commencé à vous ramener le reste.
    • Nous allons utiliser le fdisk de Linux pour corriger cela.
  • Attention : ne pas rebooter sous MS-Windows avant d'avoir procédé à la correction.
    • Si à ce stade vous utilisez un utilitaire MS-Windows (tel que diskmgmt.msc) pour manipuler les partitions, vous allez fusiller votre disque (pas physiquement, rassurez-vous), et vous serez bon pour recommencer depuis le début.
  • fdisk version Linux, donc:
    • Virez les parititions surnuméraires.
    • Recréez les.
    • Eventuellement, formatez les nouvelles partitions (mais vous pourrez le faire sans risque depuis MS-Windows).


Reboot
  • Il ne vous reste plus qu'à rebooter sur votre nouveau disque, et achever la copie des données de l'ancien disque sur celui-ci
    • Seule la partition système nécessite d'être copiée avec dd.



Plus rapide avec cat

  • On me souffle dans l'oreillette que les partitions ne sont que des fichiers, et qu'une façon plus rapide des les copier serait:
    • cat /dev/sda >/dev/sdb
  • Voire même:
    • cp /dev/sda /dev/sdb
  • Dans le cas de dd, surtout n'oubliez pas le paramètre bs sinon votre copie va prendre trois jours.



Ca ne boote plus!

  • Au reboot de MS-Windows vous avez l'erreur suivante:
    • fichier hal.dll non trouvé, veuillez le réinstaller
    • (l'erreur est citée de mémoire, mais c'est l'esprit)
  • En réalité, vous n'avez rien à réinstaller, et c'est simplement boot.ini qui ne retrouve pas ses petits.
    • Cette erreur vient souvent du fait d'un déplacement de partitions. Par exemple, MS-Windows était en sda2, et s'est retrouvé en sda1.
  • Vous avez deux possibilités pour résoudre ce problème.


Clonage de la structure, édition depuis MS-Windows
  • Vous pouvez préserver la structure du disque. C'est à dire que la partition de MS-Windows devra garder son numéro.
    • Si MS-Windows était en sda2, quoique vous fassiez, il faudra qu'il garde ce numéro.
    • Ensuite, vous pouvez créer de nouvelles partitions avec diskmgmt.msc depuis MS-Windows.


Edit de boot.ini
  • Vous pouvez aussi éditer le fichier boot.ini et modifier les valeurs avec celles de votre partition système MS-Windows.
    • Pour vous aider à vous y retrouver, voici deux exemples.
  • Premier exemple: MS-Windows est sur sda1 :

[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" /noexecute=optin /fastdetect


  • Seconde exemple: MS-Windows est sur sda2 :

[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" /noexecute=optin /fastdetect



A force de beurrer des tartines (chachacha!)

  • C'est tellement simple en fait que je me demande si ça valait le coup d'en faire une telle tartine.
  • Je vous ai quand même épargné les screenshots du shell, contrairement à une certaine presse Linux.