Migrer votre VM Oracle VirtualBox vers Hyper-V

J’ai récemment eu un besoin pas banale… J’ai en effet eu besoin de convertir une VM créée sur Oracle VirtualBox vers le format VHD pour l’utiliser sur Hyper-V.

Ne souhaitant pas utiliser VirtualBox, j’ai donc cherché à convertir cette VM ou tout du moins à l’exporter afin de pouvoir l’utiliser sous Hyper-V. Pour rappel, Hyper-V est intégré à votre licence Windows 10 si vous utilisez le niveau Professional ou au-delà.

Avant de trouver la solution définitive, j’ai suivi plusieurs articles… et c’est finalement la méthode ci-dessous qui a fonctionné pour moi. Par ailleurs, je ne prétends pas que ce soit la seule méthode mais celle-ci a fonctionné pour moi. 🙂

Etape 1 – Stopper et préparer votre VM sous VirtualBox

Avant tout, vous devez bien entendu stopper la VM en question sur Oracle VirtualBox. Cette dernière doit être complètement éteinte (et non pas dans un état suspendu ou sauvegardé). Si votre VM dispose de snapshots, vous devrez également les supprimer. Libre à vous de conserver un ancien snapshot ou le plus récent, mais vous devez fixer l’état de votre VM car les snapshots ne seront pas exportés / conservés durant le processus.

Etape 2 – Exporter votre VM via VirtualBox

Dans le menu supérieur, cliquez sur File, puis Export Appliance. Adaptez en fonction de la langue que vous utilisez pour votre Oracle VirtualBox.

Personnellement, j’ai sélectionné le format OVF 2.0. Cliquez sur Next.

Choisissez ensuite l’emplacement vers lequel vous souhaitez exporter votre VM. En sortie de processus, vous aurez un fichier portant l’extension OVA.

Etape 3 – Conversion du format OVA vers VMDK

Pour la suite, nous allons simplement utiliser le logiciel gratuit 7-Zip. Vous le connaissez probablement pour compresser et décompresser des archives. Mais il est également capable d’autres prouesses ! 🙂

Dans notre cas, la simple commande suivante va nous permettre d’obtenir 2 autres fichiers différents à partir du fichier OVA :

7z.exe x Export_VM.ova

  • Un fichier portant l’extension VMDK (on va s’en servir)
  • Un fichier portant l’extension OVA (on s’en fout)

Cette étape – je ne l’ai pas inventé – mais je l’ai trouvé sur cet excellent article.

Etape 4 – Convertir le fichier VMDK en VHD ou VHDX (pour Hyper-V)

Pour cette partie, j’ai simplement utilisé un logiciel bien connu dans le milieu de la virtualisation et qui vous permettra de réaliser différentes conversions entre Hyper-V ou VMware (et inversement) : StarWind V2V Image Converter.

Cet outil est gratuit mais vous devrez renseigner une adresse email pour pouvoir le télécharger. Plus d’informations en suivant ce lien. Une fois installé, vous pourrez convertir ce fichier VMDK au format VHD ou VHDX.

Sélectionnez le fichier VMDK que vous avez précédemment généré.

Concernant le format de sortie, adaptez votre choix entre VHD ou VHDX. Dans mon cas, il s’agit d’une vieille VM sous Windows Server 2008 R2 en entrée. Les 3 options ont fonctionné – mais si ce n’est pas votre cas,  renouvelez l’opération en changeant de format.

L’opération prendra plusieurs minutes selon la configuration de votre poste. Une fois que c’est terminé, vous aurez votre fichier VHD ou VHDX.

Etape 5 – Utilisation de votre fichier VHD ou VHDX dans Hyper-V

Dans mon cas, je cherche à utiliser Hyper-V. Il me reste donc à créer une nouvelle machine virtuelle.

Au moment de choisir le disque dur à utiliser, veillez à ne pas créer une nouveau disque pour la VM mais bien à attacher un disque dur existant. Sélectionnez alors votre fichier VHD ou VHDX.

Etape 6 – Points d’attention

  • En fonction du type de VM que vous souhaitez utiliser sous Hyper-V et si votre premier test n’est pas un succès pensez à jouer sur le réglage de la génération de la VM sous Hyper-V (Generation 1 ou Generation 2).
  • Si votre VM disposez des “Guest Additions Tools” lorsqu’elle fonctionnait sous Oracle VirtualBox, vous devrez peut-être supprimer ces outils avant le premier export ou au moment du chargement dans Hyper-V (moi cela ne m’a pas posé de soucis mais si c’est le cas, pensez à ça aussi).

Voilà, c’est terminé. Votre VM est disponible sous Hyper-V. 🙂