Come aprire, montare ed estrarre i dati da un file VMDK
Un file VMDK contiene i dati del disco rigido di una VM. Se una VM non si avvia a causa di un danneggiamento del sistema operativo, aggiornamenti non riusciti, malware o errori di configurazione, potrebbe comunque essere possibile accedere ai dati contenuti nel suo disco virtuale.</p>
<p> Questa guida spiega come aprire, montare ed estrarre i dati da un file VMDK utilizzando VMware Tools e metodi alternativi per Windows e Linux. Questi approcci consentono di accedere ai file senza dover necessariamente avviare la VM. Si noti che i metodi descritti si applicano solo ai file VMDK non crittografati o non gravemente danneggiati.
Che cos’è un file VMDK?
VMDK (Virtual Machine Disk) è un formato di file aperto per dischi virtuali sviluppato da VMware. I file in questo formato utilizzano l’estensione .vmdk e sono supportati da VMware e VirtualBox.
Sui server VMware ESXi, un file VMDK viene in genere memorizzato come due file separati sull’archivio dati: un piccolo file descrittore del disco virtuale e un file di estensione del disco virtuale che contiene i dati grezzi del disco. Il file descrittore segue solitamente lo schema di denominazione diskname.vmdk, mentre il file di estensione contenente i dati effettivi è denominato diskname-flat.vmdk.
In VMware Workstation, un disco virtuale è spesso memorizzato come un unico file diskname.vmdk (formato sparso monolitico). In questo caso, le informazioni del descrittore sono incorporate nello stesso file che memorizza i dati del disco. Il descrittore del disco virtuale definisce la struttura del disco, la geometria, la versione dell’hardware virtuale e gli identificatori univoci.
File descrittore del disco virtuale
Un descrittore del disco virtuale è memorizzato come testo semplice. Nella schermata qui sotto, la parte sinistra mostra un file descrittore in formato ESXi (un file .vmdk che può essere aperto con qualsiasi editor di testo). Sulla destra, è possibile vedere i dati del descrittore incorporati all’interno di un unico file .vmdk creato nel formato VMware Workstation. In questo caso, il file è aperto in un editor esadecimale.

Come mostrato, i dati del descrittore incorporati in un file monolitico in formato workstation .vmdk iniziano all’offset 0x200 (indirizzo in byte). Convertendo 0x200 da esadecimale a decimale si ottiene: 0x200 (esadecimale) = 512 (decimale). Ciò significa che per estrarre il descrittore incorporato dal file VMDK, è necessario copiare la porzione di dati che inizia al byte 512.
Nota: È possibile fare riferimento al post del blog sulla conversione VM VMware in VM Hyper-V per istruzioni dettagliate su come estrarre, modificare e importare un descrittore di disco incorporato.
File di dati del disco virtuale
Nello screenshot qui sotto, due file di disco virtuale sono aperti in un editor HEX. Su entrambi i dischi è installato lo stesso sistema operativo e la prima partizione è stata creata e formattata utilizzando un’utilità disco integrata in Windows. Sul lato sinistro della schermata è visualizzato un file -flat.vmdk (formato ESXi). In questo file, i dati grezzi del disco iniziano all’offset 0x00000000.
Sul lato destro è mostrato un file VMDK in formato VMware Workstation. In questo caso, gli stessi dati del disco iniziano all’offset 0x00150000 anziché all’inizio del file, poiché il descrittore e i metadati sono incorporati prima del contenuto effettivo del disco.

Prima di procedere all’apertura e al montaggio di un file VMDK, assicurati di disporre di un backup dei tuoi dati per prevenire potenziali danni al disco.
2 metodi per aprire i file VMDK avviando una VM
Iniziamo con i metodi per aprire un file VMDK avviando una VM. Questi approcci sono semplici e ampiamente applicabili. Tuttavia, sono obbligatori l’installazione di un hypervisor (VMware ESXi, VMware Workstation, VMware Player o Oracle VirtualBox) sul sistema host.
Metodo 1: Utilizzo di un Live DVD anche se il sistema operativo sulla VM è inoperativo
Questo metodo presuppone che la VM sia ancora in grado di avviarsi da un supporto esterno. Invece di un DVD fisico, è possibile collegare un’immagine ISO all’unità DVD virtuale della VM e avviare il sistema da essa.
Dopo aver avviato il sistema operativo dal DVD Live, è possibile montare le partizioni del file VMDK e copiare i dati su un’unità USB collegata alla macchina virtuale, sul computer host o su un altro sistema tramite la rete. Alcune distribuzioni su DVD Live montano le partizioni automaticamente.
Questo approccio è simile al recupero dei file da un computer fisico quando il sistema operativo installato non riesce ad avviarsi. Può essere utilizzato per estrarre dati dai file VMDK su VMware ESXi e VMware Workstation/Player.
Assicurarsi che il sistema operativo Live supporti i file system utilizzati all’interno del disco virtuale. Ad esempio, Windows non supporta in modo nativo i file system Linux come EXT3, EXT4 o ReiserFS. Le distribuzioni Live basate su Linux, tuttavia, supportano in genere i file system Windows come NTFS e FAT32, rendendole una scelta pratica quando si ripristinano dati da una VM Windows che non si avvia.
Esempio: apertura di file VMDK su ESXi
Si consideri il seguente scenario: una VM con Windows Server 2016 in esecuzione su un Host ESXi non si avvia, ma è necessario recuperare i file memorizzati nel suo file VMDK. Il disco virtuale contiene due partizioni NTFS: una partizione di sistema (di avvio) e l’unità primaria C:. In questo esempio, l’ISO ufficiale di installazione di Ubuntu 18 viene utilizzata come Live DVD per accedere al disco virtuale e copiare i dati obbligatori.
Nota: Lo stesso approccio si applica alle versioni più recenti dei prodotti, tra cui VMware Workstation 17, ESXi 9.0, Windows Server 2025 e Ubuntu Linux 24.04. Sebbene alcuni elementi specifici dell’interfaccia possano differire leggermente, il flusso di lavoro di base rimane lo stesso.
- Carica l’immagine ISO sull’archivio dati accessibile all’host VMware ESXi su cui è in esecuzione la macchina virtuale.
- Apri VMware vSphere Client, vai su Host e cluster, seleziona la tua macchina virtuale e fai clic su Modifica impostazioni.

- Nella finestra delle impostazioni della macchina virtuale, vai alle opzioni dell’unità CD/DVD. Seleziona File ISO nell’archivio dati se disponi del file ISO necessario nell’archivio dati. Quindi, fare clic su “Sfoglia” e selezionare il file ISO appropriato. Il nome del file è
ubuntu-18.04.1-desktop-amd64.isoin questo caso.
- Avviare la VM, eseguire l’avvio dall’immagine ISO e selezionare “Prova Ubuntu senza installarlo”. Una volta che Ubuntu si è avviato dal supporto Live DVD, aprire la console (Terminale).
- Ottenere i privilegi di root:
sudo -i - Elencare i dispositivi disco rigido disponibili:
ls -al /dev/sd*Sono presenti due partizioni:
/dev/sda1e/dev/sda2. - Creare le directory da utilizzare come punti di montaggio per ciascuna partizione:
mkdir /mnt/win-disk1 mkdir /mnt/win-disk2 - Montare le partizioni del disco virtuale nelle directory appropriate:
mount /dev/sda1 /mnt/win-disk1/ mount /dev/sda2 /mnt/win-disk2/ - Quindi elencare i file e le directory delle partizioni montate:
ls -al /mnt/win-disk2/ ls -al /mnt/win-disk1/
Come si può vedere nella schermata sopra, la partizione montata su
/mnt/win-disk2è quella utilizzata come disco C: in Windows.È possibile collegare un disco rigido USB (HDD) all’host ESXi e collegarlo alla VM tramite passthrough USB per copiare i file necessari dal VMDK montato. In alternativa, è possibile utilizzare una condivisione SMB (CIFS) e trasferire i file tramite la rete.
In questo esempio, i dati vengono copiati su una condivisione SMB ospitata all’indirizzo 192.168.17.125. Il percorso della condivisione è \192.168.17.125share e l’utente user10 dispone dei permessi di scrittura.
- Montiamo la condivisione SMB (CIFS) su Linux avviato dal DVD live. Per prima cosa, creiamo una directory da utilizzare come punto di montaggio.
mkdir /mnt/smb-share - Quindi montiamo la condivisione SMB (CIFS) su questa directory:
mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share - Inseriamo la password dell’utente.
- Ora il sistema Linux è connesso alla condivisione SMB ed è possibile copiare i contenuti necessari memorizzati all’interno del file VMDK sulla condivisione SMB tramite la rete.
Accediamo alla directory in cui è montata la condivisione SMB e copiamo il file bootmgr dalla partizione montata del disco virtuale (il file VMDK presente nell’archivio dati ESXi) nella directory corrente (condivisione SMB).
cd /mnt/smb-share cp /mnt/win-disk-2/bootmgr
- Assicurati che i file necessari siano stati copiati e verifica il contenuto della tua condivisione SMB.
ls -al /mnt/smb-share
Come Come mostrato nella schermata qui sopra, il file bootmgr è stato copiato con successo. Questo illustra il primo metodo per copiare i dati da un file VMDK quando il sistema operativo su una VM non riesce ad avviarsi. Lo stesso approccio può essere utilizzato in VMware Player e VMware Workstation.
Metodo 2: Montare un file VMDK come disco virtuale su una VM funzionante (ESXi/Workstation/Player)
Questo metodo è simile al precedente, ma invece di avviare il sistema da un supporto esterno, si collega il file VMDK a una VM esistente dotata di un sistema operativo funzionante. Il file VMDK può essere aggiunto come disco virtuale aggiuntivo a una VM in esecuzione su VMware ESXi, VMware Workstation o VMware Player.
Se è necessario aprire un file VMDK da una macchina virtuale ESXi in VMware Workstation o Player, copiare sia il file descrittore che il file di estensione (vmdk e -flat.vmdk) su un disco locale accessibile all’host su cui è installato Workstation o Player. Se la macchina virtuale di origine presenta snapshot, assicurarsi di copiare anche i file VMDK delta (di differenziazione) associati, oltre ai file del disco principale.
Gli esempi seguenti illustrano questo approccio:
- Esempio 1: aprire un file VMDK di una macchina virtuale collegandolo a un’altra macchina virtuale sullo stesso Host VMware ESXi.
- Esempio 2: estrarre dati da un file VMDK di una macchina virtuale ESXi collegandolo a una macchina virtuale in esecuzione su VMware Workstation.
Assicurarsi che il sistema operativo della macchina virtuale funzionante supporti i file system utilizzati nel file VMDK collegato. In caso contrario, le partizioni potrebbero risultare inaccessibili.
Esempio 1: Montaggio di un disco virtuale su una VM in esecuzione su ESXi
- Spegnere la VM di cui si desidera accedere al disco virtuale per estrarne i file.
- Individuare il disco virtuale nell’archivio dati ESXi.
- Copiare il disco virtuale in un’altra directory sullo stesso archivio dati o su un archivio dati diverso per evitare problemi legati al blocco del disco. In questo esempio, apriamo un file VMDK denominato
Win-test2.vmdk, che appartiene alla macchina virtuale Windows Win-test2. L’host ESXi è gestito da vCenter. Se si utilizza un host ESXi autonomo senza vCenter, la procedura è la stessa; cambia solo l’interfaccia utente. - Aprire VMware vSphere Client, andare su Storage e selezionare l’archivio dati in cui si trova il file VMDK richiesto. Selezionare il file VMDK e fare clic su “Copia in”.
Nota: Se si utilizza un host VMware ESXi autonomo senza vCenter, aprire VMware Host Client immettendo l’indirizzo IP dell’host VMware ESXi in un browser web. Quindi accedere a Storage > [Datastore Name] > Archivio dati Browser, selezionare il file VMDK e fare clic su Copia. Scegliere la destinazione e confermare l’operazione.
È inoltre possibile copiare i file accedendo direttamente alla console ESXi o collegandosi tramite SSH.

- Nella finestra aperta, selezionare la destinazione. È possibile copiare il file VMDK in una ubicazione all’interno dello stesso archivio dati o in un archivio dati diverso. In questo esempio, il file viene copiato nella directory principale dello stesso archivio dati. Vengono copiati sia il file descrittore
.vmdkche il file-flat.vmdk.
- Collegare il file VMDK a una VM (WinServer2016) in buono stato con un sistema operativo funzionante. In questo esempio, viene utilizzata una VM (WinServer2016) che esegue Windows Server 2016 sullo stesso host ESXi. Il disco virtuale può essere collegato mentre la VM è in esecuzione.
In vSphere Client, accedere a Host e cluster, selezionare la VM funzionante, fare clic con il pulsante destro del mouse su di essa e selezionare Modifica impostazioni.

- Nella finestra che appare, fare clic su Aggiungi nuovo dispositivo e selezionare Disco rigido esistente.

- Selezionare la copia del file VMDK creata in precedenza. Nell’esempio attuale, è stata selezionata la copia di
Win-test2.vmdksituata nella directory principale dell’archivio dati.
- Accendere la VM funzionante a cui è stato collegato il disco virtuale, se non è già in esecuzione. In questo esempio, il disco virtuale viene aggiunto mentre la VM Windows Server 2016 è in esecuzione (Aggiunta a caldo).
- Nel sistema operativo Windows guest, andare su Gestione computer > Gestione disco (oppure eseguire
diskmgmt.mscnella riga di comando) e individuare il disco virtuale collegato. Per impostazione predefinita, il nuovo disco è offline. Fare clic con il tasto destro del mouse sul disco e selezionare “Online”. Alle partizioni dovrebbe essere assegnata automaticamente una lettera di unità; in caso contrario, fare clic con il tasto destro del mouse sulla partizione e selezionare “Modifica lettera di unità e percorsi”.
Ora si dispone di pieno accesso in lettura/scrittura ai file e alle directory presenti nel file VMDK collegato. Aprire il disco montato in Esplora risorse e copiare i dati obbligatori.
È anche possibile eliminare i file non necessari (ad esempio, quelli relativi a malware), ma procedere con cautela. Se il file VMDK presenta snapshot associati, la modifica o l’eliminazione dei dati potrebbe compromettere la coerenza degli snapshot.

Esempio 2: Montaggio di un disco virtuale su una macchina virtuale in esecuzione su VMware Workstation o Player
Questo esempio è simile al precedente, ma viene utilizzata una macchina virtuale in esecuzione su VMware Workstation per aprire il file VMDK di una macchina virtuale ESXi. Questo approccio è utile quando lo spazio libero sull’archivio dati ESXi non è sufficiente per creare una copia del disco virtuale.
In questo caso, il disco virtuale della VM Win-test2 menzionata in precedenza viene montato su una VM VMware Workstation per estrarne i dati.
- In VMware vSphere Client, vai su Storage > [Datastore name] > File, seleziona il tuo file VMDK e clicca su Scarica.
Come accennato in precedenza, un disco virtuale ESXi è costituito da un file descrittore (
.vmdk) e da un file di estensione (-flat.vmdk). È necessario scaricare entrambi i file sul computer su cui è installato VMware Workstation o VMware Player. Quando si scarica un disco virtuale da un archivio dati ESXi utilizzando il vSphere Client HTML5, questi file vengono automaticamente raggruppati in un unico archivio ZIP.In alternativa, è possibile abilitare l’accesso SSH sull’host ESXi, accedere alla directory dell’archivio dati e copiare manualmente entrambi i file del disco sul proprio computer utilizzando un client SCP come WinSCP.
Nota: Quando si scarica un con allocazione dinamica disco virtuale da un archivio dati VMFS, il file risultante
-flat.vmdksi espanderà fino a raggiungere la dimensione completa provisionata, analogamente a un disco con provisioning thick. Ciò avviene perché il thin provisioning è implementato a livello di File system VMFS .
Ora è possibile vedere i due file di disco virtuale ESXi scaricati come archivio ZIP. La dimensione del disco con thin provisioning sull’archivio dati VMFS è di circa 2 GB (vedere la schermata sopra), mentre lo stesso disco scaricato sulla workstation è di circa 8 GB (vedere la schermata sotto).
- Estrarre i due file dall’archivio. Per impostazione predefinita, vengono decompressi in una directory denominata
Win-test2.vmdk, che corrisponde al nome dell’archivio senza l’estensione del file.
- Per questo passaggio, è necessaria una macchina virtuale funzionante con un sistema operativo operativo su un computer su cui sia installato VMware Workstation o VMware Player. Nell’esempio precedente è stata utilizzata una macchina virtuale con Windows Server 2016; in questo esempio viene utilizzata una macchina virtuale con Windows Server 2008. Il flusso di lavoro è lo stesso per le versioni più recenti di Windows.
Aprire VMware Workstation o VMware Player, selezionare la VM funzionante e modificare le impostazioni della VM.

- Nella scheda Hardware, fare clic sul pulsante Aggiungi.

- Nella procedura guidata Aggiungi hardware, selezionare Disco rigido come tipo di hardware. Quindi selezionare il tipo di disco (è possibile mantenere il valore consigliato). Nella schermata Seleziona un disco, scegliere Usa un disco virtuale esistente.

- Selezionare il file vmdk (non –
flat.vmdk) estratto dall’archivio ZIP. È possibile sfogliare il file o inserire manualmente il percorso del file.
In questo esempio vengono utilizzati ESXi 6.5 e VMware Workstation 15. La macchina virtuale VMware Workstation con Windows Server 2008 utilizza la versione hardware 12 (versione VM 12), mentre la macchina virtuale ESXi, alla quale si sta collegando il disco virtuale, utilizza la versione VM 7. La procedura è la stessa per le versioni più recenti.
- Quando si tenta di collegare il disco virtuale in VMware Workstation, viene visualizzato il seguente messaggio di errore di compatibilità:
Il disco virtuale selezionato è incompatibile con questa VM Workstation 12.x. L’aggiunta di questo disco renderebbe questa VM incompatibile con i prodotti VMware precedenti.

È possibile correggere questo errore modificando il file descrittore del disco (il file vmdk leggero nel caso dei dischi virtuali delle VM ESXi). Aprire il file VMDK in un editor di testo e modificare il numero nella stringa
Ddb.virtualHWVersion. Nel nostro caso, 13 viene sostituito con 12.Nota: Ricordare che per le macchine virtuali VMware Workstation, il descrittore del disco virtuale è incorporato nel file VMDK (a differenza dei dischi virtuali ESXi, che utilizzano un file descrittore separato).

Dopo aver modificato il file, il disco virtuale viene aggiunto con successo alla macchina virtuale esistente.
- Accendere la VM.
- Aprire Gestione disco in Windows, impostare lo stato del disco virtuale su “online”, assegnare una lettera di unità a una partizione e sfogliare i file.

Come estrarre dati da un file VMDK senza avviare una VM
I metodi che non richiedono l’avvio di una VM offrono diversi vantaggi pratici. In alcuni casi, non è necessario alcun hypervisor. È invece possibile montare un file VMDK direttamente sul sistema operativo host e accedere rapidamente al suo contenuto.
Metodo 1: Montaggio dei file VMDK in un sistema operativo host con VMware Workstation
Questo metodo richiede che VMware Workstation sia installato su un host Windows o Linux. VMware Workstation include una funzione che consente di montare i file VMDK direttamente sul sistema operativo host. Sono supportati i dischi in formato ESXi e i dischi delta associati ai snapshot. Come per i metodi precedenti, il sistema operativo host deve supportare i file system utilizzati nelle partizioni del disco virtuale.
Quando vengono create delle istantanee, vengono generati dischi virtuali delta (di differenziazione). Per accedere allo stato di una VM in una specifica istantanea, devono essere disponibili sia il disco padre che i corrispondenti dischi delta. In questo caso, è necessario montare il disco delta appropriato sul sistema operativo host. Le dipendenze dal disco padre vengono risolte automaticamente.
Se esistono snapshot ma si desidera montare direttamente il disco padre, utilizzare la modalità di sola lettura. La modifica di un disco principale può danneggiare gli snapshot o i cloni collegati creati da quella macchina virtuale. La modalità di sola lettura impedisce le operazioni di scrittura dopo il montaggio del disco. È possibile montare il file VMDK solo quando la macchina virtuale che lo utilizza è spenta o quando nessuna macchina virtuale sta utilizzando attivamente il disco.
L’esempio seguente illustra come montare un file VMDK da una macchina virtuale VMware Workstation che dispone di snapshot. In questo scenario, Windows è installato su un’unica partizione NTFS. Dopo la prima istantanea, nella directory principale dell’unità C: è stato creato un file denominato Snapshot1.txt. Dopo la seconda istantanea, è stato creato Snapshot2.txt. Il primo esempio utilizza Linux, mentre il secondo utilizza Windows. Vengono utilizzati i file del disco virtuale di una vecchia macchina virtuale Windows XP, ma lo stesso principio si applica ad altre versioni di Windows.
Esempio 1: Montaggio di un file VMDK sull’host Linux
- Aprire VMware Workstation per Linux e andare su File > Mount Virtual Disks.

- Fare clic su Mount Disk. Nella finestra a comparsa, fare clic su Sfoglia e selezionare il file VMDK.

- Selezionare il file VMDK del secondo disco delta (differenziale) creato dopo la seconda snapshot della macchina virtuale. In questi casi, il nome del file segue lo schema
VM_name-000002.vmdk(ad esempio,WinXP-test-000002.vmdk).
- Creare una directory sul file system Linux da utilizzare come punto di montaggio per il file VMDK. Creiamo la directory
/mnt/vmdk/ nella console di Linux.mkdir /mnt/vmdk/ - Imposta i permessi appropriati per il tuo utente (in questo esempio, il nome utente è user1, che appartiene al gruppo group1):
chown -R user1:group1 /mnt/vmdk/ chmod -R 0775 /mnt/vmdk/ - Ora, seleziona la directory che hai creato come directory di destinazione, spunta la casella “Monta in modalità di sola lettura” e fai clic su Monta.

- Ora puoi aprire la directory
/mnt/vmdk/ nel tuo file explorer di Linux e sfogliare i file memorizzati sul file VMDK montato. Sono visibili i file Snapshot1.txt e Snapshot2.txt, creati dopo la prima e la seconda istantanea in questo esempio. Ciascun file risiede su un disco VMDK delta separato.
- Non dimenticare di smontare il file VMDK dalla directory (punto di montaggio) sull’host Linux quando termina l’operazione.

In questo esempio, il file VMDK è stato montato e smontato correttamente su Ubuntu 22.04 utilizzando VMware Workstation 17.0.
Nota: Ubuntu 24.04 utilizza un kernel Linux più recente (6.8 o successivo), il che potrebbe influire sulla compatibilità con i moduli del kernel proprietari di VMware. In alcuni casi, è possibile che venga visualizzato l’errore: “VMware-fuseUI non risponde.”
Ciò si verifica perché il montaggio di un file VMDK su Linux si basa su un componente VMware che si integra con il livello Filesystem in Userspace (FUSE). Se il modulo FUSE obbligatorio o il processo di supporto non si inizializza correttamente, l’interfaccia di montaggio potrebbe smettere di rispondere.
Se si verificano problemi di compatibilità, si consiglia di utilizzare una versione del kernel supportata o una versione precedente di VMware Workstation. Controllare la documentazione ufficiale di VMware per gli aggiornamenti relativi al supporto del montaggio dei dischi.
Se si preferisce utilizzare l’interfaccia da console, è possibile montare un file VMDK con questo comando:
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
Dove:
vm_name è il nome della VM (uguale al nome della directory della VM). WinXP-test è il nome della VM in questo esempio.
vm_disk_name è il nome del disco virtuale (WinXP-test.vmdk in questo esempio).
vm_disk_name-000001.vmdk è il primo disco delta (di differenziazione) creato dopo il primo snapshot della VM (WinXP-test-000001.vmdk).
vm_disk_name-000002.vmdk è il secondo disco delta creato dopo aver eseguito il secondo snapshot (WinXP-test-000002.vmdk).
- Monta il disco virtuale. Per impostazione predefinita, il disco virtuale viene montato in modalità lettura/scrittura. È possibile utilizzare l’opzione -r nella riga di comando per montare il disco in modalità di sola lettura.
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk - Elencare tutti i file VMDK montati:
vmware-mount -L - Prima di terminare il lavoro con i file VMDK montati, smontare tutti i dischi virtuali:
vmware-mount -x
Esempio 2: Come montare un file VMDK su un host Windows
La procedura di montaggio di un file VMDK su Windows è simile. In VMware Workstation, è possibile utilizzare File > “Mappa dischi virtuali” nell’interfaccia grafica utente (GUI). In alternativa, fare clic con il tasto destro del mouse sul file VMDK in Esplora risorse e selezionare “Mappa disco virtuale” dal menu contestuale.
In questo esempio, viene montato il file VMDK del primo disco delta (di differenziazione) creato dopo il primo snapshot. Tali file seguono lo schema di denominazione VM_name-000001.vmdk ( WinXP-test-000001.vmdk in questo esempio).
Nota: La funzione che consente di montare i dischi virtuali come unità disco in Windows è stata rimossa in VMware Workstation 17.0 per i sistemi operativi Windows. L’ultima versione di VMware Workstation per Windows che supporta questa funzione è la 16.1.2. Questa funzione è presente nella versione più recente di VMware Workstation per Linux (17.5 e successive).
- Fare clic con il pulsante destro del mouse sul file VMDK in Esplora risorse e selezionare “Mappa disco virtuale”.

- Selezionare i parametri appropriati per montare il file VMDK. Si consiglia di aprire il disco in modalità di sola lettura per evitare potenziali danni ai dischi virtuali nella catena di snapshot.
Per impostazione predefinita, la lettera dell’unità è impostata su Z: e il disco può essere aperto automaticamente in Esplora risorse dopo la mappatura, se è selezionata la casella di controllo corrispondente. Fare clic su OK per procedere.

- Ora il disco virtuale è montato come disco Z: in Windows ed è possibile leggerne il contenuto. Nella schermata qui sotto è possibile vedere il file Snapshot1.txt creato dopo l’acquisizione del primo snapshot. Il file Snapshot2.txt non è presente perché è stato creato dopo il secondo snapshot, mentre il disco delta montato corrisponde al primo snapshot.

- Quando termina l’utilizzo del file VMDK mappato, non dimenticare di disconnettere il disco. Fare clic con il tasto destro del mouse sul file VMDK appropriato e selezionare “Disconnetti disco virtuale”. Dopo aver disconnesso il disco virtuale, è possibile accendere la VM che lo utilizza.

Metodo 2: Utilizzo di 7-Zip per estrarre il contenuto dai file VMDK
Se è necessario aprire un file VMDK senza avviare una VM, è possibile utilizzare 7-Zip per estrarre i dati dall’immagine del disco virtuale. 7-Zip è un programma gratuito per l’archiviazione dei file in grado di aprire ed estrarre contenuti da vari formati di archivio e immagini disco. Può essere utilizzato sia su sistemi Windows che Linux.
7-Zip è in grado di aprire .vmdk e -flat.vmdk (incluso un file autonomo -flat.vmdk qualora il file descrittore sia mancante), il che si applica in genere ai dischi in formato ESXi. Tuttavia, 7-Zip non ha supporto per l’apertura di file VMDK delta (differenziali) creati dopo i snapshots delle macchine virtuali.
Come aprire i file VMDK con 7-Zip su Linux
- Installare il pacchetto completo di 7-Zip sul proprio computer Linux. In questo esempio viene utilizzato Ubuntu.
apt-get install p7zip-full - Elencare il contenuto del file VMDK con 7-Zip
7z l vm_name.vmdk - Individuare i file che contengono “avvio” nel nome.
7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]user1 è il nome di questo utente Linux, l – elenco.

- Estraiamo (e) il file
boot.inidall’immagine VMDK:7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini
È possibile estrarre altri file e directory dal file VMDK in modo analogo.
Come aprire i file VMDK con 7-Zip su Windows
- Scarica la versione compatibile di 7-Zip da sito web ufficiale e installa l’applicazione sul tuo computer Windows. Utilizza il programma di installazione EXE per maggiore comodità.

- Nello screenshot qui sotto, il contenuto del file autonomo
Win-test2-flat.vmdkviene visualizzato nell’interfaccia grafica di 7-Zip. È possibile estrarre i contenuti VMDK necessari.
È inoltre possibile guardare questo video per imparare come aprire i file VMDK in VMware ed estrarre i dati VMDK:
Come montare i file VMDK in Linux (altri metodi)
Linux fornisce potenti strumenti da riga di comando che consentono di eseguire operazioni avanzate sul disco direttamente dalla console. Queste utilità integrate possono essere utilizzate per montare file VMDK e accedere ai dati memorizzati sui dischi virtuali. Gli esempi riportati di seguito utilizzano Ubuntu Linux.
Metodo 1: Come montare file VMDK utilizzando /dev/loop
I dispositivi loop sono pseudo-dispositivi in Linux che consentono di accedere ai file come dispositivi a blocchi. Sono comunemente utilizzati per montare immagini disco che contengono file system. I dispositivi loop sono denominati /dev/loopX, dove X rappresenta il numero del dispositivo. Questo metodo è adatto per il montaggio di -flat.vmdk file, anche quando il file descrittore è mancante.
L’esempio seguente illustra come montare un file VMDK in Linux per accederne al contenuto. In questo caso, viene utilizzato un disco virtuale in formato ESXi con una singola partizione e il file descrittore non è disponibile. Il disco originariamente conteneva un’installazione di Windows XP.
- Utilizza uno dei due comandi riportati di seguito per verificare il numero di dispositivi loop esistenti sul tuo sistema Linux.
fdisk -l | grep /dev/loop df -h | grep /dev/loop - In questo caso, esistono già dispositivi con numeri da 1 a 21 (
/dev/loop1–/dev/loop21). Crea il dispositivo loop numero 30, poiché è libero. Questo dispositivo può essere associato al file –flat.vmdklosetup /dev/loop30 /vms/Win-test2-flat.vmdk - Imposta l’offset:
losetup -o 32256 /dev/loop31 /dev/loop30In questo caso, 32256 è l’offset calcolato come 63 × 512 per i dischi formattati in Windows XP, Windows Server 2003 e versioni precedenti. In questo caso, 63 è il settore iniziale della partizione e 512 byte è la dimensione del settore. Per Windows 7, Windows Server 2008 e versioni più recenti, utilizzare un offset di 105906176.
È possibile recuperare informazioni sulla dimensione del settore e sul primo settore utilizzato per l’avvio con il comando:
fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk
In alternativa, per i dischi virtuali che contengono più partizioni, è possibile utilizzare parted per determinare l’inizio e la fine di ciascuna partizione:
parted /dev/loop30Nella console di parted, immettere i seguenti comandi:
unit B print
- Creare la directory da utilizzare come punto di montaggio per l’immagine VMDK:
mkdir /mnt/vmdk-image - Montare il dispositivo loopback associato all’immagine VMDK:
mount /dev/loop31 /mnt/vmdk-image - Elencare il contenuto dell’immagine montata:
ls -al /mnt/vmdk-image - Una volta terminato, smontare l’immagine VMDK e disconnettere il dispositivo loop:
umount /mnt/vmdk-image losetup -d /dev/loop31
Metodo 2: Come montare file VMDK con kpartx
Kpartx è uno strumento in grado di montare partizioni all’interno di file immagine nelle directory di un vero file system Linux. Questo strumento può essere utilizzato per configurare mappature di dispositivi per partizioni di dispositivi a blocchi. Questo metodo consente inoltre di montare –flat.vmdk immagini utilizzate su server ESXi.
- Installare kpartx:
apt-get install kpartx - Aggiungere la mappatura della partizione per l’immagine VMDK in modalità operativa dettagliata:
kpartx -av /vms/Win-test2-flat.vmdk - Montare la partizione nella
/mnt/vmdk-imagedirectory:mount /dev/mapper/loop30p1 /mnt/vmdk-image/Dove loop30 è il numero del dispositivo loop e p1 è il numero della partizione all’interno dell’immagine (la prima partizione sull’immagine del disco).
- Elencare il contenuto della partizione del disco virtuale:
ls -al /mnt/vmdk-image/
- Una volta terminato, smontare l’immagine del disco virtuale VMDK.
umount /mnt/vmdk-image kpartx -d /vms/Win-test2-flat.vmdk
Metodo 3: Utilizzo del dispositivo a blocchi di rete (NBD) di QEMU
Questo metodo utilizza l’utilità di QEMU per rendere accessibile il file VMDK come dispositivo a blocchi standard /dev/nbdN, che il kernel Linux può quindi montare in modo nativo. Non è necessario installare VMware Workstation per utilizzare questo metodo. Sono obbligatori i permessi di root.
- Spegnere la VM per evitare il danneggiamento del disco virtuale.
- Installare il pacchetto di utilità QEMU, che include qemu-nbd.
sudo apt install qemu-utils - Caricare il modulo del kernel Network Block Device:
sudo modprobe nbd - Mappare il file VMDK al Network Block Device, ad esempio,
/dev/nbd0. Utilizzare il flag -r per la modalità di sola lettura.sudo qemu-nbd -r -c /dev/nbd0 /path/to/your/disk.vmdkIn questo esempio, il comando è:
sudo qemu-nbd -r -c /dev/nbd0 /media/user1/data/vms/WinXP-test/WinXP-test.vmdk - Identificare le partizioni sul disco virtuale montato:
sudo fdisk -l /dev/nbd0Nell’output dovrebbero comparire partizioni come
/dev/nbd0p1,/dev/nbd0p2, ecc. - Creare un punto di montaggio:
sudo mkdir -p /mnt/vmdkImpostare i permessi per un utente specifico, se necessario.
- Montare la partizione. In questo esempio, la partizione 1 contiene i dati:
sudo mount /dev/nbd0p1 /mnt/vmdk
- Ora è possibile accedere al contenuto del file VMDK all’indirizzo
/mnt/vmdk/. - Una volta terminato, smontare il volume e disconnettere il dispositivo NBD:
sudo umount /mnt/vmdk sudo qemu-nbd -d /dev/nbd0
Metodo 4: Utilizzo di guestmount per montare i file VMDK
guestmount è uno strumento affidabile per accedere ai contenuti dei file VMDK su Linux poiché gestisce in modo intelligente la struttura del disco, comprese le partizioni e i volumi logici. Non richiede i calcoli manuali dell’offset obbligatori per gli strumenti più datati, come /dev/loop. Per utilizzare questo metodo è necessario disporre dei permessi di root.
- Installare libguestfs-tools. Questo pacchetto contiene l’utilità guestmount.
sudo apt install libguestfs-tools - Spegnere la VM di cui si desidera montare il disco virtuale.
- Creare una directory sull’host Linux da cui si accederà al contenuto del disco:
mkdir /mnt/vmdkNota: Se si desidera accedere al contenuto dei file VMDK come utente normale, anziché come utente root, è possibile effettuare ulteriori configurazioni.
- Modifica il file di configurazione di FUSE. Apri il file
/etc/fuse.confutilizzando un editor di testo con privilegi di root:sudo nano /etc/fuse.conf - Rimuovi il commento dalla riga
#user_allow_otherper attivarla nel file di configurazione. Basta eliminare il carattere # all’inizio della riga. - Salva le modifiche e chiudi il file (esci dall’editor di testo).
- Facoltativamente, puoi aggiungere il tuo utente normale al gruppo fuse:
sudo usermod -aG fuse $USER
- Modifica il file di configurazione di FUSE. Apri il file
- Esamina il file VMDK. Prima del montaggio, è utile visualizzare le partizioni all’interno del file VMDK. Utilizza l’utilità virt-filesystems:
virt-filesystems -a /path/to/your/disk.vmdkIn questo caso:
virt-filesystems -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdkNell’output dovresti vedere le partizioni (
/dev/sda1,/dev/sda2, ecc.) e i relativi file system. - Monta il file VMDK utilizzando guestmount. Esistono due metodi principali per utilizzare guestmount: ispezione automatica o montaggio manuale delle partizioni. Utilizziamo il montaggio manuale delle partizioni (per partizioni specifiche)
Se vi serve una sola partizione, potete specificarla direttamente:
sudo guestmount -a /path/to/your/disk.vmdk -m /dev/sdaN --ro /mount_point/Nel nostro esempio, il comando esatto è:
sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro /mnt/vmdk/Se volete accedere al contenuto del file VMDK montato come utente normale e accedere ai file nell’interfaccia grafica di Linux, utilizzate il comando:
sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro -o allow_other /mnt/vmdk/ - Ora potete visualizzare, navigare e copiare file dal VMDK come se fosse una directory locale nella console di Linux:
ls -al /mnt/vmdk - Una volta terminato, smontare il disco virtuale:
sudo guestunmount /mnt/vmdk/
È possibile utilizzare il metodo alternativo FUSE”
sudo fusermount -u /mnt/vmdk/
Conclusione
Comprendere come aprire ed estrarre i dati da un file VMDK è essenziale quando una VM si guasta o diventa inaccessibile. Conoscere diversi metodi per accedere al contenuto di un VMDK offre flessibilità, poiché ogni approccio può essere più adatto a situazioni specifiche. Allo stesso tempo, mantenere backup affidabili delle proprie VM è altrettanto importante per garantire la disponibilità dei dati e semplificare il ripristino.