Capire come aprire i file VMDK ed estrarre il contenuto dai file VMDK è utile quando si incontra un problema con una macchina virtuale. Potresti scoprire che le VM non possono essere avviate dopo problemi con l’installazione di applicazioni, aggiornamenti del sistema operativo, attacchi malware, cancellazione accidentale dei dati, ecc. Quando ciò accade, perdi l’accesso al disco virtuale della VM.
Fortunatamente, puoi aprire i file VMDK con WinZip, Linux Reader o VMware Workstation Player. Continua a leggere per scoprire i metodi per recuperare il contenuto dei file del disco virtuale VMDK. Nota che questi metodi si applicano solo se il disco virtuale non è crittografato o danneggiato.
Cos’è un file VMDK?
Il file VMDK è un formato di file disco per macchine virtuali, che è il formato aperto sviluppato da VMware. Questo formato di disco virtuale ha l’estensione .vmdk per i file ed è utilizzato dalle macchine virtuali di VMware e VirtualBox. Tuttavia, le macchine virtuali residenti sui server ESXi utilizzano un formato leggermente diverso di dischi virtuali vmdk. Nel datastore ESXi, il descrittore del disco virtuale e l’estensione del disco virtuale che contiene i dati grezzi del disco virtuale sono due file separati.
Il modello del nome del descrittore del disco virtuale è diskname.vmdk e il modello del nome dell’estensione del disco virtuale che contiene tutti i dati grezzi è diskname-flat.vmdk. Per quanto riguarda i dischi virtuali del formato VMware Workstation, sono rappresentati come un singolo file diskname.vmdk (sparso monolitico), che è un file di dati dell’estensione contenente un descrittore di disco virtuale incorporato. Un descrittore di disco virtuale definisce la struttura del disco virtuale, la geometria del disco virtuale, la versione del hardware virtuale e gli ID.
File del descrittore del disco virtuale
A virtual disk descriptor is represented as plain text. On the left side of the screenshot below, you can see a virtual disk descriptor of the ESXi format (a vmdk file that can be opened with any text editor). On the right side of the screenshot, you can see the data of the virtual disk descriptor that is embedded into a single vmdk file of the VMware Workstation format. The vmdk file can be opened in a HEX editor.
Come puoi vedere, i dati del descrittore del disco incorporato sono scritti nel file vmdk monolitico del formato Workstation dall’indirizzo 0x200, che è il numero del primo byte. Se trasformi il valore HEX 200 in formato binario e decimale, otterrai:
200 HEX = 1000000000 Binario = 512 Decimale
Questo significa che se vuoi estrarre il descrittore incorporato dal file vmdk, dovresti estrarre una porzione di dati a partire dal 512° byte. Puoi trovare ulteriori informazioni sui file di descrittore del disco virtuale VMware e imparare come estrarre, modificare e importare un descrittore di disco virtuale incorporato nel post del blog sulla conversione di VMware VM in VM Hyper-V.
File dei dati del disco virtuale
Nello screenshot sottostante, due file di disco virtuale sono aperti in un editor HEX. Lo stesso sistema operativo è installato su entrambi i dischi virtuali (la prima partizione utilizzata per l’installazione del sistema operativo è stata creata e formattata con un’utilità disco integrata di Windows). Sul lato sinistro dello screenshot viene visualizzato un file –flat.vmdk (formato ESXi). I dati grezzi sono scritti da 0x00000000 su questo disco virtuale –flat.vmdk. Sul lato destro dello screenshot, viene visualizzato il disco virtuale nel formato Workstation, e gli stessi dati sono scritti da 0x00150000 (numero di byte 5376), che non è l’inizio del file vmdk.
Ora, dopo esserti familiarizzato con la teoria, è tempo per la parte pratica. Prima di procedere, è consigliabile eseguire il backup dei tuoi dati per evitare eventuali danni ai dischi virtuali. Esegui le operazioni con i tuoi dischi a tuo rischio e pericolo.
2 Metodi per Aprire File VMDK Accendendo una VM
Per aprire file VMDK accendendo VM esistenti, è necessario avere un ipervisore come VMware ESXi, VMware Workstation, VMware Player, o Oracle VirtualBox installato sul tuo computer fisico. Puoi optare per il metodo legacy utilizzando un DVD live o montando il file VMDK come disco virtuale.
Metodo 1: Utilizzando un DVD live anche se il sistema operativo sulla VM è morto
Questo è un metodo legacy perché il principio è simile alla copia di file da dischi fisici di computer fisici quando il sistema operativo installato non può avviarsi. Questo metodo può essere utilizzato per estrarre dati da dischi VMDK di VM in esecuzione su VMware ESXi e VMware Player/Workstation.
Assicurarsi che il sistema operativo avviato dal DVD live riconosca i file system delle partizioni del disco virtuale di cui si desidera accedere. Ad esempio, Windows non può lavorare con i file system Linux come EXT3, EXT4, ReiserFS, ecc., Di default. Utilizzando strumenti aggiuntivi su Windows può aiutare a risolvere questo problema. D’altra parte, Linux moderno riconosce i file system Windows come NTFS e FAT32, ed è per questo che è possibile utilizzare i dischi Live DVD basati su Linux per copiare file archiviati su dischi virtuali utilizzati dal VM Windows che non può avviarsi.
Esempio: Apertura di file VMDK su ESXi
Consideriamo un esempio per applicare questo metodo: hai una VM con Windows Server 2016 su un host ESXi, e il sistema operativo sulla VM non può avviarsi, ma è necessario ottenere i file registrati sul disco virtuale VMDK. Sul disco virtuale ci sono due partizioni NTFS: la partizione di sistema di avvio e il disco C. In questo esempio viene utilizzata l’immagine ISO ufficiale dell’installazione di Ubuntu 18. Il supporto di installazione di Ubuntu può essere utilizzato come DVD Live.
NOTA: Il flusso di lavoro per le versioni più recenti dei prodotti considerati in questo articolo è lo stesso. È possibile utilizzare VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04, ecc., e utilizzare il principio di funzionamento spiegato in questo articolo.
- Carica l’immagine ISO nel datastore a cui può accedere l’host ESXi su cui risiede la VM.
- Apri VMware vSphere Client, vai su Host e Cluster, seleziona la tua VM e clicca su Modifica Impostazioni.
- Nella finestra delle impostazioni della VM, vai alle opzioni del drive CD/DVD. Se hai il file ISO necessario sul datastore accessibile dall’host ESXi, seleziona l’opzione File ISO del datastore. Quindi, per l’opzione Media CD/DVD, clicca su Sfoglia e seleziona il file ISO appropriato sul datastore. Il nome del file è ubuntu-18.04.1-desktop-amd64.iso in questo caso.
- Avvia la VM, fai il boot dall’immagine ISO e seleziona Prova Ubuntu senza installare. Una volta che Ubuntu è avviato dal supporto DVD Live, apri la console (Terminale).
- Ottenere i privilegi di root:
sudo -i
- Elencare i dispositivi hard disk disponibili:
ls -al /dev/sd*
Ci sono due partizioni – /dev/sda1 e /dev/sda2
- Creare directory da utilizzare come punti di mount per ogni partizione:
mkdir /mnt/win-disk1
mkdir /mnt/win-disk2
- Monta le partizioni del disco virtuale nelle directory appropriate:
mount /dev/sda1 /mnt/win-disk1/
mount /dev/sda2 /mnt/win-disk2/
- In seguito, elenca i file e le directory delle partizioni montate:
ls -al /mnt/win-disk2/
ls -al /mnt/win-disk1/
Come puoi vedere nello screenshot sopra, la partizione montata su /mnt/win-disk2 è quella utilizzata come disco C: in Windows.
- Ora puoi collegare un disco rigido esterno USB (HDD) alla porta USB del tuo host ESXi e connettere questo HDD alla macchina virtuale con la funzione di passaggio USB. In questo modo puoi copiare i file necessari memorizzati nel file VMDK utilizzato come disco virtuale dalla macchina virtuale. Un altro modo è utilizzare una condivisione SMB (CIFS) e copiare i contenuti del disco virtuale (ossia il file VMDK) in un’altra posizione tramite la rete.
In questo esempio, spieghiamo come copiare i dati su una condivisione SMB. La condivisione SMB è stata creata sull’host il cui indirizzo IP è 192.168.17.125, il nome della condivisione è \\192.168.17.125\share, e user10 ha le autorizzazioni di scrittura per questa condivisione. Non dimenticare che Linux, a differenza di Windows, utilizza la barra obliqua destra quando si connette alla condivisione.
Montiamo la condivisione SMB (CIFS) su Linux caricato dal DVD live. Per prima cosa, crea una directory da utilizzare come punto di montaggio.
mkdir /mnt/smb-share
- Quindi monta la condivisione SMB (CIFS) in questa directory:
mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share
- Inserisci la password dell’utente.
- Ora, il tuo sistema Linux è connesso alla condivisione SMB e puoi copiare i contenuti memorizzati all’interno del file VMDK nella condivisione SMB tramite la rete.
Andiamo alla directory a cui è montata la condivisione SMB e copiamo il file bootmgr dalla partizione montata del disco virtuale (il file VMDK sul datastore ESXi) nella directory corrente (condivisione SMB).
cd /mnt/smb-share
cp /mnt/win-disk-2/bootmgr
- Quindi assicurati che i file necessari siano stati copiati e controlla il contenuto della tua condivisione SMB.
ls -al /mnt/smb-share
Come puoi vedere nello screenshot sopra, il file bootmgr utilizzato in questo esempio è stato copiato con successo. Ora conosci il primo metodo per copiare i contenuti del file VMDK in un’altra posizione quando un sistema operativo installato su una VM non può avviarsi. La logica di utilizzo di questo metodo su VMware Player o VMware Workstation è la stessa.
Metodo 2: Montare un file VMDK come disco virtuale su una VM sana (ESXi/Workstation/Player)
Questo metodo è simile al precedente, ma in questo caso il disco virtuale VMDK dovrebbe essere collegato a una macchina virtuale esistente che ha un sistema operativo funzionante. Puoi collegare un file VMDK come disco virtuale aggiuntivo a una VM esistente in esecuzione su un host ESXi, VMware Workstation e VMware Player.
Se si desidera aprire un file VMDK della VM ESXi su VMware Workstation o Player, è necessario copiare sia il disco virtuale che il suo descrittore (file vmdk e flat.vmdk) su un disco fisico accessibile al computer su cui è installato VMware Workstation o Player. Se sono state effettuate snapshot per la VM e sono state apportate modifiche ai dischi della VM successivamente, non dimenticare di copiare anche i file VMDK dei dischi virtuali delta (differenziali) oltre ai file VMDK principali.
Consideriamo due esempi:
Esempio 1: come aprire un disco virtuale VMDK di una VM utilizzando un’altra VM su un host ESXi (entrambi registrati su un host ESXi)
Esempio 2: come estrarre il contenuto da un disco virtuale VMDK di una VM ESXi collegando il disco virtuale a una VM nel formato VMware Workstation
Tieni presente che il sistema operativo funzionante sulla prima VM (sana) deve essere compatibile con i sistemi di file utilizzati sul disco virtuale della seconda VM che ha un sistema operativo non avviabile (una VM il cui file VMDK si desidera collegare come disco virtuale aggiuntivo per estrarre i file).
Esempio 1: Montaggio di un disco virtuale su una VM in esecuzione su ESXi
- Spegnete la VM che utilizza un disco virtuale da cui si desidera estrarre i file.
- Trovate questo disco virtuale nel datastore ESXi.
- Copia il disco virtuale in un’altra directory sulla stessa datastore o su un’altra datastore per evitare un errore causato dal blocco del disco virtuale. Nel nostro esempio, mostreremo come aprire un file VMDK il cui nome è Win-test2.vmdk (questo è un disco virtuale della macchina virtuale Windows Win-test2 nel nostro caso). L’host ESXi è gestito da vCenter. Se si utilizza un host ESXi autonomo senza vCenter, è possibile utilizzare la logica spiegata in questo esempio: le differenze sono solo nell’interfaccia utente.
- Aprire VMware vSphere Client, andare su Storage, e selezionare la datastore su cui si trova il file VMDK necessario. Selezionare il file VMDK e fare clic su Copia su.
NOTA: Se si dispone di un host ESXi autonomo e non si dispone di vCenter, aprire VMware Host Client inserendo l’indirizzo IP del proprio host ESXi nel browser web, quindi andare su Storage > [Nome della tua datastore] > Datastore Browser, selezionare il proprio file VMDK e premere Copia. Selezionare la destinazione e premere il pulsante Copia per confermare. Ricorda che i dischi virtuali sono visualizzati come file VMDK nell’interfaccia web di VMware vSphere Client e VMware Host Client, ma un disco virtuale è composto dai file – flat.vmdk e vmdk (un disco virtuale e il suo descrittore). È anche possibile aprire direttamente la console ESXi sul server o connettersi tramite SSH per copiare i file.
- Nella finestra aperta, seleziona la destinazione. Puoi copiare il file VMDK in qualche posizione sullo stesso datastore o su un altro datastore. Copiamo il file VMDK nella directory radice dello stesso datastore per questa dimostrazione. Sia i file vmdk che –flat.vmdk vengono copiati in questo caso.
- Ora devi collegare il disco virtuale VMDK a un’altra VM sana il cui sistema operativo funziona correttamente. In questo esempio, viene utilizzata una VM in esecuzione Windows Server 2016 sullo stesso host ESXi (il nome della VM è WinServer2016). Un disco virtuale può essere collegato a questa VM sana mentre la VM è in esecuzione. Nel client vSphere, vai su Hosts and Clusters, seleziona la VM sana, fai clic con il pulsante destro del mouse sulla VM e seleziona Edit Settings.
- Nella finestra che appare, premi Add New Device e seleziona Existing Hard Disk.
- Seleziona la copia del tuo file VMDK che hai creato in precedenza. Nell’esempio attuale, è stata selezionata la copia di Win-test2.vmdk situata nella directory radice del datastore.
- Accendi la VM sana a cui hai collegato il disco virtuale di cui sei interessato, se la VM non è stata ancora accesa. Un disco virtuale viene aggiunto in modo dinamico per una VM Windows Server 2016 in esecuzione.
- Nel sistema operativo guest Windows, vai a Gestione computer > Gestione disco (o esegui diskmgmt.msc nella riga di comando) e trova il tuo disco virtuale collegato. Per impostazione predefinita, il nuovo disco collegato è offline. Fai clic destro sul disco e premi Online. Una lettera di disco dovrebbe essere assegnata automaticamente alle partizioni sul disco aggiunto. Se una lettera di disco non è stata assegnata per una partizione, fai clic destro sulla partizione e fai clic su Cambia lettera di unità e percorsi.
- Ora hai accesso completo (lettura/scrittura) ai file e alle directory del disco virtuale VMDK. Apri semplicemente il disco montato in Esplora risorse di Windows e copia il contenuto necessario del file VMDK montato alla VM sana. Puoi anche eliminare dati non necessari dal disco virtuale VMDK collegato (ad esempio, se ci sono file creati da virus), ma fai attenzione e non danneggiare un disco virtuale se ci sono snapshot correlati per il disco VMDK montato.
Esempio 2: Montare un disco virtuale su una VM in esecuzione su VMware Player o Workstation
Questo esempio è simile al precedente, ma viene utilizzata una VM in esecuzione su VMware Workstation per aprire i file VMDK della VM ESXi. Questo metodo può essere utilizzato quando non c’è spazio libero sul datastore ESXi per copiare un disco virtuale, ad esempio. Un disco virtuale della VM Win-test2 menzionata nel precedente esempio verrà montato su una VM VMware Workstation per estrarne il contenuto.
- Nel client VMware vSphere, vai su Archiviazione > [Nome del tuo datastore] > File, seleziona il file VMDK e premi Download. Come ricordi, un disco virtuale nel formato ESXi è composto da file vmdk e flat.vmdk. Devi scaricare entrambi i file sulla macchina dove è installato VMware Workstation o VMware Player. Quando scarichi un disco virtuale dal datastore ESXi con VMware HTML5 vSphere Client, questi due file vengono compressi in un archivio zip. Come alternativa, puoi abilitare l’accesso SSH al tuo host ESXi, andare alla directory del datastore e copiare entrambi i file del disco virtuale sul tuo computer manualmente usando un client SCP, ad esempio, WinSCP. NOTA: Quando scarichi un disco virtuale sottoprovvisionato da un datastore ESXi che ha il file system VMFS sul tuo computer, otterrai un file vmdk leggero e un file flat.vmdk il cui dimensione sarà uguale alla dimensione massima prevista del disco virtuale (come faresti scaricando un disco virtuale sottoprovvisionato). Questo perché la sottoprovvisionamento può essere considerato una caratteristica del file system VMFS. Ora puoi vedere due file del disco virtuale nel formato ESXi che sono stati scaricati in un archivio ZIP. La dimensione del disco virtuale sottoprovvisionato sul datastore VMFS è ora di circa 2 GB (vedi lo screenshot sopra), mentre la dimensione dello stesso disco scaricato su una macchina di lavoro è di circa 8 GB (vedi lo screenshot sotto).
- Scompatta i due file dall’archivio. Per impostazione predefinita, i file vengono estratti nella directory Win-test2.vmdk, il cui nome è lo stesso nome dell’archivio ma senza estensione del file.
- Per questo passaggio, dovresti avere una VM sana con un sistema operativo funzionale sulla tua macchina con VMware Workstation o Player installato. Mentre nell’esempio precedente è stata utilizzata una VM in esecuzione su Windows Server 2016, in questo esempio viene utilizzata una VM sana in esecuzione su Windows Server 2008.
Apri VMware Workstation o VMware Player, seleziona la tua VM sana e modifica le impostazioni della macchina virtuale.
- Nella scheda Hardware, clicca sul pulsante Aggiungi.
- Nel Wizard Aggiungi Hardware che si apre, seleziona Disco rigido come tipo di hardware. Quindi, seleziona un tipo di disco (puoi lasciare il valore consigliato). Nella schermata Seleziona un Disco, seleziona l’opzione Usa un disco virtuale esistente.
- Seleziona il file vmdk (non – flat.vmdk) che hai estratto dall’archivio ZIP. Puoi navigare nel file o inserire manualmente l’intero percorso del file.
In questo esempio, vengono utilizzati ESXi 6.5 e VMware Workstation 15. La VM di VMware Workstation in esecuzione su Windows Server 2008 nel nostro esempio ha la versione hardware Workstation 12 (versione VM 12). La VM ESXi il cui disco virtuale vogliamo collegare ha la versione VM 7.
- Riceviamo un messaggio di errore in VMware Workstation che indica che il disco virtuale copiato dall’host ESXi non è compatibile con questa macchina virtuale:
Questo errore può essere risolto modificando il file del descrittore del disco (il file leggero vmdk nel caso dei dischi virtuali delle VM ESXi). Apri il tuo file VMDK nell’editor di testo e modifica il numero nella stringa Ddb.virtualHWVersion. Nel nostro caso, il 13 viene cambiato in 12.
NOTA: Ricorda che per i dischi virtuali delle VM VMware Workstation, viene creato un descrittore di disco virtuale nel file VMDK del disco virtuale (non esiste un file di descrittore separato come per i dischi virtuali delle VM ESXi).
Dopo aver modificato il file, il disco virtuale viene aggiunto con successo alla VM esistente.
- Accendi la VM se non è ancora stata accesa.
- Apri Gestione disco in Windows, cambia lo stato del tuo disco virtuale in online, assegna una lettera di unità a una partizione e consulta i file.
Come estrarre i dati da un file VMDK senza accendere una VM
I metodi che non richiedono di configurare e accendere una macchina virtuale hanno i propri vantaggi. Alcuni di questi metodi non richiedono l’installazione di un ipervisore. Puoi montare direttamente i file VMDK sul tuo sistema operativo host in breve tempo.
Metodo 1: Montaggio file VMDK in un sistema operativo host con VMware Workstation
Questo metodo richiede l’installazione di VMware Workstation su un sistema operativo Windows o Linux in esecuzione sul tuo computer fisico. VMware Workstation offre una bella funzionalità che ti consente di montare file VMDK sul tuo sistema operativo host. Sono supportati i dischi virtuali nel formato ESXi e i dischi delta relativi agli snapshot della VM. Allo stesso modo di tutti i metodi precedenti considerati in questo post del blog, il tuo sistema operativo deve supportare i file system delle partizioni dei dischi virtuali.
Se hai snapshot della tua macchina virtuale, i dischi virtuali delta vengono creati dopo la creazione di ciascuno snapshot. Dovresti avere a disposizione un disco virtuale genitore e dischi delta se desideri aprire uno stato del disco virtuale nel momento successivo alla creazione di uno snapshot. In questo caso, dovresti montare il disco virtuale delta appropriato sul tuo sistema operativo host. Le dipendenze relative al disco virtuale genitore verranno risolte automaticamente.
Se hai snapshot ma desideri aprire un disco virtuale genitore, apri il disco virtuale genitore in modalità di sola lettura. Questo perché apportare modifiche al disco virtuale genitore può danneggiare gli snapshot o i cloni collegati creati da una macchina virtuale genitore con il disco virtuale genitore. La modalità di sola lettura impedisce di scrivere dati su un disco virtuale dopo aver montato il disco sul sistema operativo host. Puoi montare file di disco virtuale VMDK se una VM che utilizza questo disco virtuale è spenta, o se una particolare VM non sta utilizzando questo disco virtuale.
Guardiamo come montare un disco virtuale VMDK della VM di VMware Workstation che ha snapshot. Su un disco virtuale della VM è installato Windows su una partizione NTFS. Dopo aver preso il primo snapshot, il file Snapshot1.txt viene creato nella directory principale del disco C:, e, allo stesso modo, dopo aver preso il secondo snapshot, il file Snapshot2.txt viene creato lì. Il primo esempio è per Linux, e il secondo esempio è per Windows. In questo esempio vengono utilizzati i file del disco virtuale del vecchio VM Windows XP.
Esempio 1: Montaggio di VMDK sull’host Linux
- Apri VMware Workstation per Linux e vai su File > Monta dischi virtuali.
- Clicca su Monta disco, e si apre una finestra pop-up. Clicca su Sfoglia e seleziona il file del disco virtuale VMDK.
- Selezioniamo il file VMDK del secondo disco virtuale differenziale creato dopo aver preso il secondo snapshot della VM. Il nome di questo file appare come VM_name-000002.vmdk in tali casi (WinXP-test-000002.vmdk è utilizzato in questo esempio).
- Crea la directory sul tuo file system Linux per montare un disco virtuale nel formato VMDK in quella directory. Creiamo la directory /mnt/vmdk/ nella console Linux.
mkdir /mnt/vmdk/
- Imposta i permessi per il tuo utente (il nome utente è user1 e è membro del group1 in questo esempio):
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 di controllo “Monta in modalità sola lettura” e clicca su Monta.
- Ora sei in grado di aprire la directory /mnt/vmdk/ nel tuo esploratore di file Linux e navigare tra i file e le directory situati sul disco virtuale VMDK. Puoi vedere i file Snapshot1.txt e Snapshot2.txt, che sono stati creati dopo la creazione del primo e del secondo snapshot in questo esempio. Ciascuno di questi due file è situato su un disco virtuale VMDK delta separato.
- Non dimenticare di smontare il disco virtuale VMDK dalla directory (punto di mount) sul tuo sistema Linux host quando hai finito le operazioni sul contenuto del disco virtuale.
Se preferisci utilizzare l’interfaccia della console, puoi montare le immagini disco VMDK sull’host Linux in console con questo comando:
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
Dove:
vm_name è il nome della macchina virtuale che è lo stesso nome della directory VM in questo caso. WinXP-test è il nome della VM nel nostro esempio.
vm_disk_name è il nome del disco virtuale (WinXP-test.vmdk è usato in questo esempio).
vm_disk_name-000001.vmdk è il nome del primo disco delta (differenziale) creato dopo aver preso il primo snapshot della VM (WinXP-test-000001.vmdk in questo caso).
vm_disk_name-000002.vmdk è il nome del secondo disco delta creato dopo aver preso il secondo snapshot della VM corrispondentemente (WinXP-test-000002.vmdk in questo caso).
- Monta il disco virtuale. Per default, il disco virtuale viene montato in modalità lettura/scrittura. Puoi utilizzare il tasto -r nella riga di comando per montare un disco in modalità sola lettura.
vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk
- Elenca tutti i dischi virtuali VMDK montati:
vmware-mount -L
- Prima di terminare il lavoro con i dischi virtuali VMDK montati, smonta tutti i dischi virtuali:
vmware-mount -x
Esempio 2: Come montare VMDK sull’host Windows
L’idea di come montare i file VMDK in Windows è simile. Oltre all’opzione File > Mappa dischi virtuali nell’interfaccia utente grafica (GUI) di VMware Workstation, puoi seguire i passaggi seguenti. Montiamo il file VMDK del primo disco virtuale differenziale creato dopo aver preso il primo snapshot della VM. Il nome di questo file VMDK ha il seguente formato: Nome_VM-000001.vmdk (WinXP-test-000001.vmdk è aperto in questo tutorial).
- Fai clic con il pulsante destro del mouse sul file VMDK in Esplora risorse di Windows e fai clic su Mappa disco virtuale.
- Seleziona i parametri per montare un file VMDK. È consigliabile aprire il file VMDK in modalità di sola lettura per evitare eventuali danni ai dischi virtuali che appartengono alla catena di snapshot dopo la scrittura dei dati. La lettera dell’unità predefinita è Z: in questo caso e l’unità si apre automaticamente in Esplora risorse di Windows dopo la mappatura se è selezionata la casella di controllo appropriata. Fai clic su OK per procedere.
- Ora il disco virtuale è montato come disco Z: in Windows e puoi leggere i contenuti del file vmdk. Nella schermata sottostante, puoi vedere il file Snapshot1.txt creato dopo aver preso il primo snapshot. Il file Snapshot2.txt manca perché è stato creato dopo aver preso il secondo snapshot della VM e abbiamo aperto un disco virtuale delta relativo al primo snapshot della VM.
- Quando hai finito di lavorare con il disco virtuale VMDK mappato, non dimenticare di scollegare il disco. Fai clic con il pulsante destro del mouse sul file VMDK appropriato e poi fai clic su Scollega disco virtuale. Dopo aver scollegato il disco virtuale, puoi accendere quella VM che utilizza questo disco virtuale.
Metodo 2: Utilizzo di 7-zip per estrarre i contenuti dai file VMDK
Se stai cercando come aprire i file VMDK senza eseguire macchine virtuali, puoi installare 7-zip ed estrarre i contenuti dalle immagini del disco virtuale. 7-zip è uno strumento gratuito destinato all’archiviazione di file e all’estrazione di file dagli archivi e da altre immagini. Puoi usare 7zip come estrattore vmdk. Questo strumento può essere utilizzato su macchine Linux e Windows.
7-zip può aprire i file vmdk e –flat.vmdk (questo utility può aprire un singolo file –flat.vmdk se il file di descrizione vmdk è mancante) – 7-zip è effettivamente per dischi virtuali del formato ESXi. 7-zip non può aprire file delta VMDK creati dopo aver preso snapshot VM.
Come aprire il file VMDK con 7-zip su Linux
- Installa un pacchetto completo di 7-zip sulla tua macchina Linux. Ubuntu è utilizzato in questo esempio.
apt-get install p7zip-full
- Elenco dei contenuti del file vmdk con 7-zip:
7z l vm_name.vmdk
- Troviamo i file che contengono “boot” nei loro nomi, ad esempio:
7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]
Dove user1 è il nome del nostro utente Linux, l – elenco.
- Estraiamo (e) il file boot.ini dall’immagine VMDK:
7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini
Puoi estrarre altri file e directory dal file VMDK allo stesso modo.
Come aprire file VMDK con 7-zip su Windows
- Scarica la versione compatibile di 7-zip dal sito web ufficiale e installa l’applicazione sul tuo computer Windows. Usa l’installatore EXE per maggiore comodità.
- Dopo aver installato 7-zip su Windows, vengono aggiunte nuove opzioni di 7-zip al menu contestuale quando si fa clic con il pulsante destro del mouse su qualsiasi file o cartella in Esplora file di Windows (vedi la schermata di seguito). Utilizza queste opzioni per aprire il file VMDK come archivio o estrarre i file ora.
- Nella schermata seguente, il contenuto del file standalone Win-test2-flat.vmdk viene visualizzato nell’interfaccia grafica di 7-zip utilizzata in Windows. Puoi estrarre i contenuti del VMDK di cui hai bisogno.
Come montare file VMDK in Linux (Altri metodi)
Una delle capacità più potenti di Linux è la possibilità di eseguire il maggior numero di operazioni nella console, anche con strumenti integrati. Questi strumenti ti aiuteranno a montare i file VMDK e accedere ai contenuti memorizzati sui dischi virtuali. Ubuntu Linux è utilizzato negli esempi forniti.
Metodo 1: Come montare file VMDK utilizzando /dev/loop
I dispositivi loop sono pseud-dispositivi in Linux, che rendono i file accessibili come dispositivi a blocchi e possono essere utilizzati per montare immagini disco che contengono sistemi di file. I dispositivi loop sono nominati come /dev/loopX dove X è il numero del dispositivo loop. Questo metodo è utile per montare file – flat.vmdk, anche senza un descrittore disco virtuale.
Esploriamo come montare un file VMDK in Linux per accedere ai file del disco virtuale come esempio. C’è un disco virtuale in formato ESXi che contiene una partizione – manca il file descrittore. Un tempo, Windows XP era installato su quel disco virtuale.
- Usa uno dei due comandi per verificare il numero di dispositivi loop esistenti nel tuo sistema Linux.
fdisk -l | grep /dev/loop
df -h | grep /dev/loop
- Nel nostro caso, i dispositivi con numeri da 1 a 21 esistono già (/dev/loop1 – /dev/loop21). Pertanto, creiamo il dispositivo loop numero 30 – questo numero è libero. Assoceremo questo dispositivo al file – flat.vmdk.
losetup /dev/loop30 /vms/Win-test2-flat.vmdk
-
losetup -o 32256 /dev/loop31 /dev/loop30
Dove 32256 è l’offset che corrisponde a 63*512 per un disco formattato in Windows XP/Server 2003 e versioni più vecchie di Windows (63 è il numero del primo settore della partizione, e 512 byte è la dimensione del settore). Per Windows 7/Server 2008 e versioni più recenti di Windows, prova l’offset 105906176.
Puoi ottenere 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
Come alternativa, per i dischi virtuali che contengono più partizioni, puoi utilizzare parted per determinare l’inizio e la fine di ciascuna partizione:
parted /dev/loop30
Nella console parted, inserisci i seguenti comandi:
unit
B
print
- Crea una directory da utilizzare come punto di mount per l’immagine VMDK:
mkdir /mnt/vmdk-image
- Monta il dispositivo loopback associato all’immagine VMDK nella directory creata:
mount /dev/loop31 /mnt/vmdk-image
- Elenco dei contenuti dell’immagine montata:
ls -al /mnt/vmdk-image
- Dopo aver finito di lavorare con il contenuto del disco virtuale, smonta l’immagine vmdk e scollega il dispositivo loop:
umount /mnt/vmdk-image
losetup -d /dev/loop31
Metodo 2: Come montare i file VMDK con kpartx
Kpartx è uno strumento che può montare partizioni all’interno di file immagine nelle directory del tuo reale sistema di file Linux. Questo strumento può essere utilizzato per configurare mappe di dispositivi per partizioni di dispositivi a blocchi. Questo metodo funziona anche per il montaggio di immagini –flat.vmdk utilizzate su server ESXi. Vediamo come montare il file –flat.vmdk utilizzato nell’esempio precedente.
- Installa kpartx:
apt-get install kpartx
- Aggiungi la mappatura della partizione per l’immagine VMDK in modalità operativa verbosa:
kpartx -av /vms/Win-test2-flat.vmdk
- Monta una partizione nella directory /mnt/vmdk-image precedentemente preparata:
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 nell’immagine del disco).
- Elenca il contenuto della partizione del disco virtuale che hai montato:
ls -al /mnt/vmdk-image/
- Quando hai finito le operazioni con i file dell’immagine VMDK, smonta l’immagine del disco virtuale VMDK:
umount /mnt/vmdk-image
kpartx -d /vms/Win-test2-flat.vmdk
Conclusione
Conoscere più metodi per estrarre il contenuto dei file VMDK ti offre flessibilità e affidabilità perché ogni metodo può essere la migliore opzione in determinate situazioni. Inoltre, è ancora meglio avere backup delle tue macchine virtuali oltre a quella conoscenza.
NAKIVO Backup & Replication può eseguire il backup e il ripristino delle VM in esecuzione su VMware vSphere nel miglior modo possibile. È possibile recuperare l’intera VM, il disco virtuale specifico o file separati dal backup in una posizione personalizzata.
Source:
https://www.nakivo.com/blog/extract-content-vmdk-files-step-step-guide/