Wie man VMDK-Dateien in VMware öffnet und Daten extrahiert

Das Verständnis dafür, wie man VMDK-Dateien öffnet und den Inhalt von VMDK-Dateien extrahiert, ist nützlich, wenn Sie auf ein Problem mit einer virtuellen Maschine stoßen. Sie können feststellen, dass VMs nach Problemen mit der Installation von Anwendungen, Betriebssystemupdates, Malware-Angriffen, versehentlichem Löschen von Daten usw. nicht gestartet werden können. Wenn dies geschieht, verlieren Sie den Zugriff auf die virtuelle Festplatte der VM.

Glücklicherweise können Sie VMDK-Dateien mit WinZip, Linux Reader oder VMware Workstation Player öffnen. Lesen Sie weiter, um mehr über die Methoden zur Wiederherstellung des Inhalts von VMDK-Virtualdiskdateien zu erfahren. Beachten Sie, dass diese Methoden nur anwendbar sind, wenn die virtuelle Festplatte nicht verschlüsselt oder beschädigt ist.

Was ist eine VMDK-Datei?

VMDK ist ein Dateiformat für virtuelle Maschinenfestplatten, das das von VMware entwickelte offene Format ist. Dieses virtuelle Festplattenformat hat die Erweiterung .vmdk für Dateien und wird von VMware und VirtualBox virtuellen Maschinen verwendet. Allerdings verwenden virtuelle Maschinen, die auf ESXi-Servern gehostet werden, ein leicht unterschiedliches Format von vmdk virtuellen Festplatten. Auf dem ESXi-Datenspeicher sind der virtuelle Festplatten-Deskriptor und der virtuelle Festplattenbereich, der die Rohdaten der virtuellen Festplatte enthält, zwei separate Dateien.

Das Muster des virtuellen Festplatten-Deskriptornamens lautet diskname.vmdk und das Muster des virtuellen Festplatten-Extentnamens, der alle Rohdaten enthält, lautet diskname-flat.vmdk. Was virtuelle Festplatten im Format von VMware Workstation betrifft, so werden sie als einzelne diskname.vmdk-Datei dargestellt (monolithisch spärlich), die eine Extent-Daten-Datei ist, die einen eingebetteten virtuellen Festplattendeskriptor enthält. Ein virtueller Festplattendeskriptor definiert die Struktur der virtuellen Festplatte, die virtuelle Festplattengeometrie, die virtuelle Hardwareversion und IDs.

Datei des virtuellen Festplattendeskriptors

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.

Wie Sie sehen können, werden die eingebetteten Festplattendeskriptordaten von der Adresse 0x200, also der Nummer des ersten Bytes, in die monolithische vmdk-Datei im Workstation-Format geschrieben. Wenn Sie den HEX-Wert 200 in ein binäres und dezimales Format umwandeln, erhalten Sie:

200 HEX = 1000000000 Binär = 512 Dezimal

Dies bedeutet, dass Sie, wenn Sie den eingebetteten Deskriptor aus der vmdk-Datei extrahieren möchten, einen Teil der Daten ab dem 512. Byte extrahieren sollten. Weitere Informationen zu VMware-Virtuellen-Festplatten-Deskriptordateien und Anleitungen zum Extrahieren, Bearbeiten und Importieren eines eingebetteten virtuellen Festplattendeskriptors finden Sie im Blogbeitrag zum Konvertieren von VMware-VMs in Hyper-V-VMs.

Datei der virtuellen Festplattendaten

Im folgenden Screenshot sind zwei virtuelle Festplattendateien in einem HEX-Editor geöffnet. Auf beiden virtuellen Festplatten ist dasselbe Betriebssystem installiert (die erste Partition wurde mit einem integrierten Windows-Festplatten-Dienstprogramm erstellt und formatiert). Auf der linken Seite des Screenshots ist eine –flat.vmdk-Datei (ESXi-Format) dargestellt. Die Rohdaten werden von 0x00000000 auf diese virtuelle Festplatte –flat.vmdk-Datei geschrieben. Auf der rechten Seite des Screenshots wird die virtuelle Festplatte im Workstation-Format angezeigt, und die gleichen Daten werden ab 0x00150000 (Byte-Nummer 5376) geschrieben, was nicht der Anfang der vmdk-Datei ist.

Nachdem Sie sich mit der Theorie vertraut gemacht haben, ist es an der Zeit für den praktischen Teil. Bevor Sie fortfahren, wird empfohlen, Ihre Daten zu sichern, um mögliche Schäden an der virtuellen Festplatte zu vermeiden. Führen Sie Operationen mit Ihren Festplatten auf eigene Verantwortung und Gefahr durch.

2 Methoden zum Öffnen von VMDK-Dateien durch Einschalten einer VM

Um VMDK-Dateien durch Einschalten vorhandener VMs zu öffnen, benötigen Sie einen Hypervisor wie VMware ESXi, VMware Workstation, VMware Player oder Oracle VirtualBox auf Ihrem physischen Computer. Sie können die traditionelle Methode wählen, indem Sie eine Live-DVD verwenden oder die VMDK-Datei als virtuelle Festplatte einbinden.

Methode 1: Verwendung einer Live-DVD, auch wenn das Betriebssystem auf der VM nicht funktioniert

Die Idee hinter dieser Methode ist, dass Sie eine VM haben und von einer DVD booten können. Das ISO-Disk-Image kann als DVD-Diskette verwendet werden, die in das virtuelle DVD-Laufwerk der VM eingelegt wird. Nach dem Booten des Betriebssystems von einem DVD-Medium können Sie die Partitionen Ihrer virtuellen Festplatte einhängen und Dateien von der virtuellen Festplatte auf eine USB-Festplatte kopieren, die an die VM oder Ihren Host-Computer angeschlossen ist, oder auf einen beliebigen anderen Computer über das Netzwerk. Einige Live-DVD-Distributionen mounten Festplatten (Partitionen) automatisch.

Dies ist eine veraltete Methode, weil das Prinzip ähnlich ist wie das Kopieren von Dateien von physischen Disks physischer Computer, wenn das installierte Betriebssystem nicht booten kann. Diese Methode kann verwendet werden, um Daten von VMDK-Disks von VMs, die auf VMware ESXi und VMware Player/Workstation laufen, zu extrahieren.

Beachten Sie, dass das Betriebssystem, das von der Live-DVD gebootet wird, die Dateisysteme der Partitionen Ihrer virtuellen Festplatte erkennen muss, von denen Sie auf die Dateien zugreifen möchten. Zum Beispiel kann Windows standardmäßig nicht mit Linux-Dateisystemen wie EXT3, EXT4, ReiserFS usw. arbeiten. Die Verwendung zusätzlicher Tools unter Windows kann jedoch helfen, dieses Problem zu lösen. Im Gegenzug erkennt modernes Linux Windows-Dateisysteme wie NTFS und FAT32, und deshalb können Sie Linux-basierte Live-DVDs verwenden, um Dateien zu kopieren, die auf virtuellen Festplatten gespeichert sind, die von Ihrer Windows-VM verwendet werden, die nicht booten kann.

Beispiel: Öffnen von VMDK-Dateien auf ESXi

Betrachten wir ein Beispiel für die Anwendung dieser Methode: Sie haben eine VM mit Windows Server 2016 auf einem ESXi-Host, und das Betriebssystem auf der VM kann nicht booten, aber Sie müssen die auf der VMDK-Virtualfestplatte aufgezeichneten Dateien erhalten. Auf der virtuellen Festplatte befinden sich zwei NTFS-Partitionen: die Boot-Systempartition und die Festplatte C. Das offizielle Ubuntu 18-Installations-ISO-Image wird in diesem Beispiel verwendet. Das Ubuntu-Installationsmedium kann als Live-DVD verwendet werden.

HINWEIS: Der Workflow für neuere Versionen der in diesem Blogbeitrag behandelten Produkte ist gleich. Sie können VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04 usw. verwenden und das im Artikel erklärte Arbeitsprinzip anwenden.

  1. Laden Sie das ISO-Image in den Datenspeicher hoch, der für den ESXi-Host zugänglich ist, auf dem sich die VM befindet.
  2. Öffnen Sie den VMware vSphere Client, gehen Sie zu Hosts und Clusters, wählen Sie Ihre VM aus und klicken Sie auf Einstellungen bearbeiten.

  3. Im VM-Einstellungen-Fenster gehen Sie zu den Optionen für das CD/DVD-Laufwerk. Wählen Sie die Option Datastore ISO-Datei aus, wenn Sie die erforderliche ISO-Datei auf dem vom ESXi-Host zugänglichen Datastore haben. Klicken Sie dann für die Option CD/DVD-Medien auf Durchsuchen und wählen Sie die entsprechende ISO-Datei auf dem Datastore aus. In diesem Fall ist der Dateiname ubuntu-18.04.1-desktop-amd64.iso.

  4. Starten Sie die VM, booten Sie vom ISO-Image und wählen Sie Ubuntu testen, ohne zu installieren. Sobald Ubuntu von den Live-DVD-Medien gebootet hat, öffnen Sie die Konsole (Terminal).
  5. Erhalten Sie die Root-Berechtigungen:

    sudo -i

  6. Listen Sie verfügbare Festplattenlaufwerke auf:

    ls -al /dev/sd*

    Es gibt zwei Partitionen – /dev/sda1 und /dev/sda2

  7. Erstellen Sie Verzeichnisse, die als Mountpunkte für jede Partition verwendet werden sollen:

    mkdir /mnt/win-disk1

    mkdir /mnt/win-disk2

  8. Montieren Sie die Partitionen der virtuellen Festplatte in die entsprechenden Verzeichnisse:

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

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

  9. Dann listen Sie Dateien und Verzeichnisse der eingehängten Partitionen auf:

    ls -al /mnt/win-disk2/

    ls -al /mnt/win-disk1/

    Wie Sie im obigen Screenshot sehen können, ist die Partition, die nach /mnt/win-disk2 eingehängt ist, die Partition, die als Laufwerk C: in Windows verwendet wird.

  10. Sie können jetzt eine USB-Festplatte (HDD) am USB-Anschluss Ihres ESXi-Hosts anschließen und diese HDD mit der USB-Weiterleitungsfunktion mit der virtuellen Maschine verbinden. Auf diese Weise können Sie die erforderlichen Dateien, die auf der VMDK-Datei gespeichert sind, die als virtuelle Festplatte von der virtuellen Maschine verwendet wird, kopieren. Ein weiterer Weg ist die Verwendung eines SMB (CIFS)-Shares und das Kopieren des Inhalts der virtuellen Festplatte (d. h. der VMDK-Datei) an einen anderen Ort über das Netzwerk.

    In diesem Beispiel erklären wir das Kopieren von Daten auf einen SMB-Share. Der SMB-Share wurde auf dem Host erstellt, dessen IP-Adresse 192.168.17.125 ist, der Freigabename ist \\192.168.17.125\share, und user10 hat Schreibberechtigungen für diesen Share. Vergessen Sie nicht, dass Linux im Gegensatz zu Windows den rechten Schrägstrich verwendet, wenn Sie sich mit dem Share verbinden.

    Lassen Sie uns den SMB (CIFS)-Share auf Linux laden, der von der Live-DVD gestartet wurde. Erstellen Sie zunächst ein Verzeichnis, das als Mount-Punkt verwendet werden soll.

    mkdir /mnt/smb-share

  11. Dann mounten Sie den SMB (CIFS)-Share auf dieses Verzeichnis:

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

  12. Geben Sie das Passwort des Benutzers ein.
  13. Jetzt ist Ihr Linux-System mit dem SMB-Share verbunden, und Sie können die Inhalte, die innerhalb der VMDK-Datei gespeichert sind, über das Netzwerk auf das SMB-Share kopieren.

    Gehen Sie zum Verzeichnis, in das das SMB-Share eingebunden ist, und kopieren Sie die Datei bootmgr von der eingebundenen Partition der virtuellen Festplatte (die VMDK-Datei auf dem ESXi-Datenspeicher) in das aktuelle Verzeichnis (SMB-Share).

    cd /mnt/smb-share

    cp /mnt/win-disk-2/bootmgr

  14. Dann stellen Sie sicher, dass die erforderlichen Dateien kopiert wurden, und überprüfen Sie den Inhalt Ihres SMB-Shares.

    ls -al /mnt/smb-share

    Wie Sie auf dem obigen Screenshot sehen können, wurde die bootmgr-Datei in diesem Beispiel erfolgreich kopiert. Jetzt kennen Sie die erste Methode zum Kopieren des Inhalts der VMDK-Datei an einen anderen Speicherort, wenn ein Betriebssystem, das in einer VM installiert ist, nicht booten kann. Die Logik, diese Methode in VMware Player oder VMware Workstation zu verwenden, ist dieselbe.

Methode 2: Ein VMDK-Datei als virtuelles Laufwerk an eine gesunde VM anhängen (ESXi/Workstation/Player)

Diese Methode ist ähnlich wie die vorherige, aber in diesem Fall sollte das VMDK-Virtual-Laufwerk an eine vorhandene virtuelle Maschine angehängt werden, die ein funktionierendes Betriebssystem hat. Sie können eine VMDK-Datei als zusätzliches virtuelles Laufwerk an eine vorhandene VM anhängen, die auf einem ESXi-Host, VMware Workstation und VMware Player läuft.

Wenn Sie eine VMDK-Datei der ESXi-VM auf VMware Workstation oder Player öffnen möchten, sollten Sie sowohl die virtuelle Festplatte als auch ihren Descriptor (vmdk- und flat.vmdk-Dateien) auf eine physische Festplatte kopieren, die für Ihren Computer zugänglich ist, auf dem VMware Workstation oder Player installiert ist. Wenn für die VM Snapshots erstellt wurden und danach Änderungen an den VM-Festplatten vorgenommen wurden, vergessen Sie nicht, die VMDK-Dateien der Delta (Differencing) virtuellen Festplatten zusätzlich zu den Eltern-VMDK-Dateien zu kopieren.

Betrachten wir zwei Beispiele:

Beispiel 1: Wie man eine VMDK-Virtuelle Festplatte einer VM öffnet, indem man eine andere VM auf einem ESXi-Host verwendet (beide sind auf einem ESXi-Host registriert)

Beispiel 2: Wie man Inhalte aus einer VMDK-Virtuellen Festplatte einer ESXi-VM extrahiert, indem man die Virtuelle Festplatte an eine VM im VMware Workstation-Format anhängt

Beachten Sie, dass das funktionierende Betriebssystem auf der ersten (gesunden) VM mit den Dateisystemen kompatibel sein muss, die auf der Virtuellen Festplatte der zweiten VM verwendet werden, die ein nicht bootfähiges Betriebssystem hat (eine VM, deren VMDK-Datei Sie als zusätzliche Virtuelle Festplatte anhängen möchten, um Dateien zu extrahieren).

Beispiel 1: Einbinden einer Virtuellen Festplatte in eine auf ESXi laufende VM

  1. Fahren Sie die VM herunter, die eine Virtuelle Festplatte verwendet, aus der Sie Dateien extrahieren möchten.
  2. Finden Sie diese Virtuelle Festplatte im ESXi-Datenspeicher.
  3. Kopieren Sie die virtuelle Festplatte in ein anderes Verzeichnis auf demselben Datenspeicher oder auf einem anderen Datenspeicher, um einen Fehler durch die Sperrung der virtuellen Festplatte zu verhindern. In unserem Beispiel zeigen wir, wie Sie eine VMDK-Datei öffnen, deren Name Win-test2.vmdk ist (dies ist eine virtuelle Festplatte der Windows-Virtualmaschine Win-test2 in unserem Fall). Der ESXi-Host wird von vCenter verwaltet. Wenn Sie einen eigenständigen ESXi-Host ohne vCenter verwenden, können Sie die in diesem Beispiel erklärte Logik verwenden – die Unterschiede liegen nur in der Benutzeroberfläche.
  4. Öffnen Sie den VMware vSphere Client, gehen Sie zu Speicher und wählen Sie den Datenspeicher aus, auf dem sich die erforderliche VMDK-Datei befindet. Wählen Sie die VMDK-Datei aus und klicken Sie auf Kopieren in.

    HINWEIS: Wenn Sie einen eigenständigen ESXi-Host haben und kein vCenter haben, öffnen Sie den VMware Host Client, indem Sie die IP-Adresse Ihres ESXi-Hosts im Webbrowser eingeben, dann gehen Sie zu Speicher > [Ihr Datenspeichername] > Datenspeicherbrowser, wählen Sie Ihre VMDK-Datei aus und klicken Sie auf Kopieren. Wählen Sie das Ziel aus und klicken Sie auf die Schaltfläche Kopieren, um zu bestätigen. Denken Sie daran, dass virtuelle Festplatten in der Webbenutzeroberfläche von VMware vSphere Client und VMware Host Client als VMDK-Dateien angezeigt werden, aber eine virtuelle Festplatte aus den –flat.vmdk– und vmdk-Dateien besteht (eine virtuelle Festplatte und ihr Deskriptor). Sie können auch die ESXi-Konsole direkt auf dem Server öffnen oder sich per SSH verbinden, um die Dateien zu kopieren.

  5. Wählen Sie im geöffneten Fenster das Ziel aus. Sie können die VMDK-Datei an einen beliebigen Ort im selben Datenspeicher oder in einen anderen Datenspeicher kopieren. Lassen Sie uns die VMDK-Datei für diese Demonstration in das Stammverzeichnis des gleichen Datenspeichers kopieren. In diesem Fall werden sowohl die Dateien vmdk als auch –flat.vmdk kopiert.

  6. Jetzt müssen Sie die VMDK-Virtualfestplatte an einen anderen gesunden VM anhängen, dessen Betriebssystem ordnungsgemäß funktioniert. In diesem Beispiel wird eine VM mit Windows Server 2016 auf demselben ESXi-Host verwendet (der VM-Name ist WinServer2016). Eine virtuelle Festplatte kann dieser gesunden VM während des Betriebs angehängt werden. Öffnen Sie im vSphere Client Hosts und Clusters, wählen Sie die gesunde VM aus, klicken Sie mit der rechten Maustaste auf die VM und wählen Sie Einstellungen bearbeiten.

  7. In dem erscheinenden Fenster wählen Sie Neues Gerät hinzufügen und dann Vorhandene Festplatte.

  8. Wählen Sie die Kopie Ihrer zuvor erstellten VMDK-Datei aus. In diesem Beispiel wurde die Kopie von Win-test2.vmdk im Stammverzeichnis des Datenspeichers ausgewählt.

  9. Schalten Sie die gesunde VM ein, an die Sie die gewünschte virtuelle Festplatte angeschlossen haben, falls die VM noch nicht eingeschaltet wurde. Eine virtuelle Festplatte wird während des Betriebs einer laufenden Windows Server 2016-VM hinzugefügt.
  10. Im Gast-Windows-Betriebssystem gehen Sie zu Computerverwaltung > Datenträgerverwaltung (oder führen Sie diskmgmt.msc in der Befehlszeile aus) und finden Sie Ihre virtuelle Festplatte. Standardmäßig ist die neu angehängte Festplatte offline. Klicken Sie mit der rechten Maustaste auf die Festplatte und wählen Sie Online. Ein Laufwerksbuchstabe sollte automatisch für Partitionen auf der hinzugefügten Festplatte zugewiesen werden. Wenn kein Laufwerksbuchstabe für eine Partition zugewiesen wurde, klicken Sie mit der rechten Maustaste auf die Partition und wählen Sie Laufwerksbuchstaben und Pfade ändern.

  11. Jetzt haben Sie vollen (Lese-/Schreib-)Zugriff auf Dateien und Verzeichnisse der VMDK-Virtualisierungsfestplatte. Öffnen Sie einfach die eingehängte Festplatte im Windows-Explorer und kopieren Sie den erforderlichen Inhalt der VMDK-Datei, die an die gesunde VM angeschlossen ist. Sie können auch unnötige Daten von der angehängten VMDK-Virtualisierungsfestplatte löschen (zum Beispiel, wenn es Dateien gibt, die von Viren erstellt wurden), aber seien Sie vorsichtig und beschädigen Sie keine virtuelle Festplatte, wenn es zugehörige Snapshots für die eingehängte VMDK-Festplatte gibt.

Beispiel 2: Einbinden einer virtuellen Festplatte in eine VM, die auf VMware Player oder Workstation ausgeführt wird

Dieses Beispiel ähnelt dem vorherigen, jedoch wird eine VM, die auf VMware Workstation läuft, verwendet, um VMDK-Dateien der ESXi-VM zu öffnen. Diese Methode kann verwendet werden, wenn auf dem ESXi-Datenspeicherplatz kein freier Speicherplatz vorhanden ist, um beispielsweise eine virtuelle Festplatte zu kopieren. Eine virtuelle Festplatte der VM Win-test2, die im vorherigen Beispiel erwähnt wurde, wird in einer VMware Workstation-VM eingebunden, um ihren Inhalt zu extrahieren.

  1. Im VMware vSphere Client gehen Sie zu Speicher > [Name Ihres Datenspeichers] > Dateien, wählen Sie Ihre VMDK-Datei aus und klicken Sie auf Herunterladen.

    Wie Sie sich erinnern, besteht eine virtuelle Festplatte im ESXi-Format aus den Dateien vmdk und -flat.vmdk. Sie müssen beide Dateien auf Ihren Computer herunterladen, auf dem VMware Workstation oder VMware Player installiert ist. Wenn Sie eine virtuelle Festplatte aus dem ESXi-Datenspeicher mit dem VMware HTML5 vSphere Client herunterladen, werden diese beiden Dateien in ein Zip-Archiv verpackt.

    Alternativ können Sie den SSH-Zugriff auf Ihren ESXi-Host aktivieren, zum Datenspeicher-Verzeichnis navigieren und beide virtuelle Festplattendateien manuell auf Ihren Computer kopieren, indem Sie zum Beispiel einen SCP-Client wie WinSCP verwenden.

    HINWEIS: Wenn Sie eine dünn provisionierte virtuelle Festplatte von einem ESXi-Datenspeicher mit dem VMFS-Dateisystem auf Ihren Computer herunterladen, erhalten Sie eine leichtgewichtige vmdk-Datei und eine -flat.vmdk-Datei, deren Größe der maximal bereitgestellten Größe der virtuellen Festplatte entspricht (wie Sie es tun würden, wenn Sie eine dick provisionierte virtuelle Festplatte herunterladen). Dies liegt daran, dass die dünn Bereitstellung als Funktion des VMFS-Dateisystems betrachtet werden kann.

    Jetzt können Sie sehen, dass zwei Dateien der ESXi-formatierten virtuellen Festplatte in einem ZIP-Archiv heruntergeladen wurden. Die Größe der dünn provisionierten virtuellen Festplatte auf dem VMFS-Datenspeicher beträgt jetzt etwa 2 GB (siehe obiges Screenshot), und die Größe derselben Festplatte, die auf einem Workstation-Computer heruntergeladen wurde, beträgt etwa 8 GB (siehe untenstehenden Screenshot).

  2. Entpacken Sie die beiden Dateien aus dem Archiv. Standardmäßig werden die Dateien in das Verzeichnis Win-test2.vmdk extrahiert, dessen Name dem Archivnamen entspricht, jedoch ohne Dateierweiterung.

  3. Für diesen Schritt sollten Sie eine gesunde VM mit einem funktionsfähigen Betriebssystem auf Ihrem Rechner mit VMware Workstation oder Player installiert haben. Während im vorherigen Beispiel die VM mit Windows Server 2016 verwendet wurde, wird in diesem Beispiel eine gesunde VM mit Windows Server 2008 verwendet.

    Öffnen Sie VMware Workstation oder VMware Player, wählen Sie Ihre gesunde VM aus und bearbeiten Sie die virtuellen Maschineneinstellungen.

  4. Im Hardware-Tab klicken Sie auf die Schaltfläche Hinzufügen.

  5. Im Hinzufügen des Hardware-Assistenten, wählen Sie Festplatte als Hardwaretyp aus. Wählen Sie dann einen Festplattentyp aus (Sie können den empfohlenen Wert beibehalten). Auf dem Wählen Sie eine Festplatte aus-Bildschirm wählen Sie die Option Verwenden Sie eine vorhandene virtuelle Festplatte.

  6. Wählen Sie die Datei vmdk (nicht – flat.vmdk), die Sie aus dem ZIP-Archiv extrahiert haben. Sie können die Datei durchsuchen oder den gesamten Pfad zur Datei manuell eingeben.

    In diesem Beispiel werden ESXi 6.5 und VMware Workstation 15 verwendet. Die VMware Workstation-VM, die in unserem Beispiel Windows Server 2008 ausführt, hat die Hardwareversion Workstation 12 (VM-Version 12). Die ESXi-VM, an deren virtueller Festplatte wir uns anhängen möchten, hat die VM-Version 7.

  7. Wir erhalten eine Fehlermeldung in VMware Workstation, die besagt, dass die von dem ESXi-Host kopierte virtuelle Festplatte nicht mit dieser virtuellen Maschine kompatibel ist:

    Dieser Fehler kann behoben werden, indem die Datei mit der Festplattenbeschreibung bearbeitet wird (die leichtgewichtige vmdk-Datei im Falle virtueller Festplatten von ESXi-VMs). Öffnen Sie Ihre VMDK-Datei im Texteditor und ändern Sie die Nummer im String Ddb.virtualHWVersion. In unserem Fall wird 13 auf 12 geändert.

    HINWEIS: Beachten Sie, dass für virtuelle Festplatten von VMware Workstation-VMs eine virtuelle Festplattenbeschreibung in der virtuellen Festplatten-VMDK-Datei erstellt wird (es gibt keine separate Beschreibungsdatei wie für virtuelle Festplatten von ESXi-VMs).

    Nachdem die Datei bearbeitet wurde, wird die virtuelle Festplatte erfolgreich zu der vorhandenen VM hinzugefügt.

  8. Schalten Sie die VM ein, wenn sie noch nicht eingeschaltet ist.
  9. Öffnen Sie Die Datenträgerverwaltung in Windows, ändern Sie den Status Ihrer virtuellen Festplatte auf „Online“, weisen Sie einem Laufwerksbuchstaben eine Partition zu und durchsuchen Sie die Dateien.

Wie Sie Daten aus einer VMDK-Datei extrahieren, ohne eine VM zu starten

Die Methoden, die keine Konfiguration und Aktivierung einer virtuellen Maschine erfordern, haben ihre eigenen Vorteile. Einige dieser Methoden erfordern keine Installation eines Hypervisors. Sie können VMDK-Dateien direkt auf Ihrem Host-Betriebssystem in kurzer Zeit einbinden.

Methode 1: Einbinden von VMDK-Dateien in einem Host-Betriebssystem mit VMware Workstation

Diese Methode erfordert eine Installation von VMware Workstation auf einem Windows- oder Linux-Betriebssystem, das auf Ihrem physischen Computer läuft. VMware Workstation bietet eine praktische Funktion, mit der Sie VMDK-Dateien in Ihrem Host-Betriebssystem einbinden können. Virtuelle Festplatten im ESXi-Format sowie Delta-Festplatten, die mit VM-Snapshots verbunden sind, werden unterstützt. Ähnlich wie bei allen zuvor in diesem Blogbeitrag behandelten Methoden muss Ihr Betriebssystem die Dateisysteme virtueller Festplattenpartitionen unterstützen.

Wenn Sie Snapshots Ihrer virtuellen Maschine haben, werden die Delta-Virtualdisks nach Erstellung jedes Snapshots erstellt. Sie sollten eine übergeordnete virtuelle Festplatte und Delta-Disks zur Verfügung haben, wenn Sie den Zustand einer virtuellen Festplatte unmittelbar nach Erstellung eines bestimmten Snapshots öffnen möchten. In diesem Fall sollten Sie die entsprechende Delta-Virtualdisk in Ihrem Host-Betriebssystem einbinden. Abhängigkeiten im Zusammenhang mit der übergeordneten virtuellen Festplatte werden automatisch aufgelöst.

Wenn Sie Snapshots haben, aber eine übergeordnete virtuelle Festplatte öffnen möchten, öffnen Sie die übergeordnete virtuelle Festplatte im schreibgeschützten Modus. Dies liegt daran, dass Änderungen an der übergeordneten virtuellen Festplatte Snapshots oder verknüpfte Klone beschädigen können, die von einer übergeordneten virtuellen Maschine mit der übergeordneten virtuellen Festplatte erstellt wurden. Der schreibgeschützte Modus verhindert das Schreiben von Daten auf eine virtuelle Festplatte, nachdem die Festplatte im Host-Betriebssystem eingebunden wurde. Sie können VMDK-Virtualdisk-Dateien einbinden, wenn eine VM, die diese virtuelle Festplatte verwendet, ausgeschaltet ist, oder wenn eine bestimmte VM diese virtuelle Festplatte nicht verwendet.

Lassen Sie uns sehen, wie Sie eine VMDK-Virtualfestplatte der VMware Workstation-VM einbinden, die Schnappschüsse hat. Auf einer virtuellen Festplatte der VM ist Windows auf einer NTFS-Partition installiert. Nachdem der erste Schnappschuss gemacht wurde, wird die Datei Snapshot1.txt im Stammverzeichnis von Laufwerk C: erstellt, und ähnlich wird nach dem zweiten Schnappschuss die Datei Snapshot2.txt dort erstellt. Das erste Beispiel ist für Linux und das zweite Beispiel ist für Windows. In diesem Beispiel werden die virtuellen Festplattendateien der alten Windows-XP-VM verwendet.

Beispiel 1: Einbinden von VMDK auf dem Linux-Host

  1. Öffnen Sie VMware Workstation für Linux und gehen Sie zu Datei > Virtuelle Festplatten einbinden.

  2. Klicken Sie auf Festplatte einbinden, und es wird ein Popup-Fenster geöffnet. Klicken Sie auf Durchsuchen und wählen Sie die virtuelle Festplattendatei VMDK aus.

  3. Wählen Sie die VMDK-Datei der zweiten differentiellen virtuellen Festplatte aus, die nach der zweiten VM-Snapshot-Erstellung erstellt wurde. Der Name dieser Datei erscheint in solchen Fällen als VM_name-000002.vmdk (WinXP-test-000002.vmdk wird in diesem Beispiel verwendet).

  4. Erstellen Sie das Verzeichnis auf Ihrem Linux-Dateisystem, um eine virtuelle Festplatte im VMDK-Format in dieses Verzeichnis einzubinden. Erstellen Sie das /mnt/vmdk/-Verzeichnis in der Linux-Konsole.

    mkdir /mnt/vmdk/

  5. Setzen Sie Berechtigungen für Ihren Benutzer (Benutzername ist user1 und ist in diesem Beispiel Mitglied von group1):

    chown -R user1:group1 /mnt/vmdk/

    chmod -R 0775 /mnt/vmdk/

  6. Wählen Sie nun das von Ihnen erstellte Verzeichnis als Zielverzeichnis aus, aktivieren Sie das Kontrollkästchen „Im Nur-Lese-Modus einhängen“ und klicken Sie auf Einhängen.

  7. Jetzt können Sie das Verzeichnis /mnt/vmdk/ in Ihrem Linux-Datei-Explorer öffnen und Dateien und Verzeichnisse auf der VMDK-Virtualfestplatte durchsuchen. Sie können die Dateien Snapshot1.txt und Snapshot2.txt sehen, die nach Erstellung des ersten und zweiten Snapshots in diesem Beispiel erstellt wurden. Jede dieser beiden Dateien befindet sich auf einer separaten Delta-VMDK-Virtualfestplatte.

  8. Vergessen Sie nicht, die VMDK-Virtualfestplatte aus dem Verzeichnis (Einhängepunkt) auf Ihrem Host-Linux-System abzuhängen, wenn Sie mit den Operationen am Inhalt der virtuellen Festplatte fertig sind.

Wenn Sie die Konsolenoberfläche bevorzugen, können Sie VMDK-Disk-Images auf dem Linux-Host in der Konsole mit diesem Befehl einhängen:

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

Wo:

vm_name ist der Name der virtuellen Maschine, der im vorliegenden Fall mit dem VM-Verzeichnisnamen übereinstimmt. WinXP-test ist der VM-Name in unserem Beispiel.

vm_disk_name ist der Name der virtuellen Festplatte (WinXP-test.vmdk wird in diesem Beispiel verwendet).

vm_disk_name-000001.vmdk ist der Name der ersten Delta (Differenzierungs-) Festplatte, die nach dem Erstellen des ersten VM-Snapshots (WinXP-test-000001.vmdk in diesem Fall) erstellt wurde.

vm_disk_name-000002.vmdk ist der Name der zweiten Delta-Festplatte, die entsprechend nach dem Erstellen des zweiten VM-Snapshots erstellt wurde (WinXP-test-000002.vmdk in diesem Fall).

  1. Hängen Sie die virtuelle Festplatte ein. Standardmäßig wird die virtuelle Festplatte im Lese-/Schreibmodus eingehängt. Sie können den -r-Schlüssel in der Befehlszeile verwenden, um eine Festplatte im Nur-Lese-Modus einzuhängen.

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

  2. Listen Sie alle eingehängten VMDK-Virtualfestplatten auf:

    vmware-mount -L

  3. Bevor Sie die Arbeit mit eingehängten VMDK-Virtualfestplatten beenden, hängen Sie alle virtuellen Festplatten aus:

    vmware-mount -x

Beispiel 2: Wie man VMDK am Windows-Host einhängt

Die Idee, wie man VMDK-Dateien in Windows einhängt, ist ähnlich. Zusätzlich zur Option Datei > Virtuelle Festplatten zuordnen in der grafischen Benutzeroberfläche (GUI) von VMware Workstation können Sie die folgenden Schritte befolgen. Lassen Sie uns die VMDK-Datei der ersten differentiellen virtuellen Festplatte einhängen, die nach dem Erstellen des ersten VM-Snapshots erstellt wurde. Der Name dieser VMDK-Datei hat das folgende Format: VM_name-000001.vmdk (WinXP-test-000001.vmdk wird in diesem Tutorial geöffnet).

  1. Klicken Sie mit der rechten Maustaste auf die VMDK-Datei im Windows Explorer und klicken Sie auf Virtuelle Festplatte zuordnen.

  2. Wählen Sie die Parameter zum Einhängen einer VMDK-Datei aus. Es wird empfohlen, die VMDK-Datei im Nur-Lese-Modus zu öffnen, um mögliche Schäden an virtuellen Festplatten zu vermeiden, die zur Snapshot-Kette gehören, nachdem Daten geschrieben wurden. Der Standardlaufwerksbuchstabe ist in diesem Fall Z:, und das Laufwerk wird automatisch im Windows Explorer geöffnet, nachdem es zugeordnet wurde, wenn das entsprechende Kontrollkästchen ausgewählt ist. Klicken Sie auf OK, um fortzufahren.

  3. Jetzt ist die virtuelle Festplatte als Laufwerk Z: in Windows eingehängt, und Sie können den Inhalt der vmdk-Datei lesen. Im folgenden Screenshot sehen Sie die Datei Snapshot1.txt, die nach der Erstellung des ersten Snapshots erstellt wurde. Die Datei Snapshot2.txt fehlt, weil sie nach der Erstellung des zweiten VM-Snapshots erstellt wurde und wir eine Delta-Virtualfestplatte im Zusammenhang mit dem ersten VM-Snapshot geöffnet haben.

  4. Wenn Sie mit der zugeordneten VMDK-Virtualfestplatte fertig sind, vergessen Sie nicht, die Festplatte zu trennen. Klicken Sie mit der rechten Maustaste auf die entsprechende VMDK-Datei und klicken Sie dann auf Virtuelle Festplatte trennen . Nach dem Trennen der virtuellen Festplatte können Sie diese VM einschalten, die diese virtuelle Festplatte verwendet.

Methode 2: Verwenden von 7-Zip zum Extrahieren von Inhalten aus VMDK-Dateien

Wenn Sie nach Möglichkeiten suchen, VMDK-Dateien zu öffnen, ohne virtuelle Maschinen auszuführen, können Sie 7-Zip installieren und Inhalte aus virtuellen Festplatten-Images extrahieren. 7-Zip ist ein kostenloses Tool zum Archivieren von Dateien und zum Entpacken von Dateien aus Archiven und anderen Images. Sie können 7-Zip als VMDK-Extraktor verwenden. Dieses Tool kann auf Linux- und Windows-Maschinen verwendet werden.

7-Zip kann VMDK– und –flat.vmdk-Dateien öffnen (dieses Dienstprogramm kann eine einzelne –flat.vmdk-Datei öffnen, wenn die Beschreibungs-VMDK-Datei fehlt) – 7-Zip ist tatsächlich für virtuelle Festplatten im ESXi-Format. 7-Zip kann keine Delta-VMDK-Dateien öffnen, die nach dem Erstellen von VM-Snapshots erstellt wurden.

So öffnen Sie VMDK-Dateien mit 7-Zip unter Linux

  1. Installieren Sie ein vollständiges Paket von 7-Zip auf Ihrer Linux-Maschine. In diesem Beispiel wird Ubuntu verwendet.

    apt-get install p7zip-full

  2. Listen Sie den Inhalt der VMDK-Datei mit 7-Zip auf:

    7z l vm_name.vmdk

  3. Finden wir die Dateien, die „boot“ in ihrem Namen enthalten, zum Beispiel:

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

    Wo user1 der Name unseres Linux-Benutzers ist, l – Liste.

  4. Lassen Sie uns die Datei boot.ini aus dem VMDK-Abbild extrahieren:

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

    Sie können andere Dateien und Verzeichnisse aus der VMDK-Datei auf die gleiche Weise extrahieren.

So öffnen Sie VMDK-Dateien mit 7-Zip unter Windows

  1. Laden Sie die kompatible Version von 7-Zip von der offiziellen Website herunter und installieren Sie die Anwendung auf Ihrem Windows-Rechner. Verwenden Sie den EXE-Installer für mehr Bequemlichkeit.
  2. Nach der Installation von 7-Zip unter Windows werden neue 7-Zip-Optionen dem Kontextmenü hinzugefügt, wenn Sie mit der rechten Maustaste auf eine Datei oder einen Ordner in Windows Explorer klicken (siehe Screenshot unten). Verwenden Sie diese Optionen, um die VMDK-Datei als Archiv zu öffnen oder Dateien jetzt zu extrahieren.

  3. Im untenstehenden Screenshot wird der Inhalt der eigenständigen Win-test2-flat.vmdk-Datei in der GUI von 7-Zip unter Windows angezeigt. Sie können den Inhalt der VMDK extrahieren, den Sie benötigen.

So mounten Sie VMDK-Dateien in Linux (andere Methoden)

Eine der leistungsfähigsten Funktionen von Linux ist die Möglichkeit, die meisten Operationen in der Konsole durchzuführen, auch mit integrierten Tools. Diese Tools helfen Ihnen, VMDK-Dateien zu mounten und auf den Inhalt zuzugreifen, der auf virtuellen Datenträgern gespeichert ist. In den bereitgestellten Beispielen wird Ubuntu Linux verwendet.

Methode 1: So mounten Sie VMDK-Dateien mit /dev/loop

„Loop-Geräte sind Pseudo-Geräte in Linux, die Dateien als Blockgeräte zugänglich machen und zum Einbinden von Datenträgerabbildern verwendet werden können, die Dateisysteme enthalten. Loop-Geräte werden als /dev/loopX benannt, wobei X die Nummer des Loop-Geräts ist. Diese Methode ist gut geeignet zum Einbinden von –flat.vmdk-Dateien, auch ohne virtuellen Datenträger-Deskriptor.

Lassen Sie uns erkunden, wie man eine VMDK-Datei in Linux einbindet, um auf die Dateien des virtuellen Datenträgers als Blockgerät zugreifen zu können. Es gibt ein virtueller Datenträger des ESXi-Formats, der eine Partition enthält – die Deskriptordatei fehlt. Vor langer Zeit wurde Windows XP auf diesem virtuellen Datenträger installiert.

  1. Verwenden Sie eines der beiden Befehle, um die Anzahl der vorhandenen Loop-Geräte auf Ihrem Linux-System zu überprüfen.

    fdisk -l | grep /dev/loop

    df -h | grep /dev/loop

  2. In unserem Fall existieren Geräte mit den Nummern 1 bis 21 (/dev/loop1/dev/loop21). Daher werden wir das Loop-Gerät Nummer 30 erstellen – diese Nummer ist frei. Wir werden dieses Gerät mit der Datei –flat.vmdk verknüpfen.

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

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

    Wo 32256 der Offset ist, der 63*512 für eine Festplatte formatiert unter Windows XP/Server 2003 und älteren Windows-Versionen (63 ist die Nummer des ersten Sektors der Partition, und 512 Bytes ist die Sektorengröße). Für Windows 7/Server 2008 und neuere Windows-Versionen versuchen Sie den Offset 105906176.

    Sie können Informationen über die Sektorengröße und den ersten Sektor, der für den Start des Boots verwendet wird, mit dem Befehl abrufen:

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

    Alternativ können Sie für virtuelle Festplatten mit mehreren Partitionen parted verwenden, um den Start und das Ende jeder Partition zu bestimmen:

    parted /dev/loop30

    In der parted-Konsole geben Sie die folgenden Befehle ein:

    unit

    B

    print

  4. Erstellen Sie ein Verzeichnis, das als Mount-Punkt für das VMDK-Image verwendet werden soll:

    mkdir /mnt/vmdk-image

  5. Mounten Sie das Loopback-Gerät, das mit dem VMDK-Image verbunden ist, auf das erstellte Verzeichnis:

    mount /dev/loop31 /mnt/vmdk-image

  6. Listen Sie den Inhalt des gemounteten Images auf:

    ls -al /mnt/vmdk-image

  7. Nach Abschluss der Arbeit mit dem Inhalt des virtuellen Datenträgers, trennen Sie das vmdk-Abbild und lösen das Loop-Gerät:

    umount /mnt/vmdk-image

    losetup -d /dev/loop31

Methode 2: Wie man VMDK-Dateien mit kpartx einbindet

Kpartx ist ein Tool, das Partitionen innerhalb von Abbilddateien in die Verzeichnisse Ihres realen Linux-Dateisystems einbinden kann. Dieses Tool kann verwendet werden, um Gerätezuordnungen für Partitionen von Blockgeräten einzurichten. Diese Methode funktioniert auch zum Einbinden von –flat.vmdk-Abbildern, die auf ESXi-Servern verwendet werden. Sehen wir uns an, wie man die –flat.vmdk-Datei aus dem vorherigen Beispiel einbindet.

  1. Installieren Sie kpartx:

    apt-get install kpartx

  2. Fügen Sie die Partitionszuordnung für das VMDK-Abbild im ausführlichen Betriebsmodus hinzu:

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

  3. Hängen Sie eine Partition an das Verzeichnis /mnt/vmdk-image an:

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

    Wo loop30 die Nummer des Loop-Geräts ist und p1 die Nummer der Partition innerhalb des Images (die erste Partition auf dem Datenträgerbild) ist.

  4. Listen Sie den Inhalt der virtuellen Datenträgerpartition auf, die Sie eingehängt haben:

    ls -al /mnt/vmdk-image/

  5. Wenn Sie die Dateien des VMDK-Images bearbeitet haben, hängen Sie das VMDK-Virtualisierungsbild ab:

    umount /mnt/vmdk-image

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

Fazit

Die Kenntnis mehrerer Methoden zum Extrahieren von VMDK-Inhalten bietet Ihnen Flexibilität und Zuverlässigkeit, da jede Methode in bestimmten Situationen die beste Option sein kann. Darüber hinaus ist es sogar noch besser, Sicherungskopien Ihrer VMs zusätzlich zu diesem Wissen zu haben.

NAKIVO Backup & Replication kann VMs, die in VMware vSphere ausgeführt werden, auf die beste Weise sichern und wiederherstellen. Sie können die gesamte VM, den bestimmten virtuellen Datenträger oder separate Dateien aus dem Backup an einen benutzerdefinierten Speicherort wiederherstellen.

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