Come convertire un file VHD in VMDK: una guida passo dopo passo
VMware vSphere e Microsoft Hyper-V sono due delle piattaforme di virtualizzazione più diffuse. Ciascuna soluzione utilizza formati di file di disco virtuale diversi per le VM. Ciò significa che è necessario convertire i file di disco virtuale quando si spostano le VM tra VMware e Hyper-V. Ad esempio, potrebbe essere necessario migrare le VM tra diversi hypervisor a scopo di test. In altri casi, potrebbe essere necessario modificare il formato se ne è stato scelto uno errato durante la creazione della VM.
Hyper-V utilizza i formati VHD e VHDX per le VM, mentre VMware utilizza il formato VMDK. Leggi questo articolo per scoprire come migrare le VM da Hyper-V a un ambiente VMware convertendo un file VHD in un file VMDK.
Formati dei dischi virtuali
VHD indica il formato di immagine disco introdotto come formato di disco virtuale per le VM in Connectix Virtual PC. In seguito, Microsoft ha acquisito Virtual PC e ha continuato a sviluppare questo prodotto di virtualizzazione. Successivamente, Microsoft ha presentato Hyper-V come alternativa a Microsoft Virtual PC. Le principali caratteristiche di VHD sono:
- La dimensione massima supportata dei file VHD è di 2 TB (2^32*512 byte), dove 32 bit rappresentano la quantità e 512 byte la dimensione del settore.
- VirtualBox supporta anche il formato VHD per i dischi virtuali, ancora utilizzato nel cloud Microsoft Azure.
- Le VM Hyper-V di generazione 1 possono utilizzare solo dischi virtuali in formato VHD.
VHDX è la nuova versione del formato di disco virtuale offerto da Microsoft e succede al formato VHD. Il formato VHDX trova ampia applicazione, anche per i dischi virtuali delle VM Hyper-V e per i volumi condivisi del cluster Microsoft. VHDX è un formato di file semiaperto: è possibile scaricare le specifiche del formato di file dal sito web Microsoft per creare applicazioni personalizzate che funzionino con i file VHDX. Le principali caratteristiche di VHDX sono:
- La capacità massima del disco è di 64 TB, rispetto al limite di 2 TB del formato VHD.
- Supporta settori da 4 KB.
- Rispetto ai dischi VHD, è protetto meglio dai guasti causati dalle interruzioni di corrente.
VM di seconda generazione supportano l’utilizzo sia di dischi virtuali VHDX sia di dischi VHD. Tuttavia, le VM Azure possono utilizzare solo dischi virtuali in formato VHD. I dischi virtuali VHDX possono essere creati nella finestra Gestione disco di Windows 10 e Windows Server 2016. Grazie al driver VHDX integrato, nelle versioni più recenti di Windows è anche possibile montare (collegare) le immagini VHDX come unità disco e visualizzarle in Esplora file (Questo PC).
VMDK è un formato aperto di immagini disco virtuali utilizzato dagli hypervisor VMware, VirtualBox, QEMU e altri, ma non è supportato da Hyper-V. I file immagine VMDK possono essere considerati contenitori per l’archiviazione dei dati, analoghi ai dischi rigidi fisici, e sono altamente compatibili con diversi software di virtualizzazione. La dimensione massima del disco virtuale VMDK è stata aumentata da 2 TB a 62 TB.
I dischi virtuali VMDK possono essere suddivisi nei seguenti tipi e varianti: monolitici, suddivisi, sparsi, flat, con provisioning thin e con provisioning thick. I dischi VMDK delta vengono creati quando si acquisiscono Snapshot delle VM. Se VMware Workstation è installato, i file VMDK possono essere mappati (montati) nel punto di montaggio specificato sul computer host. Viene garantito un elevato livello di affidabilità. I settori nativi da 4 KB sono supportati per i dischi virtuali VMDK, utilizzati dalle versioni più recenti dei prodotti VMware con VMFS6 (Virtual Machine File System 6).
Verifica il contenuto di VHD prima di convertire VHD in VMDK
Questo passaggio è facoltativo e consente di verificare lo stato di integrità di un disco virtuale VHD o VHDX di origine e di visualizzarne i file contenuti. Questo approccio evita di confondersi e di perdere tempo convertendo il disco virtuale sbagliato. Se vuoi solo estrarre file dalle immagini VHD, questa è la sezione che fa per te. I file VHD possono essere montati in una directory su Linux e mappati a una lettera di unità specificata in Windows.
Come aprire VHDX in Linux
In Linux, i file VHD e VHDX possono essere montati in una directory specificata (punto di montaggio) dalla console utilizzando gli strumenti libguestfs . In questo modo, puoi visualizzare i contenuti dei file VHD e VHDX in Linux prima di iniziare a convertire VHD in VMDK. Scopriamo come visualizzare il contenuto delle immagini dei dischi virtuali VHD e VHDX in Linux.
Installa il pacchetto necessario:
sudo apt-get install libguestfs-tools
Crea la directory in cui vuoi montare le immagini VHD o VHDX, ad esempio /mnt/vhd/:
sudo mkdir /mnt/vhd/
Esegui il comando per montare un’immagine disco VHD nella directory specificata. Ci troviamo nella directory in cui si trova il file VHD richiesto ed eseguiamo il comando come root:
guestmount --add test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Dove:
-add – apre un disco virtuale.
--ro – un disco virtuale viene montato in modalità di sola lettura.
/mnt/vhd/ è il percorso del file VHD che vuoi montare.
-m /dev/sda1/ è il nome della partizione presente sul disco virtuale VHD. Nell’esempio viene utilizzata una partizione NTFS sul disco virtuale VHD.
Puoi visualizzare tutti i comandi disponibili eseguendo guestmount --help
Nota: Se esegui il comando da un’altra directory, specifica il percorso completo del file VHD, ad esempio: guestmount --add /media/user1/data/test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
Verifica il contenuto dell’immagine VHD montata:
ls -al /mnt/vhd/

Per smontare il disco virtuale, usa il comando:
guestunmount /mnt/vhd/
Allo stesso modo, puoi montare i file VHDX nella directory /mnt/vhd/ creata in precedenza e copiare il contenuto dal disco virtuale montato:
guestmount --add /media/user1/data/WinServer2016.vhdx --ro /mnt/vhd -m /dev/sda2
Dove: /dev/sda2 viene utilizzata perché /dev/sda1/ è la partizione di servizio creata per impostazione predefinita dal programma di installazione di Windows.
È possibile visualizzare il contenuto della partizione di sistema di Windows (disco C:) del disco virtuale VHDX nella console Linux (vedere la schermata seguente).

Come aprire un file VHD in Windows
- Aprire la finestra Gestione computer (fare clic con il pulsante destro del mouse su Computer e selezionare Gestisci nel menu contestuale).

- Nella finestra Computer Management , selezionare Gestione disco , quindi fare clic su Azione > Collega VHD .

- Nella finestra popup, specificare il percorso del file VHD o VHDX. Selezionare la casella di controllo Sola lettura se non si desidera scrivere dati sul disco virtuale. Questa opzione protegge inoltre i dati archiviati sul disco virtuale da danneggiamenti accidentali.

- Il disco è ora montato e visualizzato nella finestra Gestione disco e in Esplora file di Windows (in questo caso, l’unità X:).
Nota: Windows è in grado di rilevare solo le partizioni con file system supportati: NTFS, FAT32, exFAT e ReFS. Se il disco virtuale contiene partizioni Linux con file system ext3, ext4 o altri, non sarà possibile visualizzare il contenuto dei file VHD o VHDX montati nel sistema Windows senza strumenti di terze parti.
Per smontare un disco virtuale VHD o VHDX dal sistema Windows, aprire Esplora file, fare clic con il pulsante destro del mouse sulla lettera di unità assegnata al disco virtuale e selezionare Espelli nel menu contestuale.

Ora, dopo aver controllato il contenuto del disco virtuale VHD (VHDX) e verificato che sia il disco corretto, è possibile procedere alla conversione in VMDK. Esistono due metodi molto economici per convertire VHD in VMDK: utilizzare qemu-img oppure VBoxManage . Entrambe le soluzioni sono gratuite e vengono illustrate di seguito.
Come convertire VHD in VMDK con qemu-img
QEMU è una piattaforma open source per l’emulazione e la virtualizzazione di macchine. Qemu-img è un’utilità del pacchetto software QEMU che può essere usata per convertire dischi virtuali da un formato a un altro. Qemu-img può essere usata per convertire VHD in VMDK; questo è il primo metodo che esamineremo. Qemu-img può essere eseguito sia nei sistemi operativi Windows che Linux.
Utilizzo di qemu-img in Linux
In questo esempio viene utilizzato Ubuntu Linux per eseguire qemu-img .
- Per prima cosa, installare qemu-img dai repository software online:
sudo apt-get install qemu-utils - Accedere alla directory in cui sono archiviate le immagini dei dischi virtuali (in questo esempio, i file dei dischi virtuali VHD e VHDX sono archiviati in /media/user1/data/):
cd /media/user1/data/
Verificare il file VHDX
- Visualizzare le informazioni sull’immagine VHD dopo aver eseguito sudo su per ottenere i privilegi di root:
qemu-img info test-disk.vhd

Allo stesso modo, è possibile verificare le informazioni sul disco virtuale VHDX:
qemu-img info /media/user1/data/WinServer2016.vhdx

Convertire VHD in VMDK in Linux
- Per convertire VHD in VMDK con qemu-img in Linux, eseguire il comando come utente root:
qemu-img convert /media/user1/data/WinServer2016.vhdx -O vmdk /media/user1/data/WinServer2016qemu.vmdk -pDove:
-O– definisce il formato del file di output-p– mostra la barra di avanzamentoAttendere il completamento del processo di conversione.
Utilizzo di qemu-img in Windows
- Scaricare qemu-img dal sito ufficiale (sono disponibili programmi di installazione a 32 e 64 bit). In questo esempio viene utilizzato qemu-img-win-x64-2_3_0 .
- Estrarre i file dall’archivio scaricato, ad esempio, in C:Programsqemu-img .
- Avviare il prompt dei comandi di Windows (CMD) – premere Windows+R per aprire la finestra « Esegui ». Digitare « cmd » nella finestra e premere Ctrl+Shift+Enter per eseguire il comando come amministratore :
cd C:Programsqemu-imgI comandi di qemu-img sono identici in Linux e Windows.
Convertire VHD in VMDK in Windows
Eseguire CMD come amministratore e accedere alla directory in cui è installato qemu-img .
- Visualizzare le informazioni sul disco virtuale:
qemu-img.exe info c:VirtualHyper-Vtest-disk.vhd - Convertire l’immagine del disco VHD nel formato VMDK:
qemu-img.exe convert -p c:VirtualHyper-Vtest-disk.vhd -O vmdk c:VirtualHyper-Vtest-disk.vmdkDove:
-p– mostra l’avanzamento-O– il file di outputAttendere il completamento del processo di conversione.

Come convertire VHD in VMDK con VBoxManage
VBoxManage è l’interfaccia a riga di comando (CLI) per gestire l’hypervisor VirtualBox e le macchine virtuali. VBoxManage è uno strumento multipiattaforma che viene installato quando installa VirtualBox (come ricorderai, VirtualBox è una soluzione di virtualizzazione multipiattaforma). Una delle funzioni più interessanti di VBoxManage è la possibilità di convertire diversi formati di dischi virtuali. Puoi convertire VHD in VMDK usando VBoxManage .
Se usi Windows come sistema operativo host, esegui CMD come amministratore e raggiungi la directory di installazione di VirtualBox per eseguire VBoxManage . In questo esempio, VirtualBox è installato nella directory predefinita.
cd C:Program FilesOracleVirtualBox
Puoi aggiungere il percorso di installazione di VirtualBox alla variabile di ambiente Path per evitare di raggiungere manualmente la directory di installazione di VirtualBox ogni volta che vuoi eseguire VBoxManage .
Esegui il comando seguente per convertire VHD di Hyper-V in VMDK di VMware:
VBoxManage clonehd --format vmdk C:virtualHyper-VWinServer2016.vhdx С:virtualHyper-VWinServer2016vbox.vmdk
La sintassi è semplice: imposta il formato del disco virtuale di destinazione (VMDK) e specifica i nomi del file VHDX di origine e del file VMDK di destinazione.
Attendi il completamento del processo di conversione.

Se usi Linux sul computer in cui è installato VirtualBox, usa gli stessi comandi (ma tieni presente la struttura delle partizioni e delle directory di Linux).
Creazione di una VM VMware utilizzando il disco virtuale convertito
La conversione di un VHD in un VMDK consente di convertire le VM Hyper-V in VM VMware. Per completare il processo, devi importare il disco virtuale convertito nelle VM VMware che hai creato manualmente. Questo approccio può essere usato per le VM in esecuzione su VMware Workstation e VMware ESXi. In questa sezione vengono illustrati i dettagli rimanenti sulla conversione da Hyper-V a VMware.
VMware Workstation
Se vuoi creare una macchina virtuale usando un disco virtuale convertito dal formato VHD (VHDX) al formato VMDK in VMware Workstation, crea una nuova VM (oppure apri una VM esistente se vuoi aggiungere un disco virtuale convertito come disco virtuale aggiuntivo) e seleziona l’opzione per usare un disco virtuale esistente.
Creiamo una nuova VM in VMware Workstation. Fai clic su File > Nuova VM .
Consulta il post del blog su Laboratorio domestico VMware per una spiegazione dettagliata di come creare una nuova VM VMware Workstation. In questa sezione del post del blog di oggi, l’attenzione è rivolta ai passaggi necessari per importare un disco virtuale VHD convertito nella VM VMware Workstation. Presta quindi particolare attenzione ai seguenti passaggi:
- Seleziona “ Installerò un sistema operativo in seguito,” e scegli la versione del sistema operativo guest installata sulla VM Hyper-V di origine, il cui disco virtuale è stato convertito ( Windows Server 2016 in questo caso). Se utilizzi una versione precedente di VMware Workstation, seleziona Windows 10 come versione del sistema operativo guest.

Nel nostro esempio, il nome della VM è Win2016converted . I file della nuova VM sono archiviati in C:VirtualWin2016converted .
- Seleziona “ Usa un disco virtuale esistente ” nel passaggio Seleziona un disco .

- Specifica il percorso del file VMDK esistente oppure sfoglia per trovare il file. In questo caso, il percorso del file VMDK è:
C:VirtualHyper-VWinServer2016qemu2.vmdk

- Se viene visualizzata una finestra di dialogo che suggerisce di convertire un disco virtuale esistente in un formato più recente, la scelta spetta a te. Dovresti convertire un disco virtuale in un formato più recente se non prevedi di utilizzarlo con VM di versioni precedenti (dotate di hardware virtuale meno recente).
- Seleziona BIOS come tipo di firmware nelle opzioni della VM se la VM Hyper-V di origine era configurata per utilizzare il BIOS. Altrimenti, la VM VMware a cui hai collegato un disco virtuale convertito dal formato Hyper-V al formato VMware non si avvierà. Dopo aver creato una VM, puoi verificare questa impostazione accedendo a VM > Impostazioni , selezionando la scheda Opzioni > Avanzate .

Ora la VM dovrebbe avviarsi correttamente. Dopo l’avvio del sistema operativo guest, installa VMware Tools.

VMware ESXi
È anche possibile convertire VHD in VMDK e importare il disco virtuale convertito in una VM VMware in esecuzione su un host ESXi. Tuttavia, il formato del disco virtuale VMware utilizzato da VMware Workstation e VMware ESXi è diverso. Un disco virtuale nel formato VMware Workstation include il descrittore del disco in un unico File VMDK. Un disco virtuale nel formato ESXi è composto da due file separati: un file di dati (.vmdk ) e un file descrittore del disco (-flat.vmdk ). Per utilizzare in una VM in esecuzione su ESXi un disco virtuale convertito dal formato Hyper-V con qemu-img o VBoxManage, è necessario convertire tale disco virtuale dal formato Workstation al formato ESXi. In caso contrario, verrà visualizzato l’errore: “ Tipo di disco 2 non supportato o non valido ”.

Scopriamo come utilizzare un disco virtuale convertito dal formato VHD per una VM in esecuzione su ESXi.
Conversione di VMDK nel formato ESXi
- Carica il file VMDK convertito nell’archivio dati collegato a un host ESXi. Usa un client SCP/SFTP, l’interfaccia Web di VMware Host Client o VMware vSphere Client per caricare il file del disco virtuale convertito vmdk nell’archivio dati ESXi.
Nel nostro esempio, il file WinServer2016qemu.vmdk viene caricato nell’archivio dati SSD1 , collegato all’host ESXi con indirizzo IP 10.10.10.74.

- Assicurati che l’accesso SSH sia abilitato sull’host ESXi ( Gestisci > Servizi > TSM-SSH ).

- Connettiti all’host ESXi tramite SSH utilizzando un client SSH (ad esempio, PuTTY).
- Vai alla directory in cui è memorizzato il file del disco virtuale VMDK convertito dal formato VHD di Hyper-V (in questo esempio, il file vmdk è memorizzato in /vmfs/volumes/SSD1/converted/):
cd /vmfs/volumes/SSD1/converted/ - Usa vmkfstools per convertire un disco virtuale nel formato Workstation in un disco virtuale nel formato ESXi. Nel nostro esempio, il tipo di disco virtuale di destinazione è il formato ESXi con allocazione dinamica. Esegui i comandi come root.
vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin
Come si può vedere nello screenshot, la conversione del VMDK dal formato Workstation al formato ESXi con vmkfstools è stata completata correttamente e sono stati creati due nuovi file:
WinServer2016thin-flat.vmdk
WinServer2016thin.vmdk

Importazione di un disco VMDK in una VM su ESXi
Aprire VMware Host Client (è preferibile utilizzare VMware vSphere Client se vCenter è implementato, ma è possibile usare VMware Host Client nella maggior parte dei casi, anche in uno scenario con ESXi Edizione gratuita). La stessa procedura si applica alle versioni di VMware vSphere/ESXi dalla 6.5 alla 9.0.
Nell’interfaccia web di VMware Host Client, selezionare VM e fare clic su Crea/Registra VM .

Si apre la procedura guidata per la nuova macchina virtuale.
- Selezionare il tipo di creazione . Fare clic su Crea una nuova macchina virtuale. Fare clic su Avanti a ogni passaggio per continuare.

- Selezionare un nome e il sistema operativo guest. Selezionare la versione della VM, la famiglia del sistema operativo guest e la versione del sistema operativo guest. In questo esempio, il nome della VM è Win2016converted . La VM è compatibile con ESXi 6.5 o versioni successive. La famiglia del sistema operativo guest è Windows e la versione del sistema operativo guest è Microsoft Windows 2016 (64 bit).

- Selezionare lo storage. Selezionare l’archivio dati in cui salvare i file della VM. Il nome dell’archivio dati utilizzato in questo esempio è SSD2.

- Personalizzare le impostazioni. Questo passaggio è il più importante nel nostro caso. Eliminare il disco virtuale creato per impostazione predefinita con la nuova VM. Quindi, fare clic su Aggiungi disco rigido > Disco rigido esistente .

Nel browser dell’archivio dati, selezionare il disco virtuale convertito da VHD a VMDK e successivamente dal formato VMware Workstation al formato VMware ESXi (con provisioning thin). Come forse ricorderete, il disco virtuale convertito è composto da due file (.vmdk e -flat.vmdk ), ma nel browser dell’archivio dati viene visualizzato un solo file vmdk . Non preoccupatevi: è una caratteristica di VMware Host Client. Entrambi i file copiati nell’archivio dati ESXi sono presenti. Potete verificarlo nella console ESXi o connettendovi tramite SSH. Nell’esempio corrente, è possibile vedere che le dimensioni attuali del disco virtuale sono di 9,11 GB, ma le dimensioni massime allocate per questo disco sono di 30 GB.

Dopo aver aggiunto il disco virtuale VMDK convertito, è possibile vedere il campo disattivato in cui sono visualizzate le dimensioni di 9 GB (le dimensioni attuali) del disco virtuale da 30 GB.

- Pronto per completare. In questo passaggio, è possibile controllare le impostazioni. Se è tutto corretto, fare clic su Termina per creare una nuova VM.

Ora è possibile accendere la VM (fare clic con il pulsante destro del mouse sul nome della VM e selezionare Alimentazione > Accendi nel menu contestuale).

La VM con il disco virtuale convertito è stata avviata correttamente e la rete funziona correttamente. Ora è possibile installare VMware Tools sul sistema operativo guest.

Conclusione
Se si desidera convertire le VM Hyper-V in VMware, è possibile convertire VHD in VMDK e quindi collegare il disco virtuale VMDK convertito a una nuova VM VMware. Qemu-img può essere utilizzato come convertitore da VHD a VMDK e VBoxManage può essere utilizzato come alternativa. Entrambe le soluzioni sono gratuite e multipiattaforma e consentono di convertire VHD di Hyper-V in VMDK di VMware su diversi sistemi operativi. Si tenga presente che, se si desidera utilizzare dischi virtuali convertiti con qemu-img o VBoxManage per le VM ESXi, è necessario convertire il disco virtuale VMDK dal formato Workstation al formato ESXi con vmkfstools dalla riga di comando di ESXi.
Se si desidera utilizzare strumenti semiautomatici o completamente automatici per convertire l’intera VM Hyper-V in una VM VMware, è possibile utilizzare VMware vCenter Converter Standalone gratuitamente. Indipendentemente dall’hypervisor utilizzato, la protezione dei dati è essenziale. NAKIVO Backup & Replication offre la funzione Ripristino multipiattaforma, che consente di convertire i dischi VHD dei backup delle VM in dischi VMDK e di ripristinare le VM Hyper-V sugli hypervisor VMware.