Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi)

Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi).

Par défaut, une image VMWare (vmdk) ne peut pas être utilisée telle quelle par VirtualBox.
Il faut effectuer quelques modifications dessus, pour les rendre compatibles.

Pré-requis : VMWare Player ou VMWare Server ou VMWare Workstation

1 – Démarrer l’image vmdk dans VMWare
2 – Télécharger dans la VM, mergeide. Cet utilitaire efface chaque références aux controlleurs SCSI actuellement présent. Au prochain redémarrage, les disques surs seront vu comme étant en IDE.

Remarque :
Il est à noter que chaque administrateur soucieux de la compatibilité, devrait créer ses machines virtuelles en utilisant des disques IDE, ou en ayant exécuté « mergeide ».  Cela favoriserait l’échange des VM.

3 – Désinstaller les VMWare Tools
4 – Decompresser l’archive « mergeide », et executer le fichier .bat
5 – Renommer les drivers suivants, situés dans C:\Windows\System32\drivers :

– agp440.sys
– intelppm.sys

Note :
VirtualBox émule une carte graphique en PCI.  Il est donc inutile que Windows tente de démarrer la carte en AGP, ce qui peut être une source d’erreur.

6 – Vous pouvez arrêter la machine virtuelle. Celle-ci peut désormais être utilisée sans problème par Virtual Box.
7 – Démarrer VirtualBox, créer une nouvelle machine virtuelle, et importer le fichier vmdk.
8 – Editer les préférences de la machine virtuelle. Dans la section « Général », clicker sur l’onglet « Avancé ». Cocher la case « Activer l’IO APIC ».

vmware-ioapic

===========

Si vous êtes un puriste, voici quelques optimisations à apporter à votre VM.

Si vous utilisez windows XP :
– Une fois l’étape 5 terminée, munissez-vous de votre CD de windows XP. Extraire du fichier I386\HALACPI.DL_ le fichier Halacpi.dll

Note :
Pour extraire le fichier, ouvrir une fenêtre console, et taper : EXPAND D:\i386\halacpi.dl_

– Renommer le fichier Halacpi.dll en hal.dll. Remplacer le fichier c:\windows\system32\hal.dll par le fichier renommé.

Note :
VMWare utilise en effet l’ACPI et l’APIC. Hors VirtualBox ne gérant par l’APIC, le fait d’avoir à activer cette option dans l’étape 8 diminue les performances de la VM.

– Télécharger « SDelete » de M. Russinovich depuis le serveur de Microsoft (gratuit) . Puis décompresser l’archive dans un dossier : « C:\Program Files\sDelete » par exemple.
– Toujours depuis le windows virtuel, défragmenter le disque virtuel à l’aide de jkdefrag (gratuit)
– Dans une fenêtre console, aller dans le dossier de sDelete, et tapper :

sdelete -c

Cet utilitaire va remplir de zero les zones non utilisées du disque virtuel.
– Arreter la VM.
– Aller en console dans le dossier de Virtualbox, et taper la commande suivante :

vboxmanage clonehd fichier.vmdk fichier.vdi -format VDI

VirtualBox crée donc une copie de votre disque dur vmware dans une nouvelle image au format vdi. Grâce à sdelete vous constaterez que l’image vdi créée est plus petite que l’image d’origine vmdk.

Vous pouvez désormais démarrer virtualbox, créer une nouvelle VM, et importer le vichier vdi que vous venez de créer.

On peut pousser l’optimisation plus loin, en gérant directement le disque dur en SATA :
Dans les préférences de la VM, section « disques dur », cocher la case « Activer le controleur SATA ».

– Démarrer la VM. Windows détecte le controlleur SATA.
– Télécharger les driver « Intel matrix storage manager« . installez les.
– Arreter la VM.
– Editer les préférences de la VM. section « disques dur ». changez l’emplacement en « SATA Port x ».

vmware-sata

Source :

http://www.virtualbox.org/wiki/Migrate_Windows

16 réflexions sur « Convertir une image virtuelle VMWARE (vmdk) Windows au format Virtual Box (vdi) »

  1. Bonjour Bertrand,

    Merci pour ce « how-to » très clair. Cependant j’ai une petite question. Ma VM (créer pour VMWare player 2) a séparé le disque virtuel .vmdk en plusieurs parties de 2GB chacune. Est-ce qu’ils doivent être recomposés en un seule fichier. Si oui, connaissez-vous la méthode a suivre.

    Stephen…

  2. Bonjour Stephen,

    Ta question est très intéressante.
    J’avoue ne plus avoir VMWare depuis plusieurs mois déjà. Donc je ne pourrais pas faire un test grandeur nature dans les heures à venir.
    Cependant, je peux te proposer plusieurs pistes :
    – La première piste est d’utiliser un shareware sous Windows appelé MakeVM. Cet outil devrait être capable de convertir ton images vmdk de type « sparse disk » (plusieurs fichiers) en une seule image « monolithic disk »
    – La deuxième piste consiste à utiliser l’utilitaire Vmkfstools (présent dans /usr/sbin/vmkfstools) qui est fournit avec VMWare Server et ESX
    Il faut ensuite utiliser la commande avec le paramètre -i :

    $ vmkfstools -i ‹vmdk_fractionné› -d thin ‹vmdk_unifié›
    ou
    $ vmkfstools -i ‹vmdk_fractionné› ‹vmdk_unifié›

    – As-tu regardé si VirtualBox pouvait importer ta VM? Si oui, si l’import réussi, il est possible avec vboxmanage de réexporter cette image convertit au format vmware classique.

    Merci de me tenir au courant de tes avancées.

    Bertrand.

  3. Salut Bertrand,

    Âpres quelques recherches j’ai trouvé la solution.
    Il existe un utilitaire de vmware qui permet la manipulation des fichier .vmdk « vmware-vdiskmanager ». Malheureusement, vmware-vdiskmanager n’est pas distribué avec vmware player et n’est pas disponible pour téléchargement sur le site vmware.com.

    J’ai téléchargé la version gratuite de vmware-server qui inclus l’outil en question et voici la ligne de commande que j’ai utilisé.

    ./vmware-vdiskmanager -r FichierPricipal.vmdk -t 0 Nouveau.vmdk

    -r : convert the specified disk; need to specify
    destination disk-type. For local destination disks
    the disk type must be specified.

    -t : disk type id
    Disk types:
    0 : single growable virtual disk <=== Choisir cette option
    1 : growable virtual disk split in 2GB files
    2 : preallocated virtual disk
    3 : preallocated virtual disk split in 2GB files
    4 : preallocated ESX-type virtual disk
    5 : compressed disk optimized for streaming

    Ça pourrait peut-être servir a quelqu’un.

    Stephen….

  4. Salut,

    J’ai beau installé les Additions Invités via VirtualBox 3.1.6r59338 et avoir activé le Pressepapier partagé en Bidirectionnel, je ne peux que copier-coller que du texte entre mon host XP SP3 et mon guest XP SP3.

    Je passe donc par les documents partagés sur mon host via mon guest.

    J’arrive à déposer des fichiers depuis le guest sur le host et l’inverse non.

    Quelqu’un aurait-il des idées :

    – pressepapier
    – documents partagés en bidirectionnel

    Merci

    Raph 🙂

  5. Bonjour Ridder69,
    Je n’ai jamais rencontré ce problème.
    Je tourne depuis un Windows 7 et Win XP SP3 en host, avec des Win XP guest et des distrib Linux (Debian, OpenSuse) en guest.

    As-tu redémarré le host et les guest. As-tu désinstallé puis redémarré et ensuite installé les additions?

  6. Bonjour, merci pour ce tuto que j’ai lu après coup…

    J’ai créer une image d’une machine réelle que j’aimerais bien virtualiser or je n’ai pas lancé l’outil MergeIDE avant. Il y a-t-il un moyen de modifier directement le registre sur l’image (je peux monter cette image dans mon hôte, elle est au format VHD).

    Auriez-vous une idée ?

  7. En théorie, il faudrait faire ceci :
    – monter l’image vhd, avec un logiciel style winMount, qui va créer une lettre de lecteur virtuel par partition
    – démarrer regedit et charger le registre de la VM
    – faire les modifs

    Cependant au redémarrage, il se peut qu’il y ait des messages de warning sur la partition ntfs, vu que celle-ci n’a pas été modifiée par le système d’origine..

    Une autre solution, de Citrix, permet la conversion de fivhier vhd au format ovf, que l’on peut importer dans virtualbox :
    http://community.citrix.com/display/xs/Kensho

    Enfin la solution la plus rapide :
    – rouvrir le fichier vhd et y copier dedans MergeIde..
    Cela prends 5 min, alors pourquoi se compliquer les choses?

  8. « Enfin la solution la plus rapide :
    – rouvrir le fichier vhd et y copier dedans MergeIde..
    Cela prends 5 min, alors pourquoi se compliquer les choses? »

    Mais comment appliquer la modification MergeIDE sachant que je ne peux pas bouter la machine?

  9. La solution à ce problème:
    – créer une machine virtuelle ayant l’image de la machine réelle comme disque dur.
    – booter sur la VM, avec hiren boot-cd
    – utiliser les utilitaires de correction de registre du hiren boot-cd (fix hard disk registry)

  10. s.v.p si quelqu’un peut me donner un coup de main comment convertir un fichier vmdk en ovf pour virtual box

Laisser un commentaire