Jak otworzyć pliki VMDK w programie VMware i wyodrębnić dane

Znajomość sposobu otwierania plików VMDK i wyodrębniania z nich zawartości przydaje się w przypadku problemów z maszyną wirtualną. Może się zdarzyć, że maszyny wirtualne nie będą się uruchamiać po problemach związanych z instalacją aplikacji, aktualizacjami systemu operacyjnego, atakami złośliwego oprogramowania, przypadkowym usunięciem danych itp. W takiej sytuacji tracisz dostęp do dysku wirtualnego maszyny.

Na szczęście pliki VMDK można otworzyć za pomocą programów WinZip, Linux Reader lub VMware Workstation Player. Czytaj dalej, aby dowiedzieć się, jak odzyskać zawartość plików dysków wirtualnych VMDK. Pamiętaj, że te metody działają tylko wtedy, gdy dysk wirtualny nie jest poddany szyfrowaniu ani uszkodzony.

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

NAKIVO – tworzenie kopii zapasowej dla VMware vSphere

Kompleksowa ochrona danych dla maszyn wirtualnych VMware vSphere oraz opcje natychmiastowego odzyskiwania. Bezpieczne lokalizacje kopii zapasowych na miejscu, zdalnie oraz w chmurze. Funkcje ochrony przed oprogramowaniem wymuszającym okup.

Czym jest plik VMDK?

VMDK to format pliku dysku maszyny wirtualnej, będący otwartym formatem opracowanym przez firmę VMware. Ten format dysku wirtualnego ma rozszerzenie . vmdk i jest używany przez VMware i VirtualBox maszyny wirtualne. Jednak maszyny wirtualne działające na serwerach ESXi wykorzystują nieco inny format vmdk dysków wirtualnych. W magazynie danych ESXi deskryptor dysku wirtualnego oraz obszar dysku wirtualnego zawierający surowe dane dysku wirtualnego to dwa oddzielne pliki.

Schemat nazwy deskryptora dysku wirtualnego to nazwa_dysku.vmdk , a schemat nazwy obszaru dysku wirtualnego zawierającego wszystkie surowe dane to nazwa_dysku-flat.vmdk . Jeśli chodzi o dyski wirtualne w formacie VMware Workstation, są one reprezentowane jako pojedynczy plik diskname. vmdk (monolityczny plik typu sparse), który jest plikiem danych rozszerzenia zawierającym osadzony deskryptor dysku wirtualnego. Deskryptor dysku wirtualnego definiuje strukturę dysku wirtualnego, geometrię dysku wirtualnego, wersję sprzętu wirtualnego oraz identyfikatory.

Plik deskryptora dysku wirtualnego

Deskryptor dysku wirtualnego jest przedstawiony jako zwykły tekst. Po lewej stronie poniższego zrzutu ekranu widać deskryptor dysku wirtualnego w formacie ESXi (plik vmdk , który można otworzyć w dowolnym edytorze tekstu). Po prawej stronie zrzutu ekranu widać dane deskryptora dysku wirtualnego, który jest osadzony w pojedynczym pliku vmdk w formacie VMware stacja robocza. Plik vmdk można otworzyć w edytorze HEX.

Standalone descriptor in ESXi format vs. built-in descriptor in Workstation format

Jak widać, osadzone dane deskryptora dysku są zapisane w monolitycznym pliku vmdk formatu stacji roboczej, począwszy od adresu 0x200, który jest numerem pierwszego bajtu. Jeśli przekształcisz wartość 200 HEX na format binarny i dziesiętny, otrzymasz:

200 HEX = 1000000000 Binarny = 512 Dziesiętny

Oznacza to, że jeśli chcesz wyodrębnić wbudowany deskryptor z pliku vmdk , powinieneś wyodrębnić fragment danych zaczynający się od 512. bajtu. Więcej informacji na temat plików deskryptorów dysków wirtualnych VMware oraz instrukcje dotyczące wyodrębniania, edycji i importowania wbudowanego deskryptora dysku wirtualnego można znaleźć w wpisie na blogu poświęconym konwersji Maszyny wirtualne VMware do maszyn wirtualnych Hyper-V.

Plik danych dysku wirtualnego

Na poniższym zrzucie ekranu w edytorze HEX otwarte są dwa pliki dysków wirtualnych. Na obu dyskach wirtualnych zainstalowany jest ten sam system operacyjny (pierwsza partycja przeznaczona do instalacji systemu została utworzona i sformatowana za pomocą wbudowanego narzędzia dyskowego systemu Windows). Po lewej stronie zrzutu ekranu widoczny jest plik – flat. vmdk (format ESXi). Dane surowe są zapisywane od adresu 0x00000000 na tym dysku wirtualnym – flat. vmdk . Po prawej stronie zrzutu ekranu wyświetlany jest dysk wirtualny w formacie stacji roboczej, a te same dane są zapisywane od 0x00150000 (bajt nr 5376), co nie jest początkiem pliku vmdk .

Storing data in flat vmdk files of the ESXi format and sparse monolithic vmdk files of the Workstation format

Teraz, po zapoznaniu się z teorią, czas na część praktyczną. Zanim zaczniesz, zaleca się wykonanie kopii zapasowej danych, aby zapobiec ewentualnemu uszkodzeniu dysku wirtualnego. Operacje na dyskach wykonujesz na własną odpowiedzialność i ryzyko.

2 metody otwierania plików VMDK poprzez uruchomienie maszyny wirtualnej

Aby otworzyć pliki VMDK poprzez uruchomienie istniejących maszyn wirtualnych, potrzebujesz hiperwizora, takiego jak VMware ESXi, VMware Workstation, VMware Player lub Oracle VirtualBox zainstalowanego na komputerze fizycznym. Można skorzystać z tradycyjnej metody, używając płyty Live DVD lub montując plik VMDK jako dysk wirtualny.

Metoda 1: Korzystanie z płyty Live DVD, nawet jeśli system operacyjny na maszynie wirtualnej nie działa

Założeniem tej metody jest posiadanie maszyny wirtualnej i możliwość uruchomienia jej z płyty DVD. Obraz dysku ISO może służyć jako płyta DVD włożona do wirtualnego napędu DVD maszyny wirtualnej. Po uruchomieniu systemu operacyjnego z nośnika DVD można zamontować partycje dysku wirtualnego i skopiować pliki z dysku wirtualnego na dysk twardy USB podłączony do maszyny wirtualnej lub do komputera hosta, albo do dowolnego innego komputera przez sieć. Niektóre dystrybucje Live DVD montują dyski (partycje) automatycznie.

Jest to metoda starszego typu, ponieważ zasada działania jest podobna do kopiowania plików z fizycznych dysków komputerów fizycznych, gdy zainstalowany system operacyjny nie może się uruchomić. Metodę tę można wykorzystać do wyodrębnienia danych z dysków VMDK maszyn wirtualnych działających na VMware ESXi oraz VMware Player/stacja robocza.

Należy pamiętać, że system operacyjny uruchomiony z Live DVD musi rozpoznawać systemy plików partycji dysku wirtualnego, do których plików chcesz uzyskać dostęp. Na przykład system Windows domyślnie nie obsługuje systemów plików Linuksa, takich jak EXT3, EXT4, ReiserFS itp. Wykorzystanie dodatkowych narzędzi w systemie Windows może pomóc w rozwiązaniu tego problemu. Z kolei nowoczesny system Linux rozpoznaje systemy plików Windows, takie jak NTFS i FAT32, i właśnie dlatego można używać płyt Live DVD z systemem Linux do kopiowania plików przechowywanych na dyskach wirtualnych używanych przez maszynę wirtualną z systemem Windows, która nie uruchamia się.

Przykład: Otwieranie plików VMDK w ESXi

Rozważmy przykład zastosowania tej metody: masz maszynę wirtualną z systemem Windows Server 2016 na Host ESXi, a system operacyjny na tej maszynie nie uruchamia się, ale musisz uzyskać dostęp do plików zapisanych na dysku wirtualnym VMDK. Na dysku wirtualnym znajdują się dwie partycje NTFS: partycja systemu rozruchowego oraz dysk C. W tym przykładzie wykorzystano oficjalny obraz instalacyjny Ubuntu 18 w formacie ISO. Nośnik instalacyjny Ubuntu może być używany jako Live DVD.

UWAGA: Schemat postępowania dla nowszych wersji produktów omówionych w tym wpisie na blogu jest taki sam. Można używać VMware Workstation 17, ESXi 8.0, Windows Server 2019, Ubuntu Linux 22.04 itp. i stosować zasadę działania wyjaśnioną w tym artykule.

  1. Prześlij obraz ISO do magazynu danych, do którego ma dostęp host ESXi, na którym znajduje się maszyna wirtualna.
  2. Otwórz VMware vSphere Client, przejdź do Hosts and Clusters, wybierz swoją maszynę wirtualną i kliknij Edit Settings.

    Editing settings of a VM to mount a vmdk file of the dead VM

  3. W oknie ustawień maszyny wirtualnej przejdź do CD/DVD drive opcji. Wybierz opcję Datastore ISO File , jeśli posiadasz niezbędny plik ISO w magazynie danych dostępnym dla hosta ESXi. Następnie, w opcji Nośnik CD/DVD, kliknij Browse i wybierz odpowiedni plik ISO z magazynu danych. W tym przypadku nazwa pliku to ubuntu-18.04.1-desktop-amd64.iso .

    Inserting a bootable ISO image into a virtual optical drive to boot from DVD and access the contents of the VMDK file

  4. Uruchom maszynę wirtualną, uruchom system z obrazu ISO i wybierz opcję Wypróbuj Ubuntu bez instalacji. Po uruchomieniu Ubuntu z nośnika Live DVD otwórz konsolę (Terminal).
  5. Uzyskaj uprawnienia administratora:

    sudo -i

  6. Wyświetl listę dostępnych urządzeń dyskowych:

    ls -al /dev/sd*

    Istnieją dwie partycje – /dev/sda1 oraz /dev/sda2

  7. Utwórz katalogi, które będą służyć jako punkty montowania dla każdej partycji:

    mkdir /mnt/win-disk1

    mkdir /mnt/win-disk2

  8. Zamontuj partycje dysku wirtualnego do odpowiednich katalogów:

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

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

  9. Następnie wyświetl listę plików i katalogów zamontowanych partycji:

    ls -al /mnt/win-disk2/

    ls -al /mnt/win-disk1/

    Accessing files stored inside the VMDK file after booting from Ubuntu live DVD on a VM

    Jak widać na powyższym zrzucie ekranu, partycja zamontowana w /mnt/win-disk2 jest partycją używaną jako dysk C: w systemie Windows.

  10. Teraz możesz podłączyć dysk twardy USB (HDD) do portu USB hosta ESXi i połączyć ten dysk z maszyną wirtualną za pomocą funkcji USB pass-through. W ten sposób możesz skopiować niezbędne pliki zapisane w pliku VMDK, który służy jako dysk wirtualny dla maszyny wirtualnej. Innym sposobem jest użycie udziału SMB (CIFS) i skopiowanie zawartości dysku wirtualnego (czyli pliku VMDK) do innej lokalizacji przez sieć.

    W tym przykładzie wyjaśniamy kopiowanie danych do udziału SMB. Udostępnienie SMB zostało utworzone na hoście o adresie IP 192.168.17.125 , nazwa udostępnienia to 192.168.17.125share , a user10 posiada uprawnienia do zapisu w tym udostępnieniu. Nie zapominaj, że system Linux, w przeciwieństwie do systemu Windows, używa ukośnika prawego podczas łączenia się z udziałem.

    Zamontujmy udział SMB (CIFS) w systemie Linux uruchomionym z płyty Live DVD. Najpierw utwórz katalog, który posłuży jako punkt montowania.

    mkdir /mnt/smb-share

  11. Następnie zamontuj udział SMB (CIFS) w tym katalogu:

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

  12. Wprowadź hasło użytkownika.
  13. Teraz system Linux jest podłączony do udziału SMB i można skopiować zawartość pliku VMDK do udziału SMB przez sieć.

    Przejdź do katalogu, do którego zamontowano udział SMB, i skopiuj plik bootmgr z zamontowanej partycji dysku wirtualnego (pliku VMDK w magazynie danych ESXi) do bieżącego katalogu (udziału SMB).

    cd /mnt/smb-share

    cp /mnt/win-disk-2/bootmgr .

    Copying files from the mounted VMDK file to the mounted SMB share by using Ubuntu Live DVD on a VM

  14. Następnie upewnij się, że niezbędne pliki zostały skopiowane, i sprawdź zawartość udziału SMB.

    ls -al /mnt/smb-share

    Jak widać na powyższym zrzucie ekranu, plik bootmgr użyty w tym przykładzie został pomyślnie skopiowany. Teraz znasz już pierwszą metodę kopiowania zawartości pliku VMDK do innej lokalizacji, gdy system operacyjny zainstalowany na maszynie wirtualnej nie może się uruchomić. Logika stosowania tej metody w VMware Player lub VMware stacji roboczej jest taka sama.

Metoda 2: Zamontuj plik VMDK jako dysk wirtualny na sprawną maszynę wirtualną (ESXi/stacja robocza/Player)

Ta metoda jest podobna do poprzedniej, ale w tym przypadku dysk wirtualny VMDK powinien być podłączony do istniejącej maszyny wirtualnej z działającym systemem operacyjnym. Możesz podłączyć plik VMDK jako dodatkowy dysk wirtualny do istniejącej maszyny wirtualnej działającej na hoście ESXi, VMware Workstation i VMware Player. Jeśli chcesz otworzyć plik VMDK maszyny wirtualnej ESXi w programie VMware Workstation lub Player, skopiuj zarówno dysk wirtualny, jak i jego deskryptor (pliki ` vmdk` ` ` oraz ` flat.vmdk` ` `) na dysk fizyczny dostępny dla komputera, na którym zainstalowano program VMware Workstation lub Player. Jeśli migawki zostały wykonane dla maszyny wirtualnej, a po tym wprowadzono zmiany w dyskach maszyny wirtualnej, nie zapomnij skopiować plików VMDK dysków wirtualnych typu delta (różnicowych) oprócz plików VMDK nadrzędnych.

Rozważmy dwa przykłady:

Example 1: jak otworzyć dysk wirtualny VMDK jednej maszyny wirtualnej przy użyciu innej maszyny wirtualnej na hoście ESXi (obie są zarejestrowane na hoście ESXi)

Example 2: jak wyodrębnić zawartość z dysku wirtualnego VMDK maszyny wirtualnej ESXi poprzez podłączenie dysku wirtualnego do maszyny wirtualnej w formacie stacji roboczej VMware

Należy pamiętać, że działający system operacyjny na pierwszej (sprawnej) maszynie wirtualnej musi być kompatybilny z systemami plików używanymi na dysku wirtualnym drugiej maszyny wirtualnej, która posiada system operacyjny niebędący systemem startowym (maszyna wirtualna, której plik VMDK chcesz podłączyć jako dodatkowy dysk wirtualny w celu wyodrębnienia plików).

Przykład 1: Montowanie dysku wirtualnego do maszyny wirtualnej działającej na ESXi

  1. Wyłącz maszynę wirtualną, która korzysta z dysku wirtualnego, z którego chcesz wyodrębnić pliki.
  2. Znajdź ten dysk wirtualny w magazynie danych ESXi.
  3. Skopiuj dysk wirtualny do innego katalogu w tym samym magazynie danych lub do innego magazynu danych, aby zapobiec błędowi spowodowanemu blokadą dysku wirtualnego. W naszym przykładzie pokażemy, jak otworzyć plik VMDK o nazwie Win-test2.vmdk (w naszym przypadku jest to dysk wirtualny Win-test2 maszyny wirtualnej z systemem Windows). Host ESXi jest zarządzany przez vCenter. Jeśli korzystasz z samodzielnego hosta ESXi bez vCenter, możesz zastosować logikę wyjaśnioną w tym przykładzie – różnice dotyczą jedynie interfejsu użytkownika.
  4. Otwórz VMware vSphere Client, przejdź do Storage, i wybierz magazyn danych, w którym znajduje się potrzebny plik VMDK. Wybierz plik VMDK i kliknij Copy to.

    UWAGA: Jeśli posiadasz samodzielny host ESXi i nie masz vCenter, otwórz VMware Host Client, wpisując adres IP swojego hosta ESXi w przeglądarce internetowej, następnie przejdź do Storage > [Your datastore name] > Datastore Browser, wybierz plik VMDK i kliknij Copy. Wybierz miejsce docelowe i kliknij przycisk Copy w celu potwierdzenia. Należy pamiętać, że dyski wirtualne są wyświetlane jako pliki VMDK w interfejsie internetowym VMware vSphere Client i VMware Host Client, ale dysk wirtualny składa się z plików: flat.vmdk oraz vmdk (dysk wirtualny i jego deskryptor). Pliki można również skopiować, otwierając konsolę ESXi bezpośrednio na serwerze lub łącząc się przez SSH.

    Copying virtual disk and descriptor vmdk files on the ESXi datastore

  5. W otwartym oknie wybierz lokalizację docelową. Plik VMDK można skopiować do dowolnej lokalizacji w tym samym magazynie danych lub do innego magazynu danych. W tym przykładzie skopiujmy plik VMDK do katalogu głównego tego samego magazynu danych. W tym przypadku skopiowane zostaną zarówno pliki vmdk jak i – flat.vmdk .

    Selecting destination to copy vmdk files

  6. Teraz należy podłączyć dysk wirtualny VMDK do innej sprawnej maszyny wirtualnej, której system operacyjny działa poprawnie. W tym przykładzie wykorzystano maszynę wirtualną z systemem Windows Server 2016 na tym samym hoście ESXi (nazwa maszyny wirtualnej to WinServer2016 ). Dysk wirtualny można podłączyć do tej sprawnej maszyny wirtualnej podczas jej działania. W vSphere Client przejdź do Hosts and Clusters, wybierz sprawną maszynę wirtualną, kliknij ją prawym przyciskiem myszy i wybierz Edit Settings.

    Editing settings of the healthy VM for opening a virtual disk copy of the dead VM

  7. W wyświetlonym oknie kliknij Add New Device i wybierz Existing Hard Disk.

    Adding a virtual disk to the healthy VM in vCenter

  8. Wybierz kopię pliku VMDK, którą utworzyłeś wcześniej. W tym przykładzie wybrano kopię Win-test2.vmdk znajdującą się w katalogu głównym magazynu danych.

    Opening a vmdk file by attaching a virtual disk to the ESXi VM

  9. Włącz sprawną maszynę wirtualną, do której podłączyłeś interesujący Cię dysk wirtualny, jeśli maszyna wirtualna nie została jeszcze włączona. Dysk wirtualny jest dodawany w locie do uruchomionej maszyny wirtualnej z systemem Windows Server 2016.
  10. W gościnnym systemie operacyjnym Windows przejdź do Computer Management > Disk Management (lub uruchom diskmgmt.msc w wierszu poleceń) i znajdź podłączony dysk wirtualny. Domyślnie nowy podłączony dysk jest w trybie offline. Kliknij prawym przyciskiem myszy dysk i wybierz opcję „ Online”. Działom na dodanym dysku powinna zostać automatycznie przypisana litera dysku. Jeśli litera dysku nie została przypisana do działu, kliknij prawym przyciskiem myszy dział i wybierz opcję „ Change Drive Letter and Paths”.

    A virtual disk is attached to the healthy Windows VM and a partition is mounted successfully

  11. Teraz masz pełny (odczyt/zapis) dostęp do plików i katalogów na dysku wirtualnym VMDK. Wystarczy otworzyć zamontowany dysk w Eksploratorze Windows i skopiować niezbędną zawartość pliku VMDK zamontowanego na sprawną maszynę wirtualną. Można również usunąć zbędne dane z podłączonego dysku wirtualnego VMDK (na przykład pliki utworzone przez wirusy), ale należy zachować ostrożność i nie uszkodzić dysku wirtualnego, jeśli dla zamontowanego dysku VMDK istnieją powiązane migawki.

    Browse vmdk file contents in Windows Explorer after mounting

Przykład 2: Podłączanie dysku wirtualnego do maszyny wirtualnej działającej w VMware Player lub Workstation

Ten przykład jest podobny do poprzedniego, ale do otwarcia plików VMDK maszyny wirtualnej ESXi używana jest maszyna wirtualna działająca w VMware Workstation. Metody tej można użyć, gdy na magazynie danych ESXi nie ma wolnego miejsca na dysku, aby skopiować dysk wirtualny. Dysk wirtualny maszyny wirtualnej Win-test2 wspomnianej w poprzednim przykładzie zostanie zamontowany w maszynie wirtualnej VMware stacja robocza w celu wyodrębnienia jej zawartości.

  1. W kliencie VMware vSphere Client przejdź do Storage > [Your datastore name] > Files, wybierz plik VMDK i kliknij Download.

    Jak zapewne pamiętasz, dysk wirtualny w formacie ESXi składa się z plików vmdk oraz – flat.vmdk . Należy pobrać oba pliki na komputer, na którym zainstalowano program VMware Workstation lub VMware Player. Podczas pobierania dysku wirtualnego z magazynu danych ESXi za pomocą klienta VMware HTML5 vSphere Client te dwa pliki są spakowane do jednego archiwum zip.

    Alternatywnie można włączyć dostęp SSH do hosta ESXi, przejść do katalogu magazynu danych i ręcznie skopiować oba pliki dysku wirtualnego na komputer za pomocą klienta SCP, na przykład WinSCP.

    UWAGA: Po pobraniu przydzielane dynamicznie dysku wirtualnego z magazynu danych ESXi z systemem plików VMFS na komputer, otrzymasz lekki plik vmdk oraz plik – flat.vmdk o rozmiarze równym maksymalnemu przydzielonemu rozmiarowi dysku wirtualnego (tak jak w przypadku pobierania dysku wirtualnego z przydziałem grubym). Wynika to z faktu, że przydział cienki można uznać za System plików VMFS funkcję.

    Downloading vmdk virtual disk and descriptor file to open vmdk files in VMware Workstation

    Teraz widać dwa pliki dysku wirtualnego w formacie ESXi, które zostały pobrane w archiwum ZIP. Rozmiar dysku wirtualnego z alokacją typu thin w magazynie danych VMFS wynosi obecnie około 2 GB (patrz zrzut ekranu powyżej), a rozmiar tego samego dysku pobranego na stację roboczą wynosi około 8 GB (patrz zrzut ekranu poniżej).

  2. Rozpakuj dwa pliki z archiwum. Domyślnie pliki są wyodrębniane do katalogu Win-test2.vmdk , którego nazwa jest taka sama jak nazwa archiwum, ale bez rozszerzenia pliku.

    A downloaded zip archive that contains a virtual disk and descriptor vmdk files

  3. W tym kroku należy dysponować sprawną maszyną wirtualną z działającym systemem operacyjnym na komputerze, na którym zainstalowano program VMware Workstation lub Player. Podczas gdy w poprzednim przykładzie wykorzystano maszynę wirtualną z systemem Windows Server 2016, w tym przykładzie używana jest sprawna maszyna wirtualna z systemem Windows Server 2008.

    Otwórz program VMware Workstation lub VMware Player, wybierz sprawną maszynę wirtualną i edit virtual machine settings.

    Editing VM settings in VMware Workstation to open vmdk files of the ESXi format

  4. W oknie zakładka Hardware kliknij przycisk Add .

    Adding a virtual disk of the ESXi format to a healthy VM in VMware Workstation

  5. W Kreatorze dodawania sprzętu , który się otworzy, wybierz Hard disk jako typ sprzętu. Następnie wybierz typ dysku (możesz pozostawić wartość zalecaną). Na ekranie Wybierz dysk wybierz opcję Use an existing virtual disk .

    How to attach a vmdk file to a VM in VMware Workstation

  6. Wybierz plik vmdk (nie – flat.vmdk ), który wyodrębniłeś z archiwum ZIP. Możesz przeglądać pliki lub ręcznie wpisać pełną ścieżkę do pliku.

    Selecting the VMDK file to add the virtual disk to a VM

    W tym przykładzie używamy ESXi 6.5 i VMware Workstation 15. Maszyna wirtualna VMware Workstation z systemem Windows Server 2008 w naszym przykładzie ma wersję sprzętową Workstation 12 (wersja VM 12). Maszyna wirtualna ESXi, do której chcemy podłączyć dysk wirtualny, ma wersję VM 7.

  7. W stacji roboczej VMware pojawia się komunikat o błędzie informujący, że dysk wirtualny skopiowany z hosta ESXi nie jest kompatybilny z tą maszyną wirtualną:

    A compatibility issue may occur when opening VMDK files

    Błąd ten można naprawić, edytując plik deskryptora dysku (w przypadku dysków wirtualnych maszyn wirtualnych ESXi jest to lekki plik vmdk ). Otwórz plik VMDK w edytorze tekstowym i zmień liczbę w ciągu Ddb.virtualHWVersion . W naszym przypadku 13 zostaje zmienione na 12.

    UWAGA: Pamiętaj, że w przypadku dysków wirtualnych maszyn wirtualnych VMware Workstation deskryptor dysku wirtualnego jest wbudowany w plik VMDK dysku wirtualnego (nie ma oddzielnego pliku deskryptora, jak w przypadku dysków wirtualnych maszyn wirtualnych ESXi).

    Editing a virtual disk descriptor vmdk file

    Po edycji pliku dysk wirtualny zostanie pomyślnie dodany do istniejącej maszyny wirtualnej.

  8. Włącz maszynę wirtualną, jeśli nie została jeszcze uruchomiona.
  9. Otwórz Zarządzanie dyskami w systemie Windows, zmień status dysku wirtualnego na online, przypisz literę dysku do partycji i przeglądaj pliki.

    A vmdk virtual disk of the ESX format has been attached to a Windows VM

Jak wyodrębnić dane z pliku VMDK bez uruchamiania maszyny wirtualnej

Metody, które nie wymagają konfiguracji i uruchamiania maszyny wirtualnej, mają swoje zalety. Niektóre z tych metod nie wymagają instalacji hiperwizora. Pliki VMDK można w krótkim czasie zamontować bezpośrednio w systemie operacyjnym hosta.

Method 1: Mounting VMDK files in a host OS with VMware Workstation

Metoda ta wymaga zainstalowania programu VMware Workstation w systemie operacyjnym Windows lub Linux działającym na komputerze fizycznym. VMware Workstation oferuje przydatną funkcję, która pozwala na zamontowanie plików VMDK w systemie operacyjnym hosta. Obsługiwane są dyski wirtualne w formacie ESXi oraz dyski delta związane z migawkami maszyn wirtualnych. Podobnie jak w przypadku wszystkich poprzednich metod omówionych w tym wpisie na blogu, system operacyjny musi obsługiwać systemy plików partycji dysków wirtualnych.

Jeśli masz migawki swojej maszyny wirtualnej, dyski wirtualne delta są tworzone po utworzeniu każdej migawki. Powinieneś mieć dostępny dysk wirtualny nadrzędny oraz dyski delta, jeśli chcesz otworzyć stan dysku wirtualnego w momencie tuż po wykonaniu jednej lub drugiej migawki. W takim przypadku należy zamontować odpowiedni dysk wirtualny delta w systemie operacyjnym hosta. Zależności związane z dyskiem wirtualnym nadrzędnym zostaną rozwiązane automatycznie.

Jeśli masz migawki, ale chcesz otworzyć dysk wirtualny nadrzędny, otwórz go w trybie tylko do odczytu. Wynika to z faktu, że wprowadzanie zmian na dysku wirtualnym nadrzędnym może uszkodzić migawki lub klony powiązane utworzone z maszyny wirtualnej nadrzędnej przy użyciu tego dysku. Tryb tylko do odczytu uniemożliwia zapisywanie danych na dysku wirtualnym po zamontowaniu go w systemie operacyjnym hosta. Pliki dysku wirtualnego VMDK można zamontować, jeśli maszyna wirtualna korzystająca z tego dysku jest wyłączona lub jeśli dana maszyna wirtualna nie korzysta z tego dysku.

Przyjrzyjmy się, jak zamontować dysk wirtualny VMDK maszyny wirtualnej VMware Workstation, która posiada migawki. Na jednej partycji NTFS na dysku wirtualnym maszyny wirtualnej zainstalowany jest system Windows. Po wykonaniu pierwszej migawki w katalogu głównym dysku C: tworzony jest plik Snapshot1.txt , a podobnie, po wykonaniu drugiej migawki, tworzony jest tam plik Snapshot2.txt . Pierwszy przykład dotyczy systemu Linux, a drugi systemu Windows. W tym przykładzie wykorzystano pliki dysków wirtualnych starej maszyny wirtualnej z systemem Windows XP.

Przykład 1: Montowanie pliku VMDK na hoście z systemem Linux

  1. Otwórz stację roboczą VMware Workstation dla systemu Linux i przejdź do File > Mount Virtual Disks.

    How to mount vmdk files using VMware Workstation on a Linux host

  2. Kliknij Mount Disk, a otworzy się okno podręczne. Kliknij Browse i wybierz plik dysku wirtualnego VMDK.

    How to mount vmdk file as a virtual disk to a Linux host machine

  3. Wybierzmy plik VMDK drugiego dysku wirtualnego różnicowego, utworzonego po wykonaniu drugiej migawki maszyny wirtualnej. W takich przypadkach nazwa tego pliku ma postać VM_name-000002.vmdk (w tym przykładzie użyto pliku WinXP-test-000002.vmdk ).

    Selecting a vmdk file to mount as a virtual disk on the Linux host

  4. Utwórz w systemie plików Linuksa katalog, w którym zamontujesz dysk wirtualny w formacie VMDK. Utwórzmy katalog /mnt/vmdk/ w konsoli systemu Linux.

    mkdir /mnt/vmdk/

  5. Ustaw uprawnienia dla swojego użytkownika (nazwa użytkownika to user1 i jest on członkiem group1 w tym przykładzie):

    chown -R user1:group1 /mnt/vmdk/

    chmod -R 0775 /mnt/vmdk/

  6. Teraz wybierz utworzony katalog jako katalog docelowy, zaznacz pole wyboru „ Mount in read-only mode ” i kliknij Mount.

    Everything is ready to mount a VMDK virtual disk

  7. Teraz możesz otworzyć katalog /mnt/vmdk/ w eksploratorze plików systemu Linux i przeglądać pliki oraz katalogi znajdujące się na dysku wirtualnym VMDK. Możesz zobaczyć pliki Snapshot1.txt oraz Snapshot2.txt , które zostały utworzone po utworzeniu pierwszej i drugiej migawki w tym przykładzie. Każdy z tych dwóch plików znajduje się na oddzielnym dysku wirtualnym delta VMDK.

    Browse vmdk file contents after mounting the image to the directory

  8. Nie zapomnij odmontować dysku wirtualnego VMDK z katalogu (punktu montowania) w systemie Linux na hoście po zakończeniu operacji na zawartości dysku wirtualnego.

    Unmount the vmdk image file from your host Linux file system when not in use

Jeśli wolisz korzystać z interfejsu konsoli, możesz zamontować obrazy dysków VMDK na hoście Linux w konsoli za pomocą tego polecenia:

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

Gdzie:

vm_name to nazwa maszyny wirtualnej, która w tym przypadku jest taka sama jak nazwa katalogu VM. WinXP-test to nazwa maszyny wirtualnej w naszym przykładzie.

vm_disk_name to nazwa dysku wirtualnego ( WinXP-test.vmdk jest używana w tym przykładzie).

vm_disk_name-000001.vmdk to nazwa pierwszego dysku delta (różnicowego) utworzonego po wykonaniu pierwszej migawki maszyny wirtualnej ( WinXP-test-000001.vmdk w tym przypadku).

vm_disk_name-000002.vmdk to nazwa drugiego dysku delta utworzonego po wykonaniu odpowiednio drugiej migawki maszyny wirtualnej ( WinXP-test-000002.vmdk w tym przypadku).

  1. Zamontuj dysk wirtualny. Domyślnie dysk wirtualny jest montowany w trybie odczytu/zapisu. Możesz użyć klucza -r w wierszu poleceń, aby zamontować dysk w trybie tylko do odczytu.

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

  2. Wyświetl listę wszystkich zamontowanych dysków wirtualnych VMDK:

    vmware-mount -L

  3. Przed zakończeniem pracy z zamontowanymi dyskami wirtualnymi VMDK należy odmontować wszystkie dyski wirtualne:

    vmware-mount -x

Przykład 2: Jak zamontować plik VMDK na hoście z systemem Windows

Zasada zamontowania plików VMDK w systemie Windows jest podobna. Oprócz opcji File > Map Virtual Disks dostępnej w graficznym interfejsie użytkownika (GUI) stacji roboczej VMware Workstation można wykonać poniższe czynności. Zamontujmy plik VMDK pierwszego dysku wirtualnego różnicowego utworzonego po wykonaniu pierwszej migawki maszyny wirtualnej. Nazwa tego pliku VMDK ma następujący format: VM_name-000001.vmdk ( WinXP-test-000001.vmdk jest otwarty w tym samouczku).

  1. Kliknij prawym przyciskiem myszy plik VMDK w Eksploratorze Windows i wybierz Map Virtual Disk.

    An easy method to map a vmdk virtual disk in Windows

  2. Wybierz parametry zamontowania pliku VMDK. Zaleca się otwarcie pliku VMDK w trybie tylko do odczytu, aby zapobiec ewentualnemu uszkodzeniu dysków wirtualnych należących do łańcucha migawek po zapisaniu danych. W tym przypadku domyślną literą dysku jest Z:, a dysk otwiera się automatycznie w Eksploratorze Windows po zamapowaniu, jeśli zaznaczono odpowiednie pole wyboru. Kliknij OK , aby kontynuować.

    How to open vmdk by mapping a virtual disk in Windows

  3. Teraz dysk wirtualny jest zamontowany jako dysk Z: w systemie Windows i można odczytać zawartość pliku vmdk. Na poniższym zrzucie ekranu widać plik Snapshot1.txt utworzony po wykonaniu pierwszej migawki. Plik Snapshot2.txt brakuje, ponieważ został utworzony po wykonaniu drugiej migawki maszyny wirtualnej, a my otworzyliśmy dysk wirtualny typu delta powiązany z pierwszą migawką maszyny wirtualnej.

    Browse vmdk file contents in Windows Explorer after mounting a vmdk file

  4. Po zakończeniu pracy z zamapowanym dyskiem wirtualnym VMDK nie zapomnij odłączyć dysku. Kliknij prawym przyciskiem myszy odpowiedni plik VMDK, a następnie kliknij Disconnect Virtual Disk. Po odłączeniu dysku wirtualnego możesz włączyć maszynę wirtualną, która korzysta z tego dysku wirtualnego.

    Disconnecting a virtual disk vmdk file from a Windows host OS

Metoda 2: Użycie programu 7-zip do wyodrębnienia zawartości z plików VMDK

Jeśli szukasz sposobu na otwarcie plików VMDK bez uruchamiania maszyn wirtualnych, możesz zainstalować program 7-zip i wyodrębnić zawartość z obrazów dysków wirtualnych. 7-zip to darmowe narzędzie służące do archiwizacji plików oraz rozpakowywania plików z archiwów i innych obrazów. Możesz używać 7-zip jako narzędzia do wyodrębniania plików VMDK. To narzędzie działa na komputerach z systemem Linux i Windows. Program 7-zip może otwierać pliki vmdk oraz – flat.vmdk (narzędzie to może otworzyć pojedynczy plik – flat.vmdk , jeśli brakuje pliku deskryptora vmdk ) – 7-zip jest w rzeczywistości przeznaczony do obsługi dysków wirtualnych w formacie ESXi. Program 7-zip nie może otwierać plików delta VMDK utworzonych po wykonaniu migawek maszyn wirtualnych.

How to open VMDK files with 7-zip on Linux

  1. Zainstaluj pełny pakiet 7-zip na swoim komputerze z systemem Linux. W tym przykładzie używamy systemu Ubuntu.

    apt-get install p7zip-full

  2. Wyświetl zawartość pliku vmdk za pomocą programu 7-zip:

    7z l vm_name.vmdk

  3. Znajdźmy pliki, których nazwy zawierają frazę „ boot .”, na przykład:

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

    Gdzie user1 to nazwa naszego użytkownika systemu Linux, l – lista.

    Using 7-zip as a vmdk extractor in Linux

  4. Wyodrębnijmy (e) plik boot.ini z obrazu VMDK:

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

    W ten sam sposób można wyodrębnić inne pliki i katalogi z pliku VMDK.

How to open VMDK files with 7-zip on Windows

  1. Pobierz kompatybilną wersję programu 7-zip ze strony oficjalna strona internetowa i zainstaluj aplikację na komputerze z systemem Windows. Dla wygody użyj instalatora EXE.
  2. Po zainstalowaniu programu 7-zip w systemie Windows do menu kontekstowego, wyświetlanego po kliknięciu prawym przyciskiem myszy dowolnego pliku lub folderu w Eksploratorze Windows, zostaną dodane nowe opcje programu 7-zip (patrz zrzut ekranu poniżej). Skorzystaj z tych opcji, aby otworzyć plik VMDK jako archiwum lub od razu wyodrębnić pliki.

    Opening a vmdk file in 7zip to browse vmdk file contents in Windows

  3. Na poniższym zrzucie ekranu zawartość samodzielnego pliku Win-test2-flat.vmdk jest wyświetlana w interfejsie graficznym programu 7-zip używanego w systemie Windows. Możesz wyodrębnić potrzebną zawartość pliku VMDK.

    You can browse vmdk file contents by opening a file in 7-zip in Windows

Jak zamontować pliki VMDK w systemie Linux (Inne metody)

Jedną z najpotężniejszych funkcji systemu Linux jest możliwość wykonywania ogromnej liczby operacji w konsoli, nawet przy użyciu wbudowanych narzędzi. Narzędzia te pomogą Ci zamontować pliki VMDK i uzyskać dostęp do zawartości przechowywanej na dyskach wirtualnych. W podanych przykładach wykorzystano system Ubuntu Linux.

Method 1: How to mount VMDK files by using /dev/loop

Urządzenia pętlowe to pseudourządzenia w systemie Linux, które udostępniają pliki jako urządzenia blokowe i mogą służyć do montowania obrazów dysków zawierających systemy plików. Urządzenia pętli mają nazwy w postaci: /dev/loopX gdzie X to numer urządzenia pętli. Ta metoda sprawdza się przy montowaniu plików typu – flat.vmdk nawet bez deskryptora dysku wirtualnego.

Przyjrzyjmy się, jak zamontować plik VMDK w systemie Linux, aby uzyskać dostęp do plików na dysku wirtualnym. Istnieje dysk wirtualny w formacie ESXi, zawierający jedną partycję – brakuje pliku deskryptora. Dawno temu na tym dysku wirtualnym zainstalowano system Windows XP.

  1. Użyj jednego z dwóch poleceń, aby sprawdzić liczbę istniejących urządzeń pętli w systemie Linux.

    fdisk -l | grep /dev/loop

    df -h | grep /dev/loop

  2. W naszym przypadku istnieją już urządzenia o numerach od 1 do 21 (/dev/loop1 /dev/loop21 ). Stwórzmy więc urządzenie pętli o numerze 30 – ten numer jest wolny. Powiążemy to urządzenie z plikiem – flat.vmdk .

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

  3. Ustaw przesunięcie:

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

    Gdzie 32256 to przesunięcie wynoszące 63*512 dla dysku sformatowanego w systemie Windows XP/Server 2003 i starszych wersjach Windows (63 to numer pierwszego sektora partycji, a 512 bajtów to rozmiar sektora). W przypadku Windows 7/Server 2008 i nowszych wersji Windows należy wypróbować przesunięcie 105906176.

    Informacje o rozmiarze sektora oraz pierwszym sektorze używanym do uruchamiania systemu można uzyskać za pomocą polecenia:

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

    How to mount vmdk files in Linux without having a hypervisor installed

    Alternatywnie, w przypadku dysków wirtualnych zawierających wiele partycji, można użyć programu parted do określenia początku i końca każdej partycji:

    parted /dev/loop30

    W konsoli parted należy wprowadzić następujące polecenia:

    unit

    B

    print

    Checking information about a vmdk virtual disk and its partitions

  4. Utwórz katalog, który będzie służył jako punkt montowania obrazu VMDK:

    mkdir /mnt/vmdk-image

  5. Zamontuj urządzenie pętli zwrotnej powiązane z obrazem VMDK do utworzonego katalogu:

    mount /dev/loop31 /mnt/vmdk-image

  6. Wyświetl zawartość zamontowanego obrazu:

    ls -al /mnt/vmdk-image

  7. Po zakończeniu pracy z zawartością dysku wirtualnego odmontuj obraz vmdk i odłącz urządzenie pętli:

    umount /mnt/vmdk-image

    losetup -d /dev/loop31

    Using a loopback pseudo-device to mount vmdk virtual disk images in Linux

Metoda 2: Jak zamontować pliki VMDK za pomocą kpartx

Kpartx to narzędzie, które może montować partycje w plikach obrazów do katalogów rzeczywistego systemu plików Linux. Narzędzie to może służyć do konfigurowania mapowań urządzeń dla partycji urządzeń blokowych. Metoda ta działa również w przypadku montowania obrazów – flat.vmdk używanych na serwerach ESXi. Zobaczmy, jak zamontować plik – flat.vmdk używany w poprzednim przykładzie.

  1. Zainstaluj kpartx:

    apt-get install kpartx

  2. Dodaj mapowanie partycji dla obrazu VMDK w trybie pracy z opisem szczegółowym:

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

  3. Zamontuj partycję w katalogu /mnt/vmdk-image przygotowanym wcześniej:

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

    Gdzie loop30 to numer urządzenia pętlowego, a p1 to numer partycji wewnątrz obrazu (pierwsza partycja na obrazie dysku).

  4. Wyświetl zawartość zamontowanej partycji dysku wirtualnego:

    ls -al /mnt/vmdk-image/

    Using kpartx to mount vmdk images in Linux

  5. Po zakończeniu operacji na plikach obrazu VMDK odmontuj obraz dysku wirtualnego VMDK:

    umount /mnt/vmdk-image

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

Wnioski

Znajomość wielu metod wyodrębniania zawartości plików VMDK zapewnia elastyczność i niezawodność, ponieważ każda z nich może być najlepszym rozwiązaniem w określonych sytuacjach. Co więcej, oprócz tej wiedzy jeszcze lepszym rozwiązaniem jest posiadanie kopii zapasowych maszyn wirtualnych.

NAKIVO Backup & Replication umożliwia wykonanie kopii zapasowej i przywrócenie maszyn wirtualnych działających w środowisku VMware vSphere w najlepszy możliwy sposób. Można przywrócić całą maszynę wirtualną, konkretny dysk wirtualny lub poszczególne pliki z kopii zapasowej do wybranej lokalizacji.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby poznać wszystkie funkcje rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie trzeba podawać danych karty kredytowej.

People also read