martedì 19 maggio 2020

Convertire una virtual machine VMWare in Hyper-V

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


Nessun commento:

Posta un commento