Come convertire VHD in VMDK: una guida passo 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 vSphere e Microsoft 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.

NAKIVO for VMware vSphere Backup

NAKIVO for VMware vSphere Backup

Complete data protection for VMware vSphere VMs and instant recovery options. Secure backup targets onsite, offsite and in the cloud. Anti-ransomware features.

Formati dei dischi virtuali

VHD si riferisce al formato di immagine disco introdotto come formato di disco virtuale per le VM in Connectix Virtual PC. Successivamente, Microsoft ha acquisito Virtual PC e ha continuato a sviluppare questo prodotto di virtualizzazione. In seguito, Microsoft ha presentato Hyper-V come alternativa a Microsoft Virtual PC. Le principali funzioni del formato VHD sono:

  • La dimensione massima supportata dei file VHD è di 2 TB (2^32*512 byte), dove 32 bit rappresentano il numero di byte e 512 byte rappresentano la dimensione del settore.
  • Anche VirtualBox supporta il formato VHD per i dischi virtuali, che è ancora in uso nel cloud Microsoft Azure.
  • Le VM Hyper-V di prima generazione possono utilizzare solo dischi virtuali in formato VHD.

VHDX è la nuova versione del formato di disco virtuale fornito da Microsoft, successore del formato VHD. Il formato VHDX ha un’ampia gamma di applicazioni, tra cui i dischi virtuali per le VM di Hyper-V e i Microsoft Cluster Shared Volumes. VHDX è un formato di file semi-aperto ed è possibile scaricare le specifiche del formato dal sito web di Microsoft per creare applicazioni personalizzate compatibili con i file VHDX. Le principali funzioni 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.
  • Offre una protezione maggiore contro i guasti causati da interruzioni di corrente rispetto ai dischi VHD.

VM di seconda generazione supporta l’utilizzo sia di dischi virtuali VHDX che VHD. Tuttavia, le VM di Azure possono utilizzare solo dischi virtuali in formato VHD. I dischi virtuali VHDX possono essere creati nella finestra Gestione disco in Windows 10 e Windows Server 2016. Le immagini VHDX possono anche essere montate (collegate) come unità disco e visualizzate in Esplora risorse (Risorse del computer) nelle ultime versioni di Windows, grazie al driver VHDX integrato.

VMDK è un formato aperto di immagini disco virtuali utilizzato dagli hypervisor VMware, VirtualBox, QEMU ecc., e non è supportato da Hyper-V. I file immagine VMDK possono essere considerati come contenitori per l’archiviazione dei dati, simili ai dischi rigidi fisici, e presentano un’elevata compatibilità 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, piatti, nonché con provisioning sottile e con provisioning denso. I dischi VMDK delta vengono creati durante l’esecuzione di Snapshot delle VM. I file VMDK possono essere mappati (montati) sul punto di montaggio specificato sulla macchina host se è installato VMware Workstation. Viene garantito un elevato livello di affidabilità. Per i dischi virtuali VMDK sono supportati i settori nativi da 4 KB, utilizzati dalle ultime versioni dei prodotti VMware con VMFS6 (Virtual Machine File System 6).

Controllare il contenuto del VHD prima di convertire un VHD in VMDK

Si tratta di un passaggio facoltativo che consente di verificare lo stato di integrità di un disco virtuale VHD o VHDX di origine e di visualizzare i file in esso contenuti. Questo approccio evita di creare confusione e di perdere tempo convertendo il disco virtuale sbagliato. Se si desidera solo estrarre file da immagini VHD, questa sezione è ciò che fa al caso vostro. I file VHD possono essere montati su una directory in Linux e mappati su una lettera di unità specificata in Windows.

Come aprire un file VHDX in Linux

In Linux, i file VHD e VHDX possono essere montati su una directory specificata (punto di montaggio) dalla console utilizzando gli strumenti libguestfs . In questo modo, è possibile visualizzare il contenuto dei file VHD e VHDX in Linux prima di avviare la conversione da VHD a VMDK. Vediamo come visualizzare il contenuto delle immagini dei dischi virtuali VHD e VHDX in Linux.

Installare il pacchetto necessario:

sudo apt-get install libguestfs-tools

Creare la directory in cui si desidera montare le immagini VHD o VHDX, ad esempio, /mnt/vhd/:

sudo mkdir /mnt/vhd/

Eseguire il comando per montare un’immagine del 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 si desidera montare.

-m /dev/sda1/ è il nome della partizione presente sul disco virtuale VHD. Nel disco virtuale VHD utilizzato in questo esempio è presente una partizione NTFS.

È possibile visualizzare tutti i comandi disponibili eseguendo guestmount --help

Nota: Se si esegue il comando in un’altra directory, specificare il percorso completo del file VHD, ad esempio: guestmount --add /media/user1/data/test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1

Verificare il contenuto dell’immagine VHD montata:

ls -al /mnt/vhd/

Check the virtual disk content

Per smontare il disco virtuale, utilizzare il comando:

guestunmount /mnt/vhd/

Allo stesso modo, è possibile montare 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 utilizzato 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 di Linux (vedere la schermata qui sotto).

Checking the VHDX content

Come aprire un file VHD in Windows

  1. Aprire la finestra Gestione del computer (fare clic con il tasto destro del mouse su Risorse del computer e selezionare Gestisci dal menu contestuale).

    Opening Computer Management

  2. Nella finestra Gestione del computer , selezionare Gestione disco , quindi fare clic su Azione > Collega VHD .

    How to attach a VHD image in Windows

  3. Nella finestra a comparsa, 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 memorizzati sul disco virtuale da eventuali danneggiamenti accidentali.

    Attaching a VHD disk in Windows

  4. Il disco è ora montato e visualizzato nella finestra Gestione disco e in Esplora risorse (in questo caso l’unità X: ).

Nota: Windows è in grado di rilevare solo partizioni con file system supportati: NTFS, FAT32, exFAT e ReFS. Se il disco virtuale contiene partizioni Linux con file system ext3, ext4 e altri, non sarà possibile visualizzare il contenuto dei file VHD o VHDX montati sul sistema Windows senza strumenti di terze parti.

Per smontare un disco virtuale VHD o VHDX dal sistema Windows, aprire Esplora risorse, fare clic con il pulsante destro del mouse sulla lettera dell’unità assegnata al disco virtuale e, nel menu contestuale, selezionare Espelli .

Eject the VHD disk in Windows when the disk is not in use

Ora, dopo aver verificato il contenuto del disco virtuale VHD (VHDX) e esserti assicurato che si tratti del disco corretto, puoi procedere con la conversione in VMDK. Esistono due metodi molto convenienti per convertire un VHD in VMDK: utilizzando qemu-img e utilizzando VBoxManage . Entrambe le soluzioni sono gratuite e vengono illustrate di seguito.

Come convertire un file VHD in VMDK con qemu-img

QEMU è una piattaforma open source di emulazione e virtualizzazione. Qemu-img è un’utilità del kit software QEMU che può essere utilizzata per convertire dischi virtuali da un formato all’altro. Qemu-img può essere utilizzato per convertire un file VHD in VMDK, e l’utilizzo di questa utilità è il primo metodo che tratteremo. Qemu-img può essere eseguito sia su sistemi operativi Windows che Linux.

Utilizzo di qemu-img su Linux

In questo esempio viene utilizzato Ubuntu Linux per eseguire qemu-img .

  1. Per prima cosa, installare qemu-img dai repository software online:

    sudo apt-get install qemu-utils

  2. Andare nella directory in cui sono memorizzate le immagini dei dischi virtuali (in questo esempio, i file dei dischi virtuali VHD e VHDX sono memorizzati in /media/user1/data/):

    cd /media/user1/data/

Controllare il file VHDX

  1. Visualizza le informazioni sull’immagine VHD dopo aver eseguito sudo su per ottenere i privilegi di root:
  2. qemu-img info test-disk.vhd

    Checking the VHD information

    Allo stesso modo, è possibile controllare le informazioni relative al disco virtuale VHDX:

    qemu-img info /media/user1/data/WinServer2016.vhdx

    Check the VHDX information before converting it to VMDK with qemu-img

Convertire un VHD in VMDK su Linux

  1. Per convertire un VHD in VMDK con qemu-img su Linux, eseguire il comando come root:

    qemu-img convert /media/user1/data/WinServer2016.vhdx -O vmdk /media/user1/data/WinServer2016qemu.vmdk -p

    Dove:

    -O – definisce il formato del file di output

    -p – mostra la barra di avanzamento

    Attendere che il processo di conversione termini.

Utilizzo di qemu-img su Windows

  1. Scarica qemu-img dal sito web ufficiale (sono disponibili per il download i programmi di installazione a 32 bit e a 64 bit). Nell’esempio attuale, qemu-img-win-x64-2_3_0 viene utilizzato.
  2. Estrai i file dall’archivio scaricato, ad esempio in C:Programsqemu-img .
  3. Avvia la riga di comando di Windows (CMD) – Premi Windows+R per aprire la finestra “ Esegui ”. Digita “ cmd ” nella finestra e premi Ctrl+Shift+Invio per eseguire il comando come amministratore :

    cd C:Programsqemu-img

    I comandi di qemu-img in Linux e Windows sono identici.

Converti VHD in VMDK in Windows

Esegui CMD come amministratore e vai alla directory in cui qemu-img è installato.

  1. Visualizza le informazioni sul disco virtuale:

    qemu-img.exe info c:VirtualHyper-Vtest-disk.vhd

  2. Converti l’immagine del disco VHD nel formato VMDK:

    qemu-img.exe convert -p c:VirtualHyper-Vtest-disk.vhd -O vmdk c:VirtualHyper-Vtest-disk.vmdk

    Dove:

    -p – mostra lo stato di avanzamento

    -O – il file di output

    Attendi fino a quando il processo di conversione termina.

    Using qemu-img as VHD to VMDK converter

Come convertire un file VHD in VMDK con VBoxManage

VBoxManage è l’interfaccia a riga di comando (CLI) per la gestione dell’hypervisor VirtualBox e delle VM. VBoxManage è uno strumento multipiattaforma che viene installato quando si installa VirtualBox (come ricorderete, VirtualBox è una soluzione di virtualizzazione multipiattaforma). Una delle funzioni più interessanti di VBoxManage è la sua capacità di convertire diversi formati di disco virtuale. È possibile convertire un VHD in VMDK utilizzando VBoxManage .

Se si utilizza Windows come sistema operativo host, eseguire CMD come amministratore e accedere alla directory di installazione di VirtualBox per eseguire VBoxManage . Nell’esempio attuale, VirtualBox è installato nella directory predefinita.

cd C:Program FilesOracleVirtualBox

È possibile aggiungere il percorso di installazione di VirtualBox alla variabile di ambiente Path per evitare di dover navigare manualmente nella directory di installazione di VirtualBox ogni volta che si desidera eseguire VBoxManage .

Eseguire il comando per convertire un VHD di Hyper-V in un VMDK di VMware come segue:

VBoxManage clonehd --format vmdk C:virtualHyper-VWinServer2016.vhdx С:virtualHyper-VWinServer2016vbox.vmdk

La sintassi è semplice: si imposta il formato del disco virtuale di destinazione (VMDK) e si definiscono i nomi dei file di origine VHDX e del file di destinazione VMDK .

Attendere che il processo di conversione termini.

Using VBoxManage as a VHD to VMDK converter

Se si utilizza Linux sul computer su cui è installato VirtualBox, utilizzare gli stessi comandi (tenendo presente la struttura delle partizioni e delle directory di Linux).

Creazione di una VM VMware utilizzando il disco virtuale convertito

La conversione di un file VHD in VMDK consente di trasformare le VM Hyper-V in VM VMware. Per completare il processo, è necessario importare il disco virtuale convertito nelle VM VMware create manualmente. Questo approccio può essere utilizzato per le VM in esecuzione su VMware Workstation e VMware ESXi. I restanti dettagli su come convertire Hyper-V in VMware sono illustrati in questa sezione.

VMware Workstation

Se si desidera creare una VM utilizzando un disco virtuale convertito dal formato VHD (VHDX) al formato VMDK in VMware Workstation, è sufficiente creare una nuova VM (oppure aprire una VM esistente se si desidera aggiungere un disco virtuale convertito come disco virtuale aggiuntivo) e selezionare l’opzione per utilizzare un disco virtuale esistente.

Creiamo una nuova VM in VMware Workstation. Fare clic su File > Nuova VM .

Per una spiegazione dettagliata su come creare una nuova VM VMware Workstation, consultare il post del blog all’indirizzo Laboratorio domestico VMware. In questa sezione del post di oggi, l’attenzione è rivolta ai passaggi necessari per importare un disco virtuale VHD convertito nella VM VMware Workstation. Pertanto, è necessario prestare particolare attenzione ai seguenti passaggi:

  1. Selezionare “ I will install an operating system later”, e scegliere la versione del sistema operativo guest (OS) che era installata sulla VM di origine di cui è stato convertito il disco virtuale ( Windows Server 2016 in questo caso). Se si utilizza una versione precedente di VMware Workstation, selezionare Windows 10 come versione del sistema operativo ospite.

    Import VHD to VMware after conversion

    Il nome della VM è Win2016converted nel nostro esempio. I file della nuova VM sono memorizzati in C:VirtualWin2016converted .

  2. Selezionare “ Use an existing virtual disk ” nella fase Select a Disk .

    Select use an existing virtual disk

  3. Specificare un percorso per il file VMDK esistente oppure sfoglia il file. In questo caso, il percorso del file VMDK è:

    C:VirtualHyper-VWinServer2016qemu2.vmdk

    Specify the path

  4. Se viene visualizzata la finestra di dialogo che suggerisce di convertire un disco virtuale esistente in un formato più recente, la scelta spetta all’utente. È consigliabile convertire un disco virtuale in un formato più recente se non si intende utilizzare tale disco virtuale per VM di versioni precedenti (che dispongono di hardware virtuale meno recente).
  5. Selezionare BIOS come tipo di firmware nelle opzioni della macchina virtuale, se la macchina virtuale Hyper-V di origine era configurata per utilizzare il BIOS. In caso contrario, la macchina virtuale VMware a cui è stato collegato un disco virtuale convertito dal formato Hyper-V al formato VMware non si avvierà. Dopo aver creato una VM, è possibile verificare questa impostazione andando su VM > Impostazioni , selezionando la scheda Opzioni > Avanzate .

    Selecting BIOS in the options of the destination VMware VM

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

The conversion has completed successfully

Prova NAKIVO Backup & Replication per VMware vSphere

Prova NAKIVO Backup & Replication per VMware vSphere

Inizia la tua prova gratuita di 15 giorni per eseguire backup incrementali delle macchine virtuali senza agenti, con opzioni di ripristino completo e granulare istantaneo, protezione anti-ransomware e molto altro ancora.

VMware ESXi

È inoltre possibile convertire un file VHD in VMDK e importare il disco virtuale convertito in una macchina virtuale VMware in esecuzione su un Host VMware ESXi. Tuttavia, il formato del disco virtuale VMware utilizzato da VMware Workstation e VMware ESXi è diverso. Un disco virtuale nel formato VMware Workstation presenta un descrittore del disco integrato in un unico file File VMDK. Un disco virtuale in formato ESXi è costituito da due file separati: un file di dati (.vmdk ) e un file descrittore del disco (-flat.vmdk ). Per poter utilizzare un disco virtuale che avete convertito dal formato Hyper-V con qemu-img o VBoxManage su una VM in esecuzione su ESXi, dovete convertire quel disco virtuale dal formato workstation al formato ESXi. In caso contrario, verrà visualizzato il messaggio di errore: “ Tipo di disco 2 non supportato o non valido ”.

VMDK must be converted to the ESXi format

Vediamo come utilizzare un disco virtuale convertito dal formato VHD per una VM in esecuzione su ESXi.

Conversione di un file VMDK nel formato ESXi

  1. Caricare il file VMDK convertito nell’archivio dati collegato a un host ESXi. Utilizzare un client SCP/SFTP, l’interfaccia web di VMware Host Client o VMware vSphere Client per caricare il disco virtuale convertito vmdk nel datastore ESXi.

    Nel nostro esempio, il WinServer2016qemu.vmdk viene caricato nel SSD1 datastore, allegato all’host VMware ESXi con l’indirizzo IP 10.10.10.74.

    Uploading the VMDK file after conversion

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

    SSH access is enabled on the ESXi host

  3. Connettersi all’host ESXi tramite SSH utilizzando un client SSH (ad esempio, PuTTY).
  4. Accedere alla directory in cui è archiviato il file del disco virtuale VMDK convertito dal formato VHD di Hyper-V (in questo esempio, il file vmdk è archiviato in /vmfs/volumes/SSD1/converted/):

    cd /vmfs/volumes/SSD1/converted/

  5. Utilizzare vmkfstools per convertire un disco virtuale in formato workstation in un disco virtuale in formato ESXi. Nel nostro esempio, un con allocazione dinamica disco virtuale in formato ESXi rappresenta il tipo di disco virtuale di destinazione. Eseguire i comandi come root.

    vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin

    Post conversion of the VMDK file to the ESXi format

Come si può vedere dallo screenshot, la conversione del file VMDK dal formato workstation al formato ESXi tramite vmkfstools si è conclusa con successo e sono stati creati due nuovi file:

WinServer2016thin-flat.vmdk

WinServer2016thin.vmdk

The virtual disk is converted to a VMDK of the ESXi format

Importazione di un disco VMDK in una macchina virtuale su ESXi

Aprire VMware Host Client (è preferibile utilizzare VMware vSphere Client se è effettuata l’implementazione di vCenter, ma è possibile utilizzare VMware Host Client in quasi tutti i casi, compreso uno scenario con ESXi Edizione gratuita). Lo stesso flusso di lavoro si applica alle versioni da 6.5 a 9.0 di VMware vSphere/ESXi.

Nell’interfaccia web di VMware Host Client, selezionare VM e fare clic su Crea/Registra VM .

Creating a new VM to import VHD to VMware

Si apre la procedura guidata per la nuova VM.

  1. Selezionare il tipo di creazione . Fare clic su Crea una nuova VM. Fare clic su Avanti in ogni passaggio per continuare.

    Creating a new VM on an ESXi host

  2. Selezionare un nome e un 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 ospite è Windows e la versione del sistema operativo ospite è Microsoft Windows 2016 (64 bit).

    Creating a new VM to import a converted virtual disk

  3. Selezionare lo storage. Selezionare l’archivio dati in cui si desidera archiviare i file della VM. Il nome dell’archivio dati utilizzato in questo esempio è SSD2.

    Selecting a datastore to store VM files

  4. 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 .

    Importing a virtual disk converted from VHD to VMDK to a VM on ESXi.

    Nel browser dell’archivio dati, selezionare il disco virtuale che è stato convertito da VHD a VMDK e, successivamente, dal formato VMware Workstation al formato VMware ESXi (thin-provisioned). Come ricorderete, il disco virtuale convertito è costituito da due file (.vmdk e -flat.vmdk ), ma nel browser dell’archivio dati viene visualizzato un solo file vmdk . Non preoccupatevi: si tratta di una funzione di VMware Host Client. Entrambi i file copiati nell’archivio dati ESXi sono presenti. È possibile verificarli nella console ESXi o collegandosi tramite SSH. Nell’esempio attuale, è possibile notare che la dimensione attuale del disco virtuale è di 9,11 GB, ma la dimensione massima assegnata a questo disco è di 30 GB.

    Selecting a converted virtual disk on a datastore

    Dopo aver aggiunto il disco virtuale VMDK convertito, è possibile notare il campo “inattivo” in cui viene visualizzata la dimensione di 9 GB (la dimensione attuale) del disco virtuale da 30 GB.

    The converted virtual disk is attached to a VM on ESXi.

  5. Pronti per il completamento. In questa fase, è possibile verificare le impostazioni. Se tutto è corretto, fare clic su Fine per creare una nuova macchina virtuale.

    Checking the new VM configuration summary

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

Starting a VM that uses a converted virtual disk

La macchina virtuale con il disco virtuale convertito si è avviata correttamente e la rete funziona correttamente. Ora è possibile installare VMware Tools sul sistema operativo ospite.

The VM using the converted disk is operating properly on ESXi

Conclusione

Se si desidera convertire VM Hyper-V in VMware, è possibile convertire un 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, consentendo di convertire un VHD di Hyper-V in un VMDK di VMware su diversi sistemi operativi. Si tenga presente che, se si desidera utilizzare un disco virtuale convertito con qemu-img o VBoxManage per VM ESXi, è necessario convertire il disco virtuale VMDK dal formato workstation al formato ESXi utilizzando vmkfstools nella riga di comando di ESXi.

Se si desidera utilizzare strumenti semi-automatici o completamente automatici per convertire l’intera macchina virtuale Hyper-V in una macchina virtuale VMware, è possibile utilizzare il software gratuito VMware vCenter Converter Standalone. Indipendentemente dall’hypervisor utilizzato, la protezione dei dati è essenziale. NAKIVO Backup & Replication offre la funzione di ripristino multipiattaforma, che consente di convertire i dischi VHD dai backup delle macchine virtuali in dischi VMDK e di ripristinare le macchine virtuali Hyper-V su hypervisor VMware.

Try NAKIVO Backup & Replication

Try NAKIVO Backup & Replication

Get a free trial to explore all the solution’s data protection capabilities. 15 days for free. Zero feature or capacity limitations. No credit card required.

Le persone leggono anche