Je viens donc d’avoir un nouvel ordinateur portable, pas pour remplacer l’actuel, mais pour l’avoir en tant que machine de test/expérimentation via des machines virtuelles. Et malheureusement ou heureusement, il était livré avec Windows 7 édition familiale premium 64 bits. Je n’en avais pas vraiment besoin puisque j’ai prévu de le réinstaller en Debian et KVM comme virtualiseur.
Néanmoins, je me suis dit qu’il serait bien de récupérer le Windows (et sa licence associée) en tant que machine virtuelle sur mon portable de travail, le tout avant de le ré-installer en Debian. Cela sera ainsi une machine Windows 7 que je pourrai utiliser pour faire des tests de fonctionnement (genre JMeter sur Windows 7 ou l’affichage d’un site avec IE 9/Win7, etc).
Le travail à faire consiste donc à « virtualiser » le nouveau portable. Cela s’appelle le « physique vers virtuel » ou « physical-to-virtual », P2V de son petit nom. Voici ma recette :
Ingrédients :
- Un nouveau portable tout neuf avec son Windows 7
- Un portable existant en Debian 6 avec Virtual Box 4.1
- Un CDROM (ou une clé USB) Gparted Live
- Le programme (gratuit) Disk2vhd de Microsoft / Sysinternals
- Un disque dur externe (optionnel) pour le transfert entre les deux portables
Préparation :
Le nouveau portable a un disque dur de 500 Go, répartie en 3 partitions :
- SYSTEM_DRV (taille 1,5 Go)
- Lenovo_Recovery (taille 9,8 Go)
- Windows7_OS (taille 455 Go)
Les 455 Go pour le Windows sont trop importants, il faut réduire cela.
Ceci peut être fait après la virtualisation, mais comme je ne savais pas trop au début quelle serait la taille du fichier image final : 500 Go ou juste la taille des données utilisées ? j’ai préféré le faire avant.
Pour réduire la taille de la partition Windows, il est possible de le faire avec l’utilitaire de gestion des disques livré avec Windows. Cependant il n’est pas assez efficace, car il ne peut pas réduire au-delà du dernier secteur rempli, donc si vous avez des données à la fin de la partition, vous n’allez par pouvoir réduire de beaucoup (même avec une défragmentation avant).
J’ai préféré utiliser une clé usb Gparted Live. Ce dernier sait réduire une partition NTFS (windows) à la taille voulue, même si il doit pour cela faire le déplacement de données situées dans la partie à réduire.
J’ai donc réduit la partition Windows à 60 Go avec le programme Gparted.
Après la réduction, au démarrage de Windows (toujours sur le portable physique), il y a l’exécution d’une vérification du disque dur (un chkdsk). Et voilà pour la préparation.
Virtualisation du disque dur :
Bon, maintenant l’étape de virtualisation. Ici, l’utilitaire de Microsoft, Disk2Vhd va entrer en action.
L’idée de la virtualisation du disque dur est de transformer le disque dur entier (toutes les partitions) en un seul fichier. Ce dernier va être gros en taille (avec Disk2Vhd, c’est environ un peu plus que la taille des données utilisées), il faut donc prévoir un disque de destination cible ayant la taille ciblée. On peut utiliser un disque dur externe ou bien utiliser l’espace libéré dans l’étape de préparation ci-dessus. J’ai fait le deuxième choix, et donc j’ai créée une nouvelle partition « temporaire » sur le Windows.
Ensuite, j’ai lancé le petit utilitaire Disk2Vhd, et j’ai sélectionné les trois partitions (je ne crois pas que le trois soient vraiment nécessaires) sans prendre la partition temporaire qui va recevoir le fichier image VHD.
Bien entendu le dossier cible a été configuré vers le lecteur de la partition temporaire.
On démarre la virtualisation, Disk2Vhd travaille assez vite (environ 1 min par Go pour moi).
Voilà, on a donc un beau fichier VHD d’environ 33 Go ensuite.
Il suffit de le transférer sur le portable qui contient VirtualBox.
On créé une machine virtuelle Windows 7 64 bits (1 CPU, 1,5 Go de RAM), et on pointe directement sur le fichier VHD (VirtualBox reconnait directement ce format).
On démarre la machine virtuelle.
Le Windows 7 n’est plus activé, il faut le refaire, en utilisant le code de licence sur l’étiquette Microsoft collée sur le portable (cachée derrière la batterie pour moi). Et hop.
Il ne reste plus qu’à installer les pilotes « virtual box » pour une meilleure intégration de la VM sur le portable Debian, et faire un partage de fichiers entre la VM Windows et le système hôte pour faciliter les échanges de fichiers entre eux.
Maintenant je peux ré-installer le nouveau portable en Debian et en formatant tout son disque dur.