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…

Advertisements

About guylhem

guylhem.com
This entry was posted in Uncategorized and tagged , . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s