MVMC : Convertir VMDK en VHDX

I. Présentation

On peut tout à faire transformer la phrase "Convertir un VMDK en VHDX" en "Passer de VMware à Hyper-V", c'est en tout cas ce que j'ai voulu faire sur mon poste de travail en laissant de côté VMware Workstation pour passer à Hyper-V. La problématique principale réside au niveau des disques durs virtuels puisque VMware utilise des fichiers VMDK alors qu'Hyper-V utilise des fichiers VHDX ou VHD.

Alors, comment faire ?

logo-mvmc1Pour faciliter cette migration d'un outil à l'autre, Microsoft a publié un outil dédié à cela : Microsoft Virtual Machine Converter. Aujourd'hui en version 3.1, ce logiciel permet en résumé de prendre vos VMs sur votre hyperviseur ESXi ou votre vCenter et de les envoyer sur un hyperviseur Hyper-V (voir même sur le Cloud Azure).

MVMC embarque également un module PowerShell qui contient des commandlets intéressants, dont un qui permet de convertir un VMDK en VHDX (ou VHD). Dans l'état actuel, l'interface graphique de l'outil ne permet de convertir un fichier VMDK source (et orphelin) vers un VHDX.

Avant de commencer, téléchargez l'outil et éventuellement le guide au format Word contenant une aide complète sur chaque commandlets PowerShell disponible : Microsoft Virtual Machine Converter

II. VMDK to VHDX/VHD

L'installation est très simple, je ne vais pas m'attarder dessus, vous devriez vous en sortir 🙂

Pour cadrer un peu les choses, je me trouve sous Windows 8.1 et je vais convertir le VMDK d'une VM Windows Server 2012 R2.

- Source : E:\VM_SrvFlo\Windows Server 2012 R2 Core (CORE01)\Windows Server 2012 R2 Core (CORE01).vmdk

- Cible : E:\WS2012R2_CORE01.vhdx

N'exécutez pas l'application, ce n'est pas la peine on va utiliser l'interface graphique. Ouvrez plutôt une console PowerShell et chargez le module MVMC (fichier psd1) :

Import-Module "C:\Program Files\Microsoft Virtual Machine Converter\MvmcCmdlet.psd1"

Au sein de ce module, on va utiliser le commandlet "ConvertTo-MvmcVirtualHardDisk" qui peut fonctionner avec deux simples options :

-SourceLiteralPath : Chemin vers le VMDK à convertir

-DestinationLiteralPath : Chemin vers le VHDX à créer

Ce qui donnera :

ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath "E:\VM_SrvFlo\Windows Server 2012 R2 Core (CORE01)\Windows Server 2012 R2 Core (CORE01).vmdk" -DestinationLIteralPath "E:\WS2012R2_CORE01.vhdx"

Vous pouvez ajouter deux options en plus :

-VhdFormat : Prends la valeur "vhd" ou "vhdx" selon le format que vous souhaitez.

-VhdType : Prends la valeur "FixedHardDisk" pour créer un disque virtuel de taille fixe et "DynamicHardDisk" pour un disque de taille dynamique (valeur par défaut).

Note : Dans certains cas, le disque dur virtuel d'une VM sous VMware est divisé en plusieurs fichiers. Ceci ne pose pas de problème, il suffit d'indiquer le fichier d'origine (celui qui n'est pas numéroté) et tous les autres seront pris en compte.

Exécutez la commande et patientez pendant la conversion.

mvmc-vmdk-to-vhdx-1

Quand ce sera terminé, vous obtiendrez un résultat semblable à celui-ci :

mvmc-vmdk-to-vhdx--2

Il ne reste plus qu'à créer un nouvel ordinateur virtuel au sein du Gestionnaire Hyper-V et à lui attacher ce disque VHDX (disque dur existant), et le tour est joué ! Pour ceux qui sont motivés, vous pouvez créer l'ordinateur virtuel en PowerShell par cette commande :

New-VM -Name CORE01 -VHDPath "E:\Machines Virtuelles\WS2012_R2_CORE01\WS2012R2_CORE01.vhdx" -Path "E:\Machines Virtuelles\WS2012_R2_CORE01" -SwitchName "WIFI-LAN"

Il y a diverses options disponibles pour cette commande (aide : New-VM), voici celles utilisées dans la commande ci-dessus :

-Name : Nom de l'ordinateur virtuel dans le Gestionnaire Hyper-V

-VHDPath : Chemin vers un disque virtuel VHD/VHDX existant à attacher à la VM

-Path : Chemin vers l'emplacement de stockage des fichiers de configuration de la VM

-SwitchName : Nom du commutateur virtuel sur lequel vous souhaitez connecter la VM

Pour les autres options, consultez l'aide indiquée précédemment. Sachez que vous pourrez toujours par la suite éditer la configuration de la machine, notamment pour modifier la RAM, le processeur, etc.

Dans le Gestionnaire Hyper-V, on retrouve notre nouvel ordinateur virtuel :

mvmc-vmdk-to-vhdx-3

Par curiosité, on peut aller voir dans les paramètres de l'ordinateur virtuel au niveau du disque dur, et notre disque converti est bien attaché :

mvmc-vmdk-to-vhdx-4

La dernière étape pour valider le fonctionnement est de démarrer l'ordinateur virtuel, là encore PowerShell est possible :

Start-VM CORE01

Il suffit de se connecter ensuite pour suivre l'évolution du démarrage :

mvmc-vmdk-to-vhdx-5

Voilà, le tour est joué ! Microsoft Virtual Machine Converter est vraiment un outil qu'il faut connaître pour la manipulation de disques durs virtuels et de VMs.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Co-Fondateur d’IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno’ est importante je partage aussi des actus.

florian a publié 1610 articles sur IT-Connect.See all posts by florian

3 réactions sur “MVMC : Convertir VMDK en VHDX

  • 28/02/2016 à 19:04
    Permalink

    Bonjour, merci pour cette astuce 🙂
    J’ai un soucis avec certain vmdk (fait sous vmware Workstation) qui ne veulent pas se convertir.
    J’ai l’impression qu’il y a une limite en taille, des vmdk qui font 3 Go la conversion fonctionne, mais les autres au délà de 7 Go à peu près cela ne fonctionne pas.
    j’ai ce message :

    ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk database entry for the descriptor.
    Au caractère Ligne:1 : 1
    + ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath « D:\virtual_machine\ …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : WriteError: (Microsoft.Accel…nversionService:DriveConversionService) [ConvertTo-MvmcVi
    rtualHardDisk], VmdkDescriptorParseException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskC
    ommand

    ConvertTo-MvmcVirtualHardDisk : Une ou plusieurs erreurs se sont produites.
    Au caractère Ligne:1 : 1
    + ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath « D:\virtual_machine\ …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : WriteError: (Microsoft.Accel…nversionService:DriveConversionService) [ConvertTo-MvmcVi
    rtualHardDisk], AggregateException
    + FullyQualifiedErrorId : DiskConversion,Microsoft.Accelerators.Mvmc.Cmdlet.Commands.ConvertToMvmcVirtualHardDiskC
    ommand

    Répondre
  • 28/07/2016 à 10:44
    Permalink

    Bonjour,

    Personnellement, suite à des erreurs de conversion avec cet utilitaire, j’utilise VirtualBox et plus particulièrement la commande vboxmanage clonehd [source vmdk] [destination vhd] pour réaliser une première conversion puis, la conversion de VHD vers VHDX accessible dans l’environnement hyperV.

    Répondre
  • 06/10/2016 à 14:15
    Permalink

    Bonjour,
    j’ai rencontré le même problème que tupiware,
    la méthode de David fonctionne nickel
    Encore merci

    Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *