2010-11-07

Versionner XP en N partitions

Les systèmes d’exploitation de Microsoft sont très fragiles. Windows XP n’échappe pas à la règle : une petite installation de driver ou autre opération innocente, et paf il ne démarrera plus.

Ma solution: avoir une version de « test » où le déploiement de logiciels est évalué d’un point de vue stabilité, utilité etc. et une version de « production » censée fonctionner. Je garde des images à des points particuliers (ex: mise à jour du système, installation d’un programme spécial) sur une partition dédiée. Et le tout est démarré/secouru en cas de problème par Linux.

Pourquoi utiliser XP ? C’est un système d’exploitation assez ancien, donc assez bien connu, léger, qui permet de faire fonctionner la plupart des logiciels « Windows-uniquement » nécessaire pour des opérations spécifiques comme reflashage, mise à jour de firmwares, tests à domicile par un fournisseur d’accès internet qui a du personnel uniquement formé à Windows...

L’opération se déroule en 3 phases :

  • création des partitions pour la manoeuvre
  • installation du XP et de ses drivers
  • installation de Linux et démarrage du versionnage
  • restoration des images

Pour les partitions, je vous recommande de respecter le mode de compatibilité Windows Vista, qui a surtout pour avantage une maximisation des performances sur les disques durs SSD en respectant l’alignement des partitions sur les blocs logiques de 4ko

Beaucoup d’informations sont disponibles sur divers sites - pour faire simple, il suffit que fdisk avec les options « c » et « u » affiche des multiples de 2048 pour le début et la fin de chaque partition.

Pour XP, les drivers et Linux - faites votre choix !

Personellement, une simple version de secours de Linux me suffit : un noyau, un initrd mis dans une partition vfat cachée (pour ne pas déranger Windows : type 1c en LBA, 1b sinon), grub par dessus et voilà !

Pour lancer le versionnage, faites une image de votre partition avec l’outil de votre choix - comme partimage.

Ensuite, on attaque la partie sérieure : la restoration des images.

XP est fait d’une telle manière que déplacer une image binaire de sa partition ne suffit pas à le faire redémarrer. D’autres modifications sont nécessaires.

1) Écrire l’offset de début de la partition en hexadécimal / petit boutien à 0x1c

Par exemple chez moi :

Partition / offset / Hexadécimal

/dev/sda3 / 219566080 / 0d165000

/dev/sda4 / 422354944 / 192ca000

Si l’image faite par partimage vient de /dev/sda3 et que vous l’installez sur /dev/sda4, avec hexedit /dev/sda4 aller à 0x1c et remplacer 00 50 16 0d, par 00 0a 2c 19:

2) Enlever la table des volumes du registre

Un outil dédié existe sous Linux : chntpw

Supposons que l’image de /dev/sda3 a été restorée sur sda4, ces deux partitions faisant la même taille, et que sda4 est montée dans /mnt en lecture-écriture par exemple grâce à ntfs-3g

chntpw /mnt/sda4/Windows/system32/config/system

ls

cd MountedDevices

ls

delallv

q

3) Éditer boot.ini pour corriger la partition

boot.ini est l’équivalent de menu.lst de grub pour Windows. Il sert à indiquer quels systèmes sont démarrables sur quelles partitions.

Le fichier /mnt/sda4/boot.ini doit ressembler à :

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(4)\WINDOWS

[operating systems]

multi(0)disk(0)rdisk(0)partition(4)\WINDOWS="XP /dev/sda4" /fastdetect /NoExecute=OptIn

En démarrant avec grub (chainload) sur cette partition XP devrait démarrer.

Pour grub : penser à cacher la partition inutilisée, ici sda3, et révéler la partition utilisée, ici sda3 par hide/unhide),

Au moindre problème sur ce XP, retour à la version voulue. À la moindre évolution (nouveau programme), version de sauvegarde.

Et XP vivra sur la partition de votre choix sans vous poser plus de problèmes...

0 commentaires:

Enregistrer un commentaire