Il metodo descritto qui si applica ad una virtual machine che risiede fisicamente sul nostro PC. Il procedimento è abbastanza semplice.
1) Prima di tutto scaricate ed installate
Microsoft Virtual Machine Converter 3.0. Questo tool (di cui trovate un esauriente tutorial
qui) mette a disposizione delle nuove cmdlet powershell
2) Aprite una finestra powerhell con diritti di Amministratore ed eseguite i seguenti comandi
Import-Module ‘C:\Program Files\Microsoft Virtual
Machine Converter\MvmcCmdlet.psd1’
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\miodisco.vmdk” -DestinationLiteralPath “C:\miodisco.vhd” -VhdType FixedHardDisk -VhdFormat Vhd
Per una VM di tipo "Generation 2" con supporto UEFI, utilizzare la riga di comando qui sotto
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\miodisco.vmdk” -DestinationLiteralPath “C:\miodisco.vhdx” -VhdType DynamicHardDisk -VhdFormat Vhdx
3) E qui si presenta subito un problema. L'esecuzione di questo comando quasi sempre risulta in un errore del tipo "ConvertTo-MvmcVirtualHardDisk : The entry 1 is not a supported disk
database entry for the descriptor"
4) Sostanzialmente l'errore di cui al punto 3 indica che il descrittore del disco in formato vmWare NON è compatibile con Hyper-V. Per ovviare a questo problema (un tutorial più completo si può trovare
qui) si può utilizzare un tool denominato
dsfok che estrae e reinserisce il decrittore del disco vmWare. Una volta installato eseguite il seguente comando
dsfo.exe "C:\miodisco.vmdk" 512 1024 "C:\descriptor.txt"
Il file estratto ha un formato come quello mostrato qui sotto. Vanno commentate, preponendo il simbolo '#', le righe che danno errore al di sotto del rigo "#DDB" (nel mio caso tutte)
# Disk DescriptorFile
version=1
encoding="UTF-8"
CID=e52f6c81
parentCID=ffffffff
createType="monolithicSparse"
# Extent description
RW 524288000 SPARSE
"SharePoint 2013.vmdk"
# The Disk Data Base
#DDB
ddb.adapterType =
"lsilogic"
ddb.geometry.cylinders
= "32636"
ddb.geometry.heads =
"255"
ddb.geometry.sectors
= "63"
ddb.longContentID =
"952846014b76d094654aa2b5e52f6c81"
ddb.toolsInstallType
= "1"
ddb.toolsVersion =
"10309"
Dopo le modifiche eseguite il seguente comando
dsfi.exe "C:\miodisco.vmdk" 512 1024 "C:\descriptor.txt"
e rieseguite il comando al punto 2.
5) A questo punto aprite Hyper-v Manager e create una nuova virtual machine.
Quando arrivate al passaggio "Connetti disco rigido virtuale", scegliete l'opzione "Usa un disco rigido virtuale esistente" e cercate il file VHD appena creato.
6) Fate partire la vostra virtual machine e controllate che tutto sia andato bene