Comment convertir un (gros) VMDK VMWare en VHD pour Hyper-V

This post is available in english here.

J'ai eu récemment à travailler avec Hyper-V, et je dois dire que c'est assez plaisant.

Les VMs sont très réactives, l'IO n'est plus le goulot d'étranglement que cela a pu être, l'impact des VMs sur la machine hôte est bien moindre qu'avec VPC ou VMWare, il supporte les snapshots et des ACL assez fines popur chaque VM. La vue sur la performance est bien entendu subjective, mais je trouve le tout plus rapide et bien mieux intégré à l'OS que les autres produits. Et à présent d'ailleurs, il existe une version gratuite de Windows Server 2008 appelée Hyper-V Server, qui permet de faire tourner une version minimale de windows en mode texte. Juste Hyper-V et ses VMs.

Au passage, je suis partiellement d'accord avec Paul Thurrott sur "l'expérience utilisateur" de Hyper-V qui n'est pas des plus élégantes dans le détail, imposant l'utilisation de scripting et d'informations trouvées sur des blogs. Mais c'est un produit pour les serveurs, et qui n'est définitivement pas fait pour une personne qui ne comprend pas un minimum ce qu'elle fait.

Récemment donc, j'ai tenté de convertir une VM VMWare vers Hyper-V, et le disque principal de 80Go de la VM avait été créé en mode "fixed flat", soit donc un seul gros fichier VMDK de 80Go.

Donc, j'ai essayé en premier le convertisseur de VMDK en VHD, qui malheureusement ne semble pas supporter les gros fichiers de 80Go. Je sais que cet outil fonctionne avec d'autres disques plus petits, ce doit donc être a cause de la taille du fichier.

J'ai essayé ensuite le VMWare Virtual Disk Manager pour convertir le gros fichier vers un jeu de mutiples fichiers VMDK de 2Go. Après la conversion, l'outil de conversion de VMDK vers VHD a très bien fonctionné, convertissant mes multiples VMDK en un seul VHD dynamique.

La conversion n'est cependant pas terminée, principalement à cause des drivers de stockage installés par windows pour une VM VMWare, qui ne sont pas compatibles avec Hyper-V. Cela veut dire un joli BSOD donnant INACCESSIBLE_BOOT_DEVICE, décrit ici et par le KB 314082.

Il existe deux moyens pour corrigers cela : Créer le fichier reg de l'article de la KB et l'intégrer directement dans la VM VMWare avant d'effectuer la conversion, ou bien de monter le VHD converti dans une autre VM Hyper-V, et de merger le fichier reg dans le SYSTEM hive de l'OS de destination.

La premiere possibilité était hors de question dans mon cas, déplacer à nouveau le disque aurait été une perte de temps.

Cela m'a donc laissé l'option de montage du registry hive. Voici comment s'y prendre :

  • Utiliser une autre VM sous windows pour monter le VHD, afin de pouvoir accéder au fichier hive SYSTEM.
  • Utiliser regedit pour charger le fichier hive SYSTEM situé dans le répertoire System32\config\system et le placer dans HKLM/temp
  • Modifier le ficher reg de la KB en replaçant toutes les références à "SYSTEM\CurrentControlSet" par "temp\ControlSet001", l'importer pour mettre à jour la configuration de démarrage par défaut,
  • Modifier une nouvelle fois le fichier reg pour remplacer toutes les références à "SYSTEM\CurrentControlSet" par "temp\ControlSet002", pour modifier cette fois ci la "Derniere bonne configuration", juste au cas où.
  • Décharger le fichier hive,
  • Arreter la VM courante,
  • Démarrer la nouvelle VM avec le VHD fixé et voilà !
L'opération relativement consommatrice en temps vu la taille des fichiers manipulés, mais qui finalement en vaut la chandelle. La VM fonctionne à présent proprement dans Hyper-V.
Publié vendredi 17 octobre 2008 04:39 par jay
Classé sous
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

# re: Comment convertir un (gros) VMDK VMWare en VHD pour Hyper-V @ mardi 21 octobre 2008 12:19

Bonjour,

Il existe également la solution Microsoft System Center Virtual Machine Manager 2008 qui sortira fin octobre qui permet de réaliser ce type d'opération.

J'ai testé ce type de conversion sur des disques durs d'une 15ène de Go avec la Beta 2 et tout c'est bien passé.

J'attends la version final du produit avec impatience...

Alexandre Marlot


Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01