Hoe VMDK-bestanden te openen in VMware en gegevens te extraheren

Het begrijpen van hoe je VMDK-bestanden opent en inhoud uit VMDK-bestanden haalt, is nuttig wanneer je een probleem tegenkomt met een virtuele machine. Je kunt merken dat VM’s niet kunnen worden gestart na problemen met de installatie van applicaties, OS-updates, malware-aanvallen, per ongeluk verwijderen van gegevens, enzovoort. Wanneer dit gebeurt, verlies je toegang tot de virtuele schijf van de VM.

Gelukkig kun je VMDK-bestanden openen met WinZip, Linux Reader of VMware Workstation Player. Lees verder om meer te leren over de methoden om de inhoud van VMDK virtuele schijfbestanden te herstellen. Let op: deze methoden zijn alleen van toepassing als de virtuele schijf niet versleuteld of beschadigd is.

Wat is een VMDK-bestand?

VMDK is een bestandsformaat voor virtuele machine-schijven, dat het open formaat is ontwikkeld door VMware. Dit virtuele schijfformaat heeft de extensie .vmdk voor bestanden en wordt gebruikt door VMware en VirtualBox virtuele machines. Virtuele machines die echter op ESXi-servers staan, gebruiken een iets ander formaat van vmdk virtuele schijven. Op de ESXi datastore zijn de virtuele schijfdescriptor en het virtuele schijfgedeelte dat de ruwe gegevens van de virtuele schijf bevat, twee aparte bestanden.

Het patroon van de naam van het virtuele schijfbestand is diskname.vmdk en het patroon van de naam van het virtuele schijfgebied dat alle ruwe gegevens bevat, is diskname-flat.vmdk. Wat betreft virtuele schijven van het VMware Workstation-formaat, deze worden weergegeven als een enkel diskname.vmdk-bestand (monolithisch spaarzaam), dat een uitgebreid gegevensbestand is dat een ingesloten virtuele schijfdescriptor bevat. Een virtuele schijfdescriptor definieert de structuur van de virtuele schijf, de geometrie van de virtuele schijf, de virtuele hardwareversie en ID’s.

Bestand virtuele schijfdescriptor

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.

Zoals u kunt zien, worden de ingesloten schijfdescriptorgegevens geschreven naar het monolithische vmdk-bestand van het Workstation-formaat vanaf het adres 0x200, dat het nummer van het eerste byte is. Als u de HEX-waarde 200 omzet naar een binair en decimaal formaat, krijgt u:

200 HEX = 1000000000 Binaire = 512 Decimaal

Dit betekent dat als u de ingesloten descriptor uit het vmdk-bestand wilt extraheren, u een deel van de gegevens moet extraheren, te beginnen vanaf het 512e byte. U kunt meer informatie vinden over VMware virtuele schijfdescriptorbestanden en leren hoe u een ingesloten virtuele schijfdescriptor kunt extraheren, bewerken en importeren in het blogbericht over het converteren van VMware-VM’s naar Hyper-V-VM’s.

Bestand virtuele schijfgegevens

In de onderstaande schermafbeelding zijn twee virtuele schijfbestanden geopend in een HEX-editor. Hetzelfde besturingssysteem is geïnstalleerd op beide virtuele schijven (de eerste partitie die werd gebruikt voor het installeren van het OS werd aangemaakt en geformatteerd met een ingebouwd Windows schijfhulpprogramma). Aan de linkerkant van de schermafbeelding wordt een –flat.vmdk-bestand weergegeven (ESXi-indeling). De ruwe gegevens zijn geschreven vanaf 0x00000000 op dit virtuele schijf –flat.vmdk-bestand. Aan de rechterkant van de schermafbeelding wordt de virtuele schijf van het Workstation-formaat weergegeven, en dezelfde gegevens zijn geschreven vanaf 0x00150000 (byte nummer 5376), wat niet het begin is van het vmdk-bestand.

Nu, na het vertrouwd raken met de theorie, is het tijd voor het praktische gedeelte. Voordat u verder gaat, wordt aanbevolen dat u een back-up maakt van uw gegevens om eventuele mogelijke schade aan de virtuele schijf te voorkomen. Voer bewerkingen uit met uw schijven op eigen verantwoordelijkheid en risico.

2 Methoden om VMDK-bestanden te openen door een VM in te schakelen

Om VMDK-bestanden te openen door bestaande VM’s in te schakelen, heeft u een hypervisor zoals VMware ESXi, VMware Workstation, VMware Player, of Oracle VirtualBox nodig die is geïnstalleerd op uw fysieke computer. U kunt kiezen voor de traditionele methode door een live DVD te gebruiken of door het VMDK-bestand te koppelen als een virtuele schijf.

Methode 1: Gebruik een Live DVD, zelfs als het OS op de VM niet meer werkt

Het idee achter deze methode is dat je een VM hebt en kunt opstarten vanaf een DVD-schijf. Het ISO-schijfbeeld kan worden gebruikt als de DVD-schijf die wordt ingevoegd in de virtuele DVD-drive van de VM. Nadat het besturingssysteem is opgestart vanaf een DVD-medium, kun je de partities van je virtuele schijf koppelen en bestanden kopiëren van de virtuele schijf naar een USB-harde schijf die is aangesloten op de VM of op je hostmachine, of naar een andere machine via het netwerk. Sommige Live DVD-distributies koppelen schijven (partities) automatisch.

Dit is een verouderde methode omdat het principe vergelijkbaar is met het kopiëren van bestanden van fysieke schijven van fysieke computers wanneer het geïnstalleerde besturingssysteem niet kan opstarten. Deze methode kan worden gebruikt om gegevens te extraheren uit VMDK-schijven van VM’s die draaien op VMware ESXi en VMware Player/Workstation.

Wees ervan bewust dat het besturingssysteem dat is opgestart vanaf een Live DVD de bestandssystemen van de partities van je virtuele schijf moet herkennen waarvan je de bestanden wilt openen. Bijvoorbeeld, Windows kan standaard niet werken met Linux-bestandssystemen zoals EXT3, EXT4, ReiserFS, enz. Gebruik van aanvullende tools op Windows kan helpen om dit probleem op te lossen. Aan de andere kant herkent modern Linux Windows-bestandssystemen zoals NTFS en FAT32, en daarom kun je Linux-gebaseerde Live DVD’s gebruiken om bestanden te kopiëren die zijn opgeslagen op virtuele schijven die worden gebruikt door je Windows VM die niet kan opstarten.

Voorbeeld: VMDK-bestanden openen op ESXi

Laten we een voorbeeld bekijken voor het toepassen van deze methode: je hebt een VM met Windows Server 2016 op een ESXi-host, en het besturingssysteem op de VM kan niet opstarten, maar je moet de bestanden op de VMDK-virtuele schijf krijgen. Er zijn twee NTFS-partities op de virtuele schijf: de opstartpartitie van het systeem en schijf C. Het officiële Ubuntu 18-installatie-ISO-image wordt in dit voorbeeld gebruikt. De Ubuntu-installatiemedia kan worden gebruikt als Live DVD.

OPMERKING: De workflow voor nieuwere versies van de producten die in dit blogbericht worden overwogen, is hetzelfde. U kunt VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04, enzovoort gebruiken, en het werkingsprincipe zoals uitgelegd in dit artikel toepassen.

  1. Upload het ISO-image naar de datastore die toegankelijk is voor de ESXi-host waarop de VM zich bevindt.
  2. Open VMware vSphere Client, ga naar Hosts and Clusters, selecteer je VM, en klik op Instellingen bewerken.

  3. In het VM-instellingenvenster, ga naar CD/DVD-drive opties. Selecteer de Datastore ISO-bestand optie als je het benodigde ISO-bestand op de datastore hebt dat toegankelijk is via de ESXi-host. Klik vervolgens voor de optie CD/DVD Media op Bladeren en selecteer het juiste ISO-bestand op de datastore. De bestandsnaam is in dit geval ubuntu-18.04.1-desktop-amd64.iso.

  4. Start de VM, boot vanaf de ISO-image en selecteer Probeer Ubuntu Zonder te Installeren. Zodra Ubuntu is opgestart vanaf de Live DVD-media, open de console (Terminal).
  5. Bekom de rootprivileges:

    sudo -i

  6. Lijst beschikbare harde schijfapparaten op:

    ls -al /dev/sd*

    Er zijn twee partities – /dev/sda1 en /dev/sda2

  7. Maak mappen aan die gebruikt worden als koppelingspunten voor elke partitie:

    mkdir /mnt/win-disk1

    mkdir /mnt/win-disk2

  8. Monteer de partities van de virtuele schijf naar de juiste mappen:

    mount /dev/sda1 /mnt/win-disk1/

    mount /dev/sda2 /mnt/win-disk2/

  9. Dan lijst bestanden en mappen van de gemonteerde partities op:

    ls -al /mnt/win-disk2/

    ls -al /mnt/win-disk1/

    Zoals je kunt zien in de screenshot hierboven, is de partitie gemonteerd naar /mnt/win-disk2 de partitie die wordt gebruikt als schijf C: in Windows.

  10. Je kunt nu een USB harde schijf (HDD) aansluiten op de USB-poort van je ESXi-host en deze HDD verbinden met de virtuele machine via de USB-doorvoerfunctie. Op deze manier kun je de benodigde bestanden kopiëren die zijn opgeslagen op het VMDK-bestand dat wordt gebruikt als een virtuele schijf door de virtuele machine. Een andere manier is om een SMB (CIFS) share te gebruiken en de inhoud van de virtuele schijf (dat wil zeggen, het VMDK-bestand) naar een andere locatie te kopiëren via het netwerk.

    In dit voorbeeld leggen we uit hoe je gegevens kopieert naar een SMB-share. De SMB-share is aangemaakt op de host met het IP-adres 192.168.17.125, de share-naam is \\192.168.17.125\share, en user10 heeft schrijfrechten voor deze share. Vergeet niet dat Linux, in tegenstelling tot Windows, de juiste schuine streep gebruikt bij het verbinden met de share.

    Laten we de SMB (CIFS) share aankoppelen op Linux geladen vanaf de live DVD. Maak eerst een directory aan om te gebruiken als het aankoppelingspunt.

    mkdir /mnt/smb-share

  11. Koppel vervolgens de SMB (CIFS) share aan op deze directory:

    mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share

  12. Voer het wachtwoord van de gebruiker in.
  13. Nu is uw Linux-systeem verbonden met de SMB-share en kunt u de inhoud die is opgeslagen in het VMDK-bestand naar de SMB-share kopiëren via het netwerk.

    Ga naar de directory waaraan de SMB-share is gekoppeld en kopieer het bootmgr-bestand van de gekoppelde partitie van de virtuele schijf (het VMDK-bestand op de ESXi-opslagplaats) naar de huidige directory (SMB-share).

    cd /mnt/smb-share

    cp /mnt/win-disk-2/bootmgr

  14. Zorg er dan voor dat de benodigde bestanden zijn gekopieerd en controleer de inhoud van uw SMB-share.

    ls -al /mnt/smb-share

    Zoals je kunt zien in de bovenstaande screenshot, is het bestand bootmgr in dit voorbeeld succesvol gekopieerd. Nu weet je de eerste methode om de inhoud van het VMDK-bestand naar een andere locatie te kopiëren wanneer een besturingssysteem dat is geïnstalleerd op een VM niet kan opstarten. De logica van het gebruik van deze methode op VMware Player of VMware Workstation is hetzelfde.

Methode 2: Koppel een VMDK-bestand als een virtuele schijf aan een gezonde VM (ESXi/Workstation/Player)

Deze methode is vergelijkbaar met de vorige, maar in dit geval moet de VMDK-virtuele schijf worden gekoppeld aan een bestaande virtuele machine met een werkend besturingssysteem. U kunt een VMDK-bestand koppelen als een extra virtuele schijf aan een bestaande VM die draait op een ESXi-host, VMware Workstation en VMware Player.

Als u een VMDK-bestand van de ESXi-VM wilt openen in VMware Workstation of Player, moet u zowel de virtuele schijf als de descriptor (vmdk– en flat.vmdk-bestanden) naar een fysieke schijf kopiëren die toegankelijk is voor uw computer waar VMware Workstation of Player is geïnstalleerd. Als er snapshots zijn gemaakt voor de VM en er wijzigingen zijn aangebracht met VM-schijven daarna, vergeet dan niet de VMDK-bestanden van delta (verschillende) virtuele schijven te kopiëren naast de ouder VMDK-bestanden.

Laten we twee voorbeelden bekijken:

Voorbeeld 1: hoe u een VMDK-virtuele schijf van de ene VM kunt openen door een andere VM op een ESXi-host te gebruiken (beide zijn geregistreerd op een ESXi-host)

Voorbeeld 2: hoe u inhoud kunt extraheren uit een VMDK-virtuele schijf van een ESXi-VM door de virtuele schijf aan een VM van het VMware Workstation-formaat te koppelen

Houd er rekening mee dat het werkende besturingssysteem op de eerste (gezonde) VM compatibel moet zijn met de bestandssystemen die worden gebruikt op de virtuele schijf van de tweede VM met een niet-opstartbaar besturingssysteem (een VM waarvan u het VMDK-bestand wilt koppelen als een extra virtuele schijf om bestanden te extraheren).

Voorbeeld 1: Een virtuele schijf koppelen aan een VM die wordt uitgevoerd op ESXi

  1. Schakel de VM uit die een virtuele schijf gebruikt waarvan u bestanden wilt extraheren.
  2. Zoek deze virtuele schijf in de ESXi-datastore.
  3. Kopieer de virtuele schijf naar een andere directory op dezelfde datastore of naar een andere datastore om een fout veroorzaakt door het slot van de virtuele schijf te voorkomen. In ons voorbeeld zullen we laten zien hoe u een VMDK-bestand opent met de naam Win-test2.vmdk (dit is een virtuele schijf van de Win-test2 Windows virtuele machine in ons geval). De ESXi-host wordt beheerd door vCenter. Als u een op zichzelf staande ESXi-host gebruikt zonder vCenter, kunt u de logica gebruiken die wordt uitgelegd in dit voorbeeld – de verschillen zitten alleen in de gebruikersinterface.
  4. Open VMware vSphere Client, ga naar Opslag, en selecteer de datastore waarop het benodigde VMDK-bestand zich bevindt. Selecteer het VMDK-bestand en klik op Kopiëren naar.

    LET OP: Als u een op zichzelf staande ESXi-host heeft en geen vCenter heeft, opent u VMware Host Client door het IP-adres van uw ESXi-host in te voeren in de webbrowser, ga vervolgens naar Opslag > [Naam van uw datastore] > Datastore-browser, selecteer uw VMDK-bestand en klik op Kopiëren. Selecteer de bestemming en klik op de knop Kopiëren om te bevestigen. Onthoud dat virtuele schijven worden weergegeven als VMDK-bestanden in de webinterface van VMware vSphere Client en VMware Host Client, maar een virtuele schijf bestaat uit de – flat.vmdk en vmdk-bestanden (een virtuele schijf en de descriptor). U kunt ook rechtstreeks de ESXi-console openen op de server of verbinding maken via SSH om de bestanden te kopiëren.

  5. In het geopende venster selecteert u de bestemming. U kunt het VMDK-bestand kopiëren naar een locatie op dezelfde datastore of naar een andere datastore. Laten we het VMDK-bestand voor deze demonstratie kopiëren naar de rootdirectory van dezelfde datastore. In dit geval worden zowel vmdk– als –flat.vmdk-bestanden gekopieerd.

  6. Nu moet je de VMDK virtuele schijf koppelen aan een andere gezonde VM waarvan het besturingssysteem goed werkt. In dit voorbeeld wordt een VM gebruikt die Windows Server 2016 draait op dezelfde ESXi-host (de naam van de VM is WinServer2016). Een virtuele schijf kan aan deze gezonde VM worden gekoppeld terwijl de VM draait. Ga in de vSphere Client naar Hosts en Clusters, selecteer de gezonde VM, klik met de rechtermuisknop op de VM en klik op Bewerkingen bewerken.

  7. In het venster dat verschijnt, klik op Nieuw apparaat toevoegen en selecteer Bestaande harde schijf.

  8. Selecteer de kopie van je VMDK-bestand die je eerder hebt gemaakt. In het huidige voorbeeld is de kopie van Win-test2.vmdk geselecteerd, die zich bevindt in de hoofdmap van de datastore.

  9. Zet de gezonde VM aan waaraan je de virtuele schijf hebt gekoppeld waarin je geïnteresseerd bent, als de VM nog niet is ingeschakeld. Een virtuele schijf wordt toegevoegd terwijl een Windows Server 2016 VM draait.
  10. In de gast-Windows OS, ga naar Computerbeheer > Schijfbeheer (of voer diskmgmt.msc uit in de opdrachtregel) en vind uw virtuele schijf die is bijgevoegd. Standaard is de nieuwe bijgevoegde schijf offline. Klik met de rechtermuisknop op de schijf en selecteer Online. Er wordt automatisch een schijfletter toegewezen aan partities op de toegevoegde schijf. Als er geen schijfletter is toegewezen aan een partitie, klik dan met de rechtermuisknop op de partitie en klik op Schijfletter en paden wijzigen.

  11. U heeft nu volledige (lees/schrijf) toegang tot bestanden en mappen van de VMDK virtuele schijf. Open gewoon de gemonteerde schijf in Windows Verkenner en kopieer de benodigde inhoud van het gemonteerde VMDK-bestand naar de gezonde VM. U kunt ook onnodige gegevens van de bijgevoegde VMDK virtuele schijf verwijderen (bijvoorbeeld als er bestanden zijn gemaakt door virussen), maar wees voorzichtig en beschadig de virtuele schijf niet als er gerelateerde momentopnamen zijn voor de gemonteerde VMDK-schijf.

Voorbeeld 2: Een virtuele schijf koppelen aan een VM die draait op VMware Player of Workstation

Dit voorbeeld is vergelijkbaar met het vorige voorbeeld, maar er wordt een VM uitgevoerd op VMware Workstation om VMDK-bestanden van de ESXi-VM te openen. Deze methode kan worden gebruikt wanneer er geen vrije schijfruimte is op de ESXi-datastore om bijvoorbeeld een virtuele schijf te kopiëren. Een virtuele schijf van de Win-test2 VM die in het vorige voorbeeld werd genoemd, zal worden gekoppeld aan een VMware Workstation-VM om de inhoud ervan te extraheren.

  1. In VMware vSphere Client, ga naar Opslag > [Uw datastore-naam] > Bestanden, selecteer uw VMDK-bestand en klik op Downloaden.

    Zoals je je herinnert, bestaat een virtuele schijf van het ESXi-formaat uit vmdk en –flat.vmdk bestanden. Je moet beide bestanden downloaden naar je machine waar VMware Workstation of VMware Player is geïnstalleerd. Wanneer je een virtuele schijf downloadt van de ESXi-datastore met VMware HTML5 vSphere Client, worden deze twee bestanden verpakt in één zip-archief.

    Als alternatief kun je SSH-toegang tot je ESXi-host inschakelen, naar de datastore-directory gaan en beide virtuele schijfbestanden handmatig naar je computer kopiëren met behulp van een SCP-client, bijvoorbeeld, WinSCP.

    OPMERKING: Wanneer je een dun geprovisioneerde virtuele schijf van een ESXi-datastore met het VMFS-bestandssysteem naar je computer downloadt, krijg je een lichtgewicht vmdk-bestand en een –flat.vmdk-bestand waarvan de grootte gelijk zal zijn aan de maximale provisioneringgrootte van de virtuele schijf (zoals je zou doen bij het downloaden van een dik geprovisioneerde virtuele schijf). Dit komt doordat dunne provisioning kan worden beschouwd als een functie van het VMFS-bestandssysteem.

    Nu kun je twee bestanden van de virtuele schijf in ESXi-formaat zien die zijn gedownload in een ZIP-archief. De grootte van de dun geprovisioneerde virtuele schijf op de VMFS-datastore is nu ongeveer 2 GB (zie de bovenstaande screenshot), en de grootte van dezelfde schijf die is gedownload naar een werkstationmachine is ongeveer 8 GB (zie de onderstaande screenshot).

  2. Unzip de twee bestanden van het archief. Standaard worden de bestanden uitgepakt naar de map Win-test2.vmdk, wiens naam hetzelfde is als de naam van het archief maar zonder bestandsextensie.

  3. Voor deze stap moet je een gezonde VM hebben met een functioneel besturingssysteem op je machine met VMware Workstation of Player geïnstalleerd. Terwijl in het vorige voorbeeld de VM met Windows Server 2016 werd gebruikt, wordt in dit voorbeeld een gezonde VM met Windows Server 2008 gebruikt.

    Open VMware Workstation of VMware Player, selecteer je gezonde VM, en bewerk de virtuele machine-instellingen.

  4. In het Hardware-tabblad, klik op de Toevoegen-knop.

  5. In de Wizard Hardware toevoegen die opent, selecteer Harde schijf als het hardwaretype. Selecteer vervolgens een type schijf (u kunt de aanbevolen waarde laten staan). Op het Selecteer een schijf-scherm, selecteer de optie Een bestaande virtuele schijf gebruiken.

  6. Selecteer het vmdk-bestand (niet –flat.vmdk) dat u hebt uitgepakt uit het ZIP-archief. U kunt het bestand doorbladeren of het volledige pad naar het bestand handmatig invoeren.

    In dit voorbeeld worden ESXi 6.5 en VMware Workstation 15 gebruikt. De VMware Workstation-VM die Windows Server 2008 draait in ons voorbeeld heeft de hardwareversie Workstation 12 (VM-versie 12). De ESXi-VM waarvan we de virtuele schijf willen koppelen, heeft de VM-versie 7.

  7. We krijgen een foutmelding in VMware Workstation waarin staat dat de virtuele schijf die vanaf de ESXi-host is gekopieerd, niet compatibel is met deze virtuele machine:

    Deze fout kan worden opgelost door het bewerken van het schijfbeschrijvingsbestand (het lichte vmdk-bestand in het geval van virtuele schijven van ESXi-VM’s). Open uw VMDK-bestand in de teksteditor en bewerk het nummer in de Ddb.virtualHWVersion-reeks. In ons geval wordt 13 gewijzigd in 12.

    LET OP: Onthoud dat voor virtuele schijven van VMware Workstation-VM’s een virtuele schijfbeschrijving is ingebouwd in het virtuele schijfbestand VMDK (er is geen apart descriptorbestand zoals voor virtuele schijven van ESXi-VM’s).

    Na het bewerken van het bestand wordt de virtuele schijf met succes toegevoegd aan de bestaande VM.

  8. Schakel de VM in als deze nog niet is ingeschakeld.
  9. Open Schijfbeheer in Windows, wijzig de status van uw virtuele schijf naar online, wijs een stationsletter toe aan een partitie en blader door de bestanden.

Hoe gegevens uit een VMDK-bestand te extraheren zonder een VM in te schakelen

De methoden die geen configuratie en inschakeling van een virtuele machine vereisen, hebben hun eigen voordelen. Sommige van deze methoden vereisen geen installatie van een hypervisor. U kunt VMDK-bestanden direct aan uw host-besturingssysteem koppelen in een kort tijdsbestek.

Methode 1: Monteren van VMDK-bestandenop een host-OS met VMware Workstation

Deze methode vereist een installatie van VMware Workstation op een Windows- of Linux-besturingssysteem dat op uw fysieke computer draait. VMware Workstation biedt een handige functie waarmee u VMDK-bestanden kunt koppelen aan uw hostbesturingssysteem. Virtuele schijven van het ESXi-formaat en delta-schijven gerelateerd aan VM-snapshots worden ondersteund. Net als bij alle voorgaande methoden die in dit blogbericht zijn overwogen, moet uw besturingssysteem de bestandssystemen van virtuele schijfpartities ondersteunen.

Als u snapshots van uw virtuele machine heeft, worden de delta-virtuele schijven gemaakt nadat elke snapshot is gemaakt. U zou een ouder virtuele schijf en delta-schijven beschikbaar moeten hebben als u een virtuele schijfstaat wilt openen op het moment na het nemen van een snapshot. In dit geval moet u de juiste delta-virtuele schijf aan uw hostbesturingssysteem koppelen. Afhankelijkheden met betrekking tot de ouder virtuele schijf worden automatisch opgelost.

Als u snapshots heeft maar een ouder virtuele schijf wilt openen, opent u de ouder virtuele schijf in de alleen-lezen modus. Dit komt doordat wijzigingen aanbrengen op de ouder virtuele schijf snapshots of gekoppelde klonen kunnen beschadigen die zijn gemaakt van een ouder virtuele machine met de ouder virtuele schijf. De alleen-lezen modus voorkomt dat u gegevens schrijft op een virtuele schijf nadat de schijf aan het host-OS is gekoppeld. U kunt VMDK virtuele schijfbestanden koppelen als een VM die deze virtuele schijf gebruikt is uitgeschakeld, of als een specifieke VM deze virtuele schijf niet gebruikt.

Laten we eens kijken hoe we een VMDK virtuele schijf van de VMware Workstation VM kunnen monteren die snapshots heeft. Er is Windows geïnstalleerd op één NTFS-partitie op een virtuele schijf van de VM. Na het nemen van de eerste snapshot wordt het bestand Snapshot1.txt aangemaakt in de hoofdmap van schijf C: en, op dezelfde manier, na het nemen van de tweede snapshot wordt het bestand Snapshot2.txt daar gemaakt. Het eerste voorbeeld is voor Linux, en het tweede voorbeeld is voor Windows. Virtuele schijfbestanden van de oude Windows XP VM worden in dit voorbeeld gebruikt.

Voorbeeld 1: Het monteren van VMDK op de Linux-host

  1. Open VMware Workstation voor Linux en ga naar Bestand > Virtuele schijven koppelen.

  2. Klik op Schijf koppelen, en er opent een pop-upvenster. Klik op Bladeren en selecteer het virtuele schijfbestand VMDK.

  3. Laten we het VMDK-bestand van de tweede differentiële virtuele schijf selecteren die is gemaakt na het nemen van de tweede VM-snapshot. De naam van dit bestand verschijnt als VM_name-000002.vmdk in dergelijke gevallen (WinXP-test-000002.vmdk wordt in dit voorbeeld gebruikt).

  4. Maak de directory aan op uw Linux-bestandssysteem voor het mounten van een virtuele schijf van het VMDK-formaat naar die directory. Laten we de /mnt/vmdk/ directory aanmaken in de Linux-console.

    mkdir /mnt/vmdk/

  5. Stel machtigingen in voor uw gebruiker (gebruikersnaam is user1 en is lid van group1 in dit voorbeeld):

    chown -R user1:group1 /mnt/vmdk/

    chmod -R 0775 /mnt/vmdk/

  6. Selecteer nu de directory die u heeft aangemaakt als de doeldirectory, controleer het selectievakje “Mount in alleen-lezen modus” en klik op Mount.

  7. Nu kunt u de map /mnt/vmdk/ openen in uw Linux-bestandsverkenner en bestanden en mappen bekijken die zich op de VMDK-virtuele schijf bevinden. U kunt de bestanden Snapshot1.txt en Snapshot2.txt zien, die zijn gemaakt nadat de eerste en tweede snapshots in dit voorbeeld zijn gemaakt. Elk van deze twee bestanden bevindt zich op een afzonderlijke delta VMDK-virtuele schijf.

  8. Vergeet niet om de VMDK-virtuele schijf van de directory (aankoppelingspunt) op uw host-Linuxsysteem te ontkoppelen wanneer u klaar bent met de bewerkingen met de inhoud van de virtuele schijf.

Als u de console-interface verkiest, kunt u VMDK-schijfafbeeldingen op de Linux-host in de console monteren met dit commando:

vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk

Waar:

vm_name de naam is van de virtuele machine die hetzelfde is als de VM-mapnaam in dit geval. WinXP-test is de VM-naam in ons voorbeeld.

vm_disk_name is de naam van de virtuele schijf (WinXP-test.vmdk wordt in dit voorbeeld gebruikt).

vm_disk_name-000001.vmdk is de naam van het eerste delta (verschil) schijf gemaakt na het nemen van de eerste VM snapshot (WinXP-test-000001.vmdk in dit geval).

vm_disk_name-000002.vmdk is de naam van de tweede delta schijf gemaakt na het nemen van de tweede VM snapshot respectievelijk (WinXP-test-000002.vmdk in dit geval).

  1. Monteer de virtuele schijf. Standaard wordt de virtuele schijf in lezen/schrijven modus gemonteerd. U kunt de -r toets gebruiken op de commandoregel om een schijf in alleen-lezen modus te monteren.

    vmware-mount /media/user1/vms/vm_name/vm_disk_name-000002.vmdk /mnt/vmdk

  2. Toon alle gemonteerde VMDK virtuele schijven:

    vmware-mount -L

  3. Voordat u klaar bent met werken met gemonteerde VMDK virtuele schijven, demonteer alle virtuele schijven:

    vmware-mount -x

Voorbeeld 2: Hoe VMDK op het Windows-hostbesturingssysteem te monteren

Het idee van hoe VMDK-bestanden in Windows te monteren is vergelijkbaar. Naast de Bestand > Kaart Virtuele Schijven optie in de grafische gebruikersinterface (GUI) van VMware Workstation, kunt u de onderstaande stappen volgen. Laten we het VMDK-bestand van de eerste differentiële virtuele schijf monteren die is gemaakt na het nemen van de eerste VM-snapshot. De naam van dit VMDK-bestand heeft het volgende formaat: VM_naam-000001.vmdk (WinXP-test-000001.vmdk wordt geopend in deze tutorial).

  1. Klik met de rechtermuisknop op het VMDK-bestand in Windows Verkenner en klik op Koppel virtuele schijf.

  2. Selecteer de parameters om een VMDK-bestand te koppelen. Het wordt aanbevolen om het VMDK-bestand te openen in alleen-lezen modus om eventuele schade aan virtuele schijven die toebehoren aan de snapshotketen na het schrijven van gegevens te voorkomen. De standaard stationsletter is Z: in dit geval, en het station wordt automatisch geopend in Windows Verkenner na het koppelen als het juiste selectievakje is aangevinkt. Klik op OK om door te gaan.

  3. Nu is de virtuele schijf gekoppeld als schijf Z: in Windows, en je kunt de inhoud van het vmdk-bestand lezen. Op de onderstaande schermafbeelding zie je het bestand Snapshot1.txt dat is gemaakt na het nemen van de eerste snapshot. Het bestand Snapshot2.txt ontbreekt omdat het is gemaakt na het nemen van de tweede VM-snapshot, en we hebben een delta-virtuele schijf geopend die gerelateerd is aan de eerste VM-snapshot.

  4. Wanneer u klaar bent met het werken met de gekoppelde VMDK virtuele schijf, vergeet dan niet de schijf los te koppelen. Klik met de rechtermuisknop op het juiste VMDK-bestand en klik vervolgens op Virtual Disk ontkoppelen. Nadat u de virtuele schijf hebt ontkoppeld, kunt u de VM inschakelen die deze virtuele schijf gebruikt.

Methode 2: Gebruik van 7-zip om inhoud uit VMDK-bestanden te extraheren

Als u wilt weten hoe u VMDK-bestanden kunt openen zonder virtuele machines uit te voeren, kunt u 7-zip installeren en inhoud extraheren uit virtuele schijfafbeeldingen. 7-zip is een gratis hulpmiddel bedoeld voor het archiveren van bestanden en het uitpakken van bestanden uit archieven en andere afbeeldingen. U kunt 7-zip gebruiken als een vmdk-extractor. Dit hulpprogramma kan worden gebruikt op Linux- en Windows-machines.

7-zip kan vmdk en –flat.vmdk-bestanden openen (dit hulpprogramma kan een enkel –flat.vmdk-bestand openen als het descriptor vmdk-bestand ontbreekt) – 7-zip is eigenlijk voor virtuele schijven van het ESXi-formaat. 7-zip kan geen delta VMDK-bestanden openen die zijn gemaakt na het nemen van VM-snapshots.

Hoe een VMDK-bestand te openenmet 7-zip op Linux

  1. Installeer een volledig pakket 7-zip op uw Linux-machine. Ubuntu wordt in dit voorbeeld gebruikt.

    apt-get install p7zip-full

  2. Controleer de inhoud van het vmdk-bestand met 7-zip:

    7z l vm_naam.vmdk

  3. Laten we de bestanden vinden die “boot” in hun namen bevatten, bijvoorbeeld:

    7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]

    Waar user1 de naam is van onze Linux-gebruiker, l – lijst.

  4. Laten we (e) het bestand boot.ini uit het VMDK-image extraheren:

    7z e /media/user1/vms/WinXP-test/WinXP-test.vmdk boot.ini

    U kunt op dezelfde manier andere bestanden en mappen uit het VMDK-bestand extraheren.

Hoe VMDK-bestanden te openen met 7-zip op Windows

  1. Download de compatibele versie van 7-zip van de officiële website en installeer de applicatie op uw Windows-machine. Gebruik de EXE-installatieprogramma voor meer gemak.
  2. Na het installeren van 7-zip op Windows worden er nieuwe 7-zip opties toegevoegd aan het contextmenu wanneer je met de rechtermuisknop op een bestand of map klikt in Windows Verkenner (zie de screenshot hieronder). Gebruik deze opties om het VMDK-bestand als archief te openen of bestanden nu uit te pakken.

  3. In de onderstaande screenshot wordt de inhoud van het zelfstandige bestand Win-test2-flat.vmdk weergegeven in de GUI van 7-zip die wordt gebruikt in Windows. Je kunt de inhoud van het VMDK-bestand extraheren die je nodig hebt.

Hoe VMDK-bestanden te koppelen in Linux (Andere Methoden)

Een van de krachtigste mogelijkheden van Linux is het vermogen om het grootste aantal bewerkingen uit te voeren in de console, zelfs met ingebouwde tools. Deze tools zullen je helpen VMDK-bestanden te koppelen en toegang te krijgen tot de inhoud die is opgeslagen op virtuele schijven. Ubuntu Linux wordt gebruikt in de verstrekte voorbeelden.

Methode 1: Hoe VMDK-bestanden te koppelen met behulp van /dev/loop

Lusapparaten zijn pseudo-apparaten in Linux, die bestanden toegankelijk maken als blokapparaten en kunnen worden gebruikt om schijfafbeeldingen te koppelen die bestandssystemen bevatten. Lusapparaten worden genoemd als /dev/loopX waarbij X het nummer van het lusapparaat is. Deze methode is goed voor het koppelen van –flat.vmdk bestanden, zelfs zonder een virtuele schijfdescriptor.

Laten we verkennen hoe we een VMDK-bestand in Linux kunnen koppelen om toegang te krijgen tot de bestanden van de virtuele schijf als voorbeeld. Er is een virtuele schijf van het ESXi-formaat die één partitie bevat – het descriptorbestand ontbreekt. Een lange tijd geleden was Windows XP geïnstalleerd op die virtuele schijf.

  1. Gebruik een van de twee opdrachten om het aantal bestaande lusapparaten op uw Linux-systeem te controleren.

    fdisk -l | grep /dev/loop

    df -h | grep /dev/loop

  2. In ons geval bestaan apparaten met nummers 1 tot 21 al (/dev/loop1/dev/loop21). Laten we dus het lusapparaat nummer 30 aanmaken – dit nummer is vrij. We zullen dit apparaat associëren met het –flat.vmdk bestand.

    losetup /dev/loop30 /vms/Win-test2-flat.vmdk

  3. losetup -o 32256 /dev/loop31 /dev/loop30

    Waar 32256 de offset is die 63*512 is voor een schijf geformatteerd in Windows XP/Server 2003 en oudere Windows-versies (63 is het nummer van de eerste sector van de partitie, en 512 bytes is de sectorsize). Voor Windows 7/Server 2008 en nieuwere Windows-versies, probeer de offset 105906176.

    U kunt informatie ophalen over de sectorsize en de eerste sector die wordt gebruikt voor het opstarten met het commando:

    fdisk -l /dev/loop30 /vms/Win-test2-flat.vmdk

    Als alternatief, voor virtuele schijven die meerdere partities bevatten, kunt u parted gebruiken om het begin en het einde van elke partitie te bepalen:

    parted /dev/loop30

    In de parted-console voert u de volgende commando’s in:

    unit

    B

    print

  4. Maak een directory aan die als mountpunt voor het VMDK-image zal worden gebruikt:

    mkdir /mnt/vmdk-image

  5. Koppel het loopback-apparaat dat is gekoppeld aan het VMDK-image aan de gemaakte directory:

    mount /dev/loop31 /mnt/vmdk-image

  6. Lijst de inhoud van het gemonteerde image op:

    ls -al /mnt/vmdk-image

  7. Na het werken met de inhoud van de virtuele schijf, koppel het vmdk-image af en verbreek het loopapparaat:

    umount /mnt/vmdk-image

    losetup -d /dev/loop31

Methode 2: Hoe VMDK-bestanden te koppelen met kpartx

Kpartx is een tool waarmee partities binnen imagebestanden aan de mappen van uw echte Linux-bestandssysteem kunnen worden gekoppeld. Deze tool kan worden gebruikt om apparaattoewijzingen in te stellen voor partities van blokapparaten. Deze methode werkt ook voor het koppelen van –flat.vmdk-afbeeldingen die worden gebruikt op ESXi-servers. Laten we eens kijken hoe het –flat.vmdk-bestand uit het vorige voorbeeld kan worden gekoppeld.

  1. Installeer kpartx:

    apt-get install kpartx

  2. Voeg de partitiemapping toe voor het VMDK-image in de uitgebreide bedrijfsmodus:

    kpartx -av /vms/Win-test2-flat.vmdk

  3. Monteer een partitie naar de /mnt/vmdk-image map die eerder is voorbereid:

    mount /dev/mapper/loop30p1 /mnt/vmdk-image/

    Waar loop30 het nummer van het lusapparaat is, en p1 het nummer van de partitie binnen het image is (de eerste partitie op het schijfimage).

  4. Lijst de inhoud op van de virtuele schijfpartitie die je hebt gemonteerd:

    ls -al /mnt/vmdk-image/

  5. Wanneer je klaar bent met de bewerkingen met de bestanden van het VMDK-image, demonteer je het VMDK virtuele schijfimage:

    umount /mnt/vmdk-image

    kpartx -d /vms/Win-test2-flat.vmdk

Conclusie

Het kennen van meerdere methoden om VMDK-inhoud te extraheren geeft je flexibiliteit en betrouwbaarheid omdat elke methode de beste optie kan zijn in bepaalde situaties. Bovendien is het nog beter om back-ups te hebben van je virtuele machines naast die kennis.

NAKIVO Backup & Replication kan op de beste manier VM’s back-uppen en herstellen die draaien in VMware vSphere. U kunt de volledige VM, de specifieke virtuele schijf of afzonderlijke bestanden van de back-up naar een aangepaste locatie herstellen.

Source:
https://www.nakivo.com/blog/extract-content-vmdk-files-step-step-guide/