Jak otworzyć, zamontować i wyodrębnić dane z pliku VMDK

Plik VMDK zawiera zawartość dysku twardego maszyny wirtualnej. Jeśli maszyna wirtualna nie uruchamia się z powodu uszkodzenia systemu operacyjnego, nieudanych aktualizacji, złośliwego oprogramowania lub błędów konfiguracji, nadal możesz uzyskać dostęp do danych znajdujących się na jej dysku wirtualnym.</p>
<p> W tym przewodniku wyjaśniono, jak otworzyć, zamontować i wyodrębnić dane z pliku VMDK przy użyciu narzędzi VMware oraz alternatywnych metod dla systemów Windows i Linux. Metody te pozwalają uzyskać dostęp do plików bez konieczności uruchamiania maszyny wirtualnej. Należy pamiętać, że opisane metody mają zastosowanie wyłącznie do plików VMDK, które nie są poddane szyfrowaniu ani poważnie uszkodzone.

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 (Virtual Machine Disk) to otwarty format pliku dysku wirtualnego opracowany przez firmę VMware. Pliki w tym formacie mają rozszerzenie .vmdk i są obsługiwane przez VMware i VirtualBox.

Na serwerach VMware ESXi plik VMDK jest zazwyczaj przechowywany w postaci dwóch oddzielnych plików w magazynie danych: niewielkiego pliku deskryptora dysku wirtualnego oraz pliku zakresu dysku wirtualnego, zawierającego surowe dane dyskowe. Plik deskryptora zazwyczaj ma nazwę zgodną ze wzorcem diskname.vmdk, natomiast plik zakresu zawierający rzeczywiste dane nosi nazwę diskname-flat.vmdk.

W stacji roboczej VMware dysk wirtualny jest często przechowywany jako pojedynczy plik diskname.vmdk (format monolityczny rzadki). W tym przypadku informacje deskryptora są osadzone w tym samym pliku, w którym przechowywane są dane dysku. Deskryptor dysku wirtualnego definiuje strukturę dysku, geometrię, wersję sprzętu wirtualnego oraz unikalne identyfikatory.

Plik deskryptora dysku wirtualnego

Deskryptor dysku wirtualnego jest przechowywany jako zwykły tekst. Na poniższym zrzucie ekranu po lewej stronie widoczny jest plik deskryptora w formacie ESXi (plik .vmdk , który można otworzyć w dowolnym edytorze tekstowym). Po prawej stronie widać dane deskryptora osadzone w pojedynczym pliku .vmdk , utworzonym w formacie VMware Stacja robocza. W tym przypadku plik został otwarty w edytorze HEX.

Comparing ESXi and Workstation descriptor files

Jak widać, dane deskryptora osadzone w monolitycznym pliku w formacie stacji roboczej .vmdk zaczynają się od przesunięcia 0x200 (adres bajtowy). Przeliczenie wartości 0x200 z systemu szesnastkowego na dziesiętny daje: 0x200 (HEX) = 512 (dziesiętnie). Oznacza to, że aby wyodrębnić osadzony deskryptor z pliku VMDK, należy skopiować fragment danych zaczynający się od bajtu 512.

Uwaga: Szczegółowe instrukcje dotyczące wyodrębniania, edycji i importowania osadzonego deskryptora dysku można znaleźć we 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 zainstalowano ten sam system operacyjny, a pierwsza partycja została utworzona i sformatowana przy użyciu wbudowanego narzędzia dyskowego systemu Windows. Po lewej stronie zrzutu ekranu wyświetlany jest plik -flat.vmdk (format ESXi). W tym pliku surowe dane dysku zaczynają się od offsetu 0x00000000.

Po prawej stronie widoczny jest plik VMDK w formacie VMware stacja robocza. W tym przypadku te same dane dyskowe zaczynają się od offsetu 0x00150000, a nie od początku pliku, ponieważ deskryptor i metadane są umieszczone przed właściwą zawartością dysku.

Storing data in flat vmdk files and sparse monolithic vmdk files

Przed przystąpieniem do otwierania i montowania pliku VMDK upewnij się, że wykonałeś kopię zapasową danych, aby zapobiec ewentualnemu uszkodzeniu dysku.

2 metody otwierania plików VMDK poprzez uruchomienie maszyny wirtualnej

Zacznijmy od metod otwierania pliku VMDK poprzez uruchomienie maszyny wirtualnej. Podejścia te są proste i mają szerokie zastosowanie. Wymagają one jednak zainstalowania hiperwizora (VMware ESXi, VMware stacja robocza, VMware Player lub Oracle VirtualBox) w systemie hosta.

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

Ta metoda zakłada, że maszyna wirtualna nadal może uruchamiać się z nośnika zewnętrznego. Zamiast fizycznej płyty DVD można podłączyć obraz ISO do wirtualnego napędu DVD maszyny wirtualnej i uruchomić system z tego obrazu.

Po uruchomieniu systemu operacyjnego z płyty Live DVD można zamontować partycje pliku VMDK i skopiować dane na dysk USB podłączony do maszyny wirtualnej, na komputer hosta lub do innego systemu przez sieć. Niektóre dystrybucje Live DVD montują partycje automatycznie.

Podejście to jest podobne do odzyskiwania plików z fizycznego komputera, gdy zainstalowany system operacyjny nie uruchamia się. Można je wykorzystać do wyodrębnienia danych z plików VMDK w środowiskach VMware ESXi oraz VMware Workstation/Player.

Należy upewnić się, że system operacyjny Live obsługuje systemy plików używane na dysku wirtualnym. Na przykład system Windows nie obsługuje natywnie systemów plików Linuksa, takich jak EXT3, EXT4 czy ReiserFS. Dystrybucje Live oparte na Linuksie zazwyczaj obsługują jednak systemy plików Windows, takie jak NTFS i FAT32, co czyni je praktycznym wyborem podczas odzyskiwania danych z maszyny wirtualnej z systemem Windows, która nie uruchamia się.

Przykład: Otwieranie plików VMDK w środowisku ESXi

Rozważmy następujący scenariusz: maszyna wirtualna z systemem Windows Server 2016 na Host ESXi nie uruchamia się, ale konieczne jest odzyskanie plików przechowywanych w jej pliku VMDK. Dysk wirtualny zawiera dwie partycje NTFS: partycję systemową (rozruchową) oraz główny dysk C:. W tym przykładzie oficjalny obraz instalacyjny ISO systemu Ubuntu 18 służy jako płyta Live DVD, umożliwiająca uzyskanie dostępu do dysku wirtualnego i skopiowanie wymaganych danych.

Uwaga: To samo podejście ma zastosowanie do nowszych wersji produktów, w tym VMware Workstation 17, ESXi 9.0, Windows Server 2025 i Ubuntu Linux 24.04. Chociaż poszczególne elementy interfejsu mogą się nieznacznie różnić, podstawowy przebieg operacji pozostaje taki sam.

  1. Prześlij obraz ISO do magazynu danych dostępnego dla hosta ESXi, na którym działa maszyna wirtualna.
  2. Otwórz program VMware vSphere Client, przejdź do sekcji „Hosty i klastry”, wybierz swoją maszynę wirtualną i kliknij „Edytuj ustawienia”.Editing VM settings
  3. W oknie ustawień maszyny wirtualnej przejdź do opcji napędu CD/DVD. Wybierz opcję „Plik ISO z magazynu danych”, jeśli w magazynie danych znajduje się wymagany plik ISO. Następnie kliknij „Przeglądaj” i wybierz odpowiedni plik ISO. W tym przypadku nazwa pliku to ubuntu-18.04.1-desktop-amd64.iso .Inserting a bootable ISO image into a virtual optical drive
  4. Uruchom maszynę wirtualną, uruchom system z obrazu ISO i wybierz opcję „Wypróbuj Ubuntu bez instalacji”. Po uruchomieniu systemu 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 posłużą jako punkty montowania dla każdej partycji:
    mkdir /mnt/win-disk1
    mkdir /mnt/win-disk2
  8. Zamontuj partycje dysku wirtualnego w odpowiednich katalogach:
    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

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

    Możesz podłączyć dysk twardy USB (HDD) do hosta ESXi i połączyć go z maszyną wirtualną za pomocą funkcji USB passthrough, aby skopiować wymagane pliki z zamontowanego pliku VMDK. Alternatywnie można skorzystać z udziału SMB (CIFS) i przesłać pliki przez sieć.

    W tym przykładzie dane są kopiowane do udziału SMB hostowanego pod adresem 192.168.17.125. Ścieżka do udziału to \192.168.17.125share, a użytkownik user10 ma uprawnienia do zapisu.

  10. 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żesz skopiować niezbędną zawartość przechowywaną w pliku VMDK do udziału SMB przez sieć.

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

    cd /mnt/smb-share
    cp /mnt/win-disk-2/bootmgr

    Copying files from the mounted VMDK file

  14. Upewnij się, że niezbędne pliki zostały skopiowane, i sprawdź zawartość udziału SMB.
    ls -al /mnt/smb-share

Jako Jak widać na powyższym zrzucie ekranu, plik bootmgr został pomyślnie skopiowany. Jest to przykład pierwszej metody kopiowania danych z pliku VMDK w sytuacji, gdy system operacyjny na maszynie wirtualnej nie uruchamia się. To samo podejście można zastosować w programach VMware Player i VMware stacja robocza.

Metoda 2: Zamontowanie pliku VMDK jako dysku wirtualnego w sprawnej maszynie wirtualnej (ESXi/stacja robocza/Player)

Metoda ta jest podobna do poprzedniej, ale zamiast uruchamiać system z nośnika zewnętrznego, podłącza się plik VMDK do istniejącej maszyny wirtualnej z działającym systemem operacyjnym. Plik VMDK można dodać jako dodatkowy dysk wirtualny do maszyny wirtualnej działającej w środowisku VMware ESXi, VMware stacja robocza lub VMware Player.

Jeśli chcesz otworzyć plik VMDK z maszyny wirtualnej ESXi w programie VMware Workstation lub Player, skopiuj zarówno plik deskryptora, jak i plik rozszerzenia (vmdk oraz -flat.vmdk) na dysk lokalny dostępny dla hosta, na którym zainstalowano program Workstation lub Player. Jeśli źródłowa maszyna wirtualna posiada migawki, pamiętaj, aby oprócz plików dysku nadrzędnego skopiować również powiązane pliki VMDK typu delta (różnicowe).

Poniższe przykłady ilustrują to podejście:

  • Przykład 1: Otwórz plik VMDK jednej maszyny wirtualnej, podłączając go do innej maszyny wirtualnej na tym samym hoście ESXi.
  • Przykład 2: Wyodrębnij dane z pliku VMDK maszyny wirtualnej ESXi, podłączając go do maszyny wirtualnej działającej w stacji roboczej VMware Workstation.

Upewnij się, że system operacyjny sprawnej maszyny wirtualnej obsługuje systemy plików używane w podłączonym pliku VMDK. W przeciwnym razie partycje mogą być niedostępne.

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

  1. Wyłącz maszynę wirtualną, do której dysku wirtualnego chcesz uzyskać dostęp w celu wyodrębnienia plików.
  2. Zlokalizuj dysk wirtualny w magazynie danych ESXi.
  3. Skopiuj dysk wirtualny do innego katalogu w tym samym magazynie danych lub do innego magazynu danych, aby uniknąć problemów związanych z blokowaniem dysku. W tym przykładzie otwieramy plik VMDK o nazwie Win-test2.vmdk, który należy do maszyny wirtualnej z systemem Windows o nazwie Win-test2. Host ESXi jest zarządzany przez vCenter. Jeśli korzystasz z samodzielnego hosta ESXi bez vCenter, procedura jest taka sama; różni się jedynie interfejs użytkownika.
  4. Otwórz program VMware vSphere Client, przejdź do sekcji Magazyn danych i wybierz magazyn danych, w którym znajduje się wymagany plik VMDK. Wybierz plik VMDK i kliknij „Kopiuj do”.

    Uwaga: Jeśli korzystasz z samodzielnego hosta ESXi bez vCenter, otwórz VMware Host Client, wpisując adres IP hosta ESXi w przeglądarce internetowej. Następnie przejdź do sekcji „Magazyn” > [Datastore Name] > „Datastore Browser”, wybierz plik VMDK i kliknij „Copy”. Wybierz lokalizację docelową i potwierdź operację.

    Pliki można również skopiować, uzyskując bezpośredni dostęp do konsoli ESXi lub łącząc się przez SSH.

    Copying virtual disk and descriptor vmdk files

  5. W otwartym oknie wybierz lokalizację docelową. Plik VMDK można skopiować do lokalizacji w tym samym magazynie danych lub do innego magazynu danych. W tym przykładzie plik jest kopiowany do katalogu głównego tego samego magazynu danych. Kopiowane są zarówno plik deskryptora .vmdk , jak i plik -flat.vmdk .Selecting destination
  6. Podłącz plik VMDK do sprawnej maszyny wirtualnej z działającym systemem operacyjnym. W tym przykładzie wykorzystano maszynę wirtualną (WinServer2016) z systemem Windows Server 2016 na tym samym hoście ESXi. Dysk wirtualny można podłączyć podczas działania maszyny wirtualnej.

    W kliencie vSphere Client przejdź do sekcji Hosty i klastry, wybierz sprawną maszynę wirtualną, kliknij ją prawym przyciskiem myszy i wybierz opcję Edytuj ustawienia.

    Editing the settings of the healthy VM

  7. W wyświetlonym oknie kliknij Dodaj nowe urządzenie i wybierz opcję Istniejący dysk twardy.Adding a virtual disk to the healthy VM in vCenter
  8. Wybierz utworzoną wcześniej kopię pliku VMDK. W niniejszym przykładzie wybrano kopię pliku Win-test2.vmdk znajdującą się w katalogu głównym magazynu danych.Attaching a virtual disk to the ESXi VM
  9. Włącz sprawną maszynę wirtualną, do której podłączono dysk wirtualny, jeśli jeszcze nie działa. W tym przykładzie dysk wirtualny jest dodawany podczas działania maszyny wirtualnej z systemem Windows Server 2016 (dodawanie na gorąco).
  10. W gościnnym systemie operacyjnym Windows przejdź do Zarządzania komputerem > Zarządzanie dyskami (lub uruchom diskmgmt.msc w wierszu poleceń) i znajdź podłączony dysk wirtualny. Domyślnie nowy dysk jest w trybie offline. Kliknij dysk prawym przyciskiem myszy i wybierz opcję „Online”. Partycjom powinna zostać automatycznie przypisana litera dysku; jeśli tak się nie stało, kliknij partycję prawym przyciskiem myszy i wybierz opcję „Zmień literę dysku i ścieżki”.A virtual disk is attached and a partition is mounted successfully

Masz teraz pełny dostęp do odczytu i zapisu plików oraz katalogów w podłączonym pliku VMDK. Otwórz zamontowany dysk w Eksploratorze Windows i skopiuj potrzebne dane.

Można również usunąć niepotrzebne pliki (na przykład pliki związane ze złośliwym oprogramowaniem), ale należy postępować ostrożnie. Jeśli plik VMDK ma powiązane migawki, modyfikowanie lub usuwanie danych może wpłynąć na spójność migawek.

Browse vmdk file contents in Windows Explorer

Przykład 2: Montowanie dysku wirtualnego w maszynie wirtualnej działającej w programie VMware Workstation lub Player

Ten przykład jest podobny do poprzedniego, ale do otwarcia pliku VMDK maszyny wirtualnej ESXi wykorzystywana jest maszyna wirtualna działająca w programie VMware Workstation. Takie podejście jest przydatne, gdy w magazynie danych ESXi brakuje wolnego miejsca na utworzenie kopii dysku wirtualnego.

W takim przypadku dysk wirtualny wspomnianej wcześniej maszyny wirtualnej Win-test2 jest montowany w stacji roboczej VMware Workstation w celu wyodrębnienia zawartych na nim danych.

  1. W kliencie VMware vSphere Client przejdź do sekcji „Magazyn danych” > [Datastore name] > „Pliki”, wybierz plik VMDK i kliknij „Pobierz”.

    Jak wspomniano wcześniej, dysk wirtualny ESXi składa się z pliku deskryptora (.vmdk) oraz pliku zakresu (-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 vSphere Client opartego na HTML5 pliki te są automatycznie pakowane do jednego archiwum ZIP.

    Alternatywnie można włączyć dostęp SSH na hoście ESXi, przejść do katalogu magazynu danych i ręcznie skopiować oba pliki dyskowe na komputer za pomocą klienta SCP, takiego jak WinSCP.

    Uwaga: Podczas pobierania z alokacją dynamiczną dysku wirtualnego z magazynu danych VMFS wynikowy plik -flat.vmdk rozszerzy się do pełnego przydzielonego rozmiaru, podobnie jak w przypadku dysku z przydziałem grubym. Dzieje się tak, ponieważ przydział cienki jest realizowany na poziomie System plików VMFS .

    Downloading vmdk and descriptor files

    Teraz widać dwa pliki dysków wirtualnych ESXi pobrane jako archiwum ZIP. Rozmiar dysku z przydziałem typu „thin” w magazynie danych VMFS wynosi około 2 GB (patrz zrzut ekranu powyżej), podczas gdy ten sam dysk pobrany na stację roboczą zajmuje około 8 GB (patrz zrzut ekranu poniżej).

  2. Rozpakuj oba pliki z archiwum. Domyślnie są one rozpakowywane do katalogu o nazwie Win-test2.vmdk, która odpowiada nazwie archiwum bez rozszerzenia pliku.The downloaded zip archive
  3. W tym kroku potrzebna jest sprawna maszyna wirtualna z działającym systemem operacyjnym na komputerze, na którym zainstalowano program VMware Workstation lub VMware Player. W poprzednim przykładzie użyto maszyny wirtualnej z systemem Windows Server 2016; w tym przykładzie używana jest maszyna wirtualna z systemem Windows Server 2008. Procedura jest taka sama dla nowszych wersji systemu Windows.

    Otwórz program VMware Workstation lub VMware Player, wybierz sprawną maszynę wirtualną i edytuj jej ustawienia.

    Editing VM settings in VMware Workstation

  4. W zakładce „Sprzęt” kliknij przycisk „Dodaj”.Adding a virtual disk
  5. W kreatorze dodawania sprzętu wybierz jako typ sprzętu opcję „Dysk twardy”. Następnie wybierz typ dysku (możesz pozostawić wartość zalecaną). Na ekranie „Wybierz dysk” wybierz opcję „Użyj istniejącego dysku wirtualnego”.Add hardware wizard
  6. Wybierz plik vmdk (nie –flat.vmdk), który wyodrębniłeś z archiwum ZIP. Można wybrać plik z listy lub wprowadzić ścieżkę do pliku ręcznie.Selecting the VMDK file

    W tym przykładzie wykorzystano systemy ESXi 6.5 i VMware Workstation 15. Maszyna wirtualna w programie VMware Workstation z systemem Windows Server 2008 korzysta z wersji sprzętowej 12 (wersja maszyny wirtualnej 12), natomiast maszyna wirtualna w systemie ESXi, do której podłączany jest dysk wirtualny, korzysta z wersji maszyny wirtualnej 7. Procedura jest taka sama w przypadku nowszych wersji.

  7. Podczas próby podłączenia dysku wirtualnego w programie VMware Workstation pojawia się następujący komunikat o błędzie zgodności:

    Wybrany dysk wirtualny jest niezgodny z tą stacją roboczą Workstation 12.x. Dodanie tego dysku spowodowałoby, że ta stacja robocza stałaby się niezgodna ze starszymi produktami VMware.

    A compatibility error message

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

    Uwaga: Pamiętaj, że w przypadku maszyn wirtualnych VMware Workstation deskryptor dysku wirtualnego jest osadzony w pliku VMDK (w przeciwieństwie do dysków wirtualnych ESXi, które wykorzystują oddzielny plik deskryptora).

    Editing a virtual disk descriptor file

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

  8. Włącz maszynę wirtualną.
  9. Otwórz narzędzie Zarządzanie dyskami w systemie Windows, zmień stan dysku wirtualnego na „online”, przypisz literę dysku do partycji i przeglądaj pliki.A vmdk virtual disk has been attached
Wypróbuj NAKIVO Backup & Replication dla VMware vSphere

Wypróbuj NAKIVO Backup & Replication dla VMware vSphere

Rozpocznij 15-dniową bezpłatną wersję próbną, aby korzystać z bezagentowych, przyrostowych kopii zapasowych maszyn wirtualnych z opcjami natychmiastowego pełnego i szczegółowego odzyskiwania, ochrony przed oprogramowaniem wymuszającym okup i nie tylko.

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

Metody, które nie wymagają uruchamiania maszyny wirtualnej, oferują szereg praktycznych korzyści. W niektórych przypadkach hiperwizor nie jest w ogóle potrzebny. Zamiast tego można zamontować plik VMDK bezpośrednio w systemie operacyjnym hosta i szybko uzyskać dostęp do jego zawartości.

Metoda 1: Montowanie plików VMDK w systemie operacyjnym hosta za pomocą stacji roboczej VMware Workstation

Ta metoda wymaga VMware Workstation zainstalowania stacji roboczej VMware Workstation na hoście z systemem Windows lub Linux. Stacja robocza VMware Workstation zawiera funkcję, która pozwala na montowanie plików VMDK bezpośrednio w systemie operacyjnym hosta. Obsługiwane są dyski w formacie ESXi oraz dyski delta powiązane z migawkami. Podobnie jak w przypadku poprzednich metod, system operacyjny hosta musi obsługiwać systemy plików używane w partycjach dysków wirtualnych.

Podczas tworzenia migawek generowane są wirtualne dyski delta (różnicowe). Aby uzyskać dostęp do stanu maszyny wirtualnej z konkretnej migawki, muszą być dostępne zarówno dysk nadrzędny, jak i odpowiadające mu dyski delta. W takim przypadku należy zamontować odpowiedni dysk delta w systemie operacyjnym hosta. Zależności od dysku nadrzędnego są rozwiązywane automatycznie.

Jeśli migawki istnieją, ale chcesz zamontować dysk nadrzędny bezpośrednio, użyj trybu tylko do odczytu. Modyfikacja dysku macierzystego może spowodować uszkodzenie migawek lub klonów połączonych utworzonych na podstawie tej maszyny wirtualnej. Tryb tylko do odczytu uniemożliwia operacje zapisu po zamontowaniu dysku. Plik VMDK można zamontować tylko wtedy, gdy maszyna wirtualna, która z niego korzysta, jest wyłączona lub gdy żadna maszyna wirtualna nie korzysta aktywnie z tego dysku.

Poniższy przykład pokazuje, jak zamontować plik VMDK z maszyny wirtualnej VMware Workstation, która posiada migawki. W tym scenariuszu system Windows jest zainstalowany na pojedynczej partycji NTFS. Po utworzeniu pierwszej migawki w katalogu głównym dysku C: powstał plik o nazwie Snapshot1.txt. Po utworzeniu drugiej migawki powstał plik Snapshot2.txt. W pierwszym przykładzie wykorzystano system Linux, a w drugim — Windows. Wykorzystano pliki dysków wirtualnych starszej maszyny wirtualnej z systemem Windows XP, ale ta sama zasada ma zastosowanie do innych wersji systemu Windows.

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

  1. Otwórz program VMware Workstation dla systemu Linux i przejdź do menu Plik > Opcja „Zamontuj dyski wirtualne”.Opening VMware Workstation
  2. Kliknij przycisk „Zamontuj dysk”. W wyskakującym oknie kliknij przycisk „Przeglądaj” i wybierz plik VMDK.mount disk pop-up
  3. Wybierz plik VMDK drugiego dysku różnicowego (delta) utworzonego po wykonaniu drugiej migawki maszyny wirtualnej. W takich przypadkach nazwa pliku ma postać VM_name-000002.vmdk (na przykład WinXP-test-000002.vmdk).Selecting a vmdk file to mount
  4. Utwórz katalog w systemie plików Linuksa, który posłuży jako punkt montowania pliku VMDK. Utwórzmy katalog /mnt/vmdk/ w konsoli systemu Linux.
    mkdir /mnt/vmdk/
  5. Ustaw odpowiednie uprawnienia dla swojego użytkownika (w tym przykładzie nazwa użytkownika to user1, należący do grupy group1):
    chown -R user1:group1 /mnt/vmdk/
    chmod -R 0775 /mnt/vmdk/
  6. Teraz wybierz utworzony katalog jako katalog docelowy, zaznacz pole wyboru „Zamontuj w trybie tylko do odczytu” i kliknij przycisk Zamontuj.Ready to mount a VMDK file
  7. Możesz teraz otworzyć katalog /mnt/vmdk/ w eksploratorze plików systemu Linux i przeglądać pliki przechowywane na zamontowanym pliku VMDK. Widoczne są pliki „Migawka1.txt” i „Migawka2.txt”, utworzone po pierwszej i drugiej migawce w tym przykładzie. Każdy plik znajduje się na oddzielnym dysku delta VMDK.Browse vmdk file contents in Linux
  8. Nie zapomnij odmontować pliku VMDK z katalogu (punktu montowania) na hoście z systemem Linux po zakończeniu operacji.Unmount the vmdk file

W tym przykładzie plik VMDK został pomyślnie zamontowany i odmontowany w systemie Ubuntu 22.04 przy użyciu programu VMware Workstation 17.0.

Uwaga: System Ubuntu 24.04 wykorzystuje nowsze jądro systemu Linux (wersja 6.8 lub nowsza), co może wpływać na kompatybilność z zastrzeżonymi modułami jądra firmy VMware. W niektórych przypadkach może pojawić się błąd: „VMware-fuseUI nie odpowiada”.

Dzieje się tak, ponieważ montowanie pliku VMDK w systemie Linux opiera się na komponencie VMware, który integruje się z warstwą Filesystem in Userspace (FUSE). Jeśli wymagany moduł FUSE lub proces pomocniczy nie zainicjuje się poprawnie, interfejs montowania może przestać odpowiadać.

W przypadku wystąpienia problemów z kompatybilnością rozważ użycie obsługiwanej wersji jądra lub wcześniejszej wersji programu VMware Workstation. Śledź oficjalną dokumentację VMware w celu uzyskania aktualizacji dotyczących wsparcia dla montowania dysków.

Jeśli wolisz korzystać z interfejsu konsoli, możesz zamontować plik VMDK za pomocą następującego polecenia:

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

Gdzie:

vm_name to nazwa maszyny wirtualnej (taka sama jak nazwa katalogu VM). W tym przykładzie nazwą maszyny wirtualnej jest „WinXP-test”.

„vm_disk_name” to nazwa dysku wirtualnego (WinXP-test.vmdk w tym przykładzie).

vm_disk_name-000001.vmdk to pierwszy dysk różnicowy utworzony po wykonaniu pierwszej migawki maszyny wirtualnej (WinXP-test-000001.vmdk).

vm_disk_name-000002.vmdk to drugi dysk różnicowy utworzony po wykonaniu drugiej migawki (WinXP-test-000002.vmdk).

  1. Zamontuj dysk wirtualny. Domyślnie dysk wirtualny jest montowany w trybie odczytu/zapisu. Można użyć opcji -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świetlenie listy wszystkich zamontowanych plików VMDK:
    vmware-mount -L
  3. Przed zakończeniem pracy z zamontowanymi plikami VMDK należy odmontować wszystkie dyski wirtualne:
    vmware-mount -x

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

Proces montowania pliku VMDK w systemie Windows przebiega podobnie. W programie VMware Workstation można skorzystać z opcji Plik > Mapuj dyski wirtualne w graficznym interfejsie użytkownika (GUI). Alternatywnie można kliknąć prawym przyciskiem myszy plik VMDK w Eksploratorze Windows i wybrać opcję Mapuj dysk wirtualny z menu kontekstowego.

W tym przykładzie zamontowano plik VMDK pierwszego dysku delta (różnicowego) utworzonego po pierwszej migawce. Pliki takie mają następujący wzór nazewnictwa VM_name-000001.vmdk ( WinXP-test-000001.vmdk w tym przykładzie).

Uwaga: Funkcja montowania dysków wirtualnych jako napędów dyskowych w systemie Windows została usunięta w programie VMware Workstation 17.0 dla systemów operacyjnych Windows. Najnowszą wersją programu VMware Workstation dla systemu Windows, która obsługuje tę funkcję, jest wersja 16.1.2. Funkcja ta jest dostępna w najnowszej wersji programu VMware Workstation dla systemu Linux (wersja 17.5 i nowsze).

  1. Kliknij prawym przyciskiem myszy plik VMDK w Eksploratorze Windows i wybierz opcję „Map Virtual Disk” (Mapuj dysk wirtualny).map a vmdk file in Windows with VMware Workstation
  2. Wybierz odpowiednie parametry, aby zamontować plik VMDK. Zaleca się otwarcie dysku w trybie tylko do odczytu, aby zapobiec potencjalnemu uszkodzeniu dysków wirtualnych w łańcuchu migawek.

    Domyślnie litera dysku jest ustawiona na Z:, a dysk może zostać automatycznie otwarty w Eksploratorze Windows po zmapowaniu, jeśli zaznaczone jest odpowiednie pole wyboru. Kliknij „OK”, aby kontynuować.

    open vmdk by mapping a virtual disk

  3. Teraz dysk wirtualny jest zamontowany jako dysk Z: w systemie Windows i można odczytać jego zawartość. Na poniższym zrzucie ekranu widać plik Snapshot1.txt utworzony po wykonaniu pierwszej migawki. Plik Snapshot2.txt nie jest widoczny, ponieważ został utworzony po drugiej migawce, a zamontowany dysk delta odpowiada pierwszej migawce.Browse vmdk file contents on mapped Windows disk
  4. Po zakończeniu pracy z zamapowanym plikiem VMDK nie zapomnij odłączyć dysku. Kliknij prawym przyciskiem myszy odpowiedni plik VMDK i wybierz opcję „Odłącz dysk wirtualny”. Po odłączeniu dysku wirtualnego można włączyć maszynę wirtualną, która z niego korzysta.Disconnecting the virtual disk

Metoda 2: Wykorzystanie programu 7-Zip do wyodrębnienia zawartości z plików VMDK

Jeśli chcesz otworzyć plik VMDK bez uruchamiania maszyny wirtualnej, możesz użyć programu 7-Zip do wyodrębnienia danych z obrazu dysku wirtualnego. 7-Zip to darmowy program do archiwizacji plików, który umożliwia otwieranie i rozpakowywanie zawartości z różnych formatów archiwów oraz obrazów dysków. Działa zarówno w systemach Windows, jak i Linux.

7-Zip może otwierać pliki .vmdk oraz -flat.vmdk (w tym samodzielny plik -flat.vmdk w przypadku braku pliku deskryptora), co zazwyczaj dotyczy dysków w formacie ESXi. Jednak 7-Zip nie oferuje wsparcia dla otwierania plików VMDK typu delta (różnicowych) utworzonych na podstawie migawek maszyn wirtualnych.

Jak otworzyć pliki VMDK za pomocą programu 7-Zip w systemie Linux

  1. Zainstaluj pełną wersję programu 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ź pliki, których nazwy zawierają słowo „boot.”
    7z l /media/user1/vms/WinXP-test/WinXP-test.vmdk | grep boot[.]

    user1 to nazwa tego użytkownika systemu Linux, l – wyświetl listę.

    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 podobny sposób można wyodrębnić inne pliki i katalogi z pliku VMDK.

Jak otwierać pliki VMDK za pomocą programu 7-Zip w systemie 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.Opening a vmdk file with 7-Zip in Windows
  2. Na poniższym zrzucie ekranu zawartość samodzielnego pliku Win-test2-flat.vmdk jest wyświetlana w interfejsie graficznym programu 7-Zip. Możesz wyodrębnić potrzebną zawartość pliku VMDK.Browse vmdk file contents in 7-Zip

Możesz również obejrzeć ten film, aby dowiedzieć się, jak otwierać pliki VMDK w programie VMware i wyodrębniać dane z plików VMDK:

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

System Linux udostępnia zaawansowane narzędzia wiersza poleceń, które pozwalają na wykonywanie zaawansowanych operacji na dyskach bezpośrednio z konsoli. Te wbudowane narzędzia można wykorzystać do zamontowania plików VMDK i uzyskania dostępu do danych przechowywanych na dyskach wirtualnych. Poniższe przykłady dotyczą systemu Ubuntu Linux.

Metoda 1: Jak zamontować pliki VMDK przy użyciu /dev/loop

Urządzenia pętlowe to w systemie Linux pseudourządzenia, które umożliwiają dostęp do plików jako do urządzeń blokowych. Są one powszechnie używane do montowania obrazów dysków zawierających systemy plików. Urządzenia pętlowe mają nazwy w postaci /dev/loopX, gdzie X oznacza numer urządzenia. Ta metoda nadaje się do montowania plików -flat.vmdk , nawet gdy brakuje pliku deskryptora.

Poniższy przykład pokazuje, jak zamontować plik VMDK w systemie Linux w celu uzyskania dostępu do jego zawartości. W tym przypadku używany jest dysk wirtualny w formacie ESXi z jedną partycją, a plik deskryptora nie jest dostępny. Dysk pierwotnie zawierał instalację systemu Windows XP.

  1. Aby sprawdzić liczbę istniejących urządzeń pętlowych w systemie Linux, użyj jednego z dwóch poniższych poleceń.
    fdisk -l | grep /dev/loop
    df -h | grep /dev/loop
  2. W tym przypadku istnieją już urządzenia o numerach od 1 do 21 (/dev/loop1/dev/loop21). Utwórz urządzenie pętlowe o numerze 30, ponieważ jest ono wolne. Urządzenie to można powiązać z plikiem –flat.vmdk
    losetup /dev/loop30 /vms/Win-test2-flat.vmdk
  3. Ustaw przesunięcie:
    losetup -o 32256 /dev/loop31 /dev/loop30

    W tym przypadku 32256 to przesunięcie obliczone jako 63 × 512 dla dysków sformatowanych w systemach Windows XP, Windows Server 2003 i wcześniejszych wersjach. Liczba 63 oznacza sektor początkowy partycji, a 512 bajtów to rozmiar sektora. W przypadku systemów Windows 7, Windows Server 2008 i nowszych wersji należy użyć przesunięcia wynoszącego 105906176.

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

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

    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 programu parted wprowadź następujące polecenia:

    unit
    B
    print

    Checking VMDK file information

  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 powrotnej powiązane z obrazem VMDK:
    mount /dev/loop31 /mnt/vmdk-image
  6. Wyświetl zawartość zamontowanego obrazu:
    ls -al /mnt/vmdk-image
  7. Po zakończeniu odmontuj obraz VMDK i odłącz urządzenie pętlowe:
    umount /mnt/vmdk-image
    losetup -d /dev/loop31

    Using a loopback pseudo-device to mount a vmdk file

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

Kpartx to narzędzie, które umożliwia zamontowanie partycji zawartych 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 pozwala również na zamontowanie —flat.vmdk obrazów używanych na serwerach ESXi.

  1. Zainstaluj kpartx:
    apt-get install kpartx
  2. Dodaj mapowanie partycji dla obrazu VMDK w trybie pracy z szczegółowymi informacjami:
    kpartx -av /vms/Win-test2-flat.vmdk
  3. Zamontuj partycję do katalogu /mnt/vmdk-image :
    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ść partycji dysku wirtualnego:
    ls -al /mnt/vmdk-image/

    Using kpartx to mount vmdk images in Linux

  5. Po zakończeniu odmontuj obraz dysku wirtualnego VMDK.
    umount /mnt/vmdk-image
    kpartx -d /vms/Win-test2-flat.vmdk

Metoda 3: Korzystanie z urządzenia blokowego sieciowego QEMU (NBD)

Metoda ta wykorzystuje narzędzie QEMU do udostępnienia pliku VMDK jako standardowego urządzenia blokowego /dev/nbdN, które jądro systemu Linux może następnie zamontować natywnie. Aby skorzystać z tej metody, nie trzeba instalować programu VMware Workstation. Wymagane są uprawnienia administratora.

  1. Należy wyłączyć maszynę wirtualną, aby uniknąć uszkodzenia dysku wirtualnego.
  2. Zainstaluj pakiet narzędzi QEMU, który zawiera qemu-nbd.
    sudo apt install qemu-utils
  3. Załaduj moduł jądra Network Block Device:
    sudo modprobe nbd
  4. Przypisz plik VMDK do urządzenia Network Block Device, na przykład: /dev/nbd0. Użyj flagi -r, aby ustawić tryb tylko do odczytu.
    sudo qemu-nbd -r -c /dev/nbd0 /path/to/your/disk.vmdk

    W tym przykładzie polecenie brzmi:

    sudo qemu-nbd -r -c /dev/nbd0 /media/user1/data/vms/WinXP-test/WinXP-test.vmdk
  5. Zidentyfikuj partycje na zamontowanym dysku wirtualnym:
    sudo fdisk -l /dev/nbd0

    W wynikach powinieneś zobaczyć partycje takie jak /dev/nbd0p1, /dev/nbd0p2itp.

  6. Utwórz punkt montowania:
    sudo mkdir -p /mnt/vmdk

    W razie potrzeby ustaw uprawnienia dla konkretnego użytkownika.

  7. Zamontuj partycję. W tym przykładzie partycja 1 zawiera dane:
    sudo mount /dev/nbd0p1 /mnt/vmdk

    mount VMDK in Linux using qemu-utils

  8. Teraz możesz uzyskać dostęp do zawartości pliku VMDK pod adresem /mnt/vmdk/.
  9. Po zakończeniu odmontuj wolumin i odłącz urządzenie NBD:
    sudo umount /mnt/vmdk
    sudo qemu-nbd -d /dev/nbd0

Metoda 4: Użycie guestmount do zamontowania plików VMDK

guestmount to niezawodne narzędzie do uzyskiwania dostępu do zawartości plików VMDK w systemie Linux, ponieważ inteligentnie obsługuje strukturę dysku, w tym partycje i woluminy logiczne. Nie wymaga ręcznego obliczania przesunięcia, co jest konieczne w przypadku starszych narzędzi, takich jak /dev/loop. Aby skorzystać z tej metody, musisz posiadać uprawnienia administratora.

  1. Zainstaluj pakiet libguestfs-tools. Pakiet ten zawiera narzędzie guestmount.
    sudo apt install libguestfs-tools
  2. Wyłącz maszynę wirtualną, której dysk wirtualny chcesz zamontować.
  3. Utwórz katalog na hoście z systemem Linux, w którym będziesz uzyskiwać dostęp do zawartości dysku:
    mkdir /mnt/vmdk

    Uwaga: Jeśli chcesz uzyskać dostęp do zawartości plików VMDK jako zwykły użytkownik, a nie jako użytkownik główny, możesz wprowadzić dodatkowe konfiguracje.

    • Edytuj plik konfiguracyjny FUSE. Otwórz plik /etc/fuse.conf za pomocą edytora tekstowego z uprawnieniami administratora:sudo nano /etc/fuse.conf
    • Usuń znak # z początku wiersza #user_allow_other , aby aktywować tę opcję w pliku konfiguracyjnym. Wystarczy usunąć znak # na początku wiersza.
    • Zapisz zmiany i zamknij plik (zamknij edytor tekstowy).
    • Opcjonalnie możesz dodać swojego zwykłego użytkownika do grupy fuse:sudo usermod -aG fuse $USER
  4. Sprawdź plik VMDK. Przed zamontowaniem warto sprawdzić partycje wewnątrz pliku VMDK. Skorzystaj z narzędzia virt-filesystems:
    virt-filesystems -a /path/to/your/disk.vmdk

    W tym przypadku:

    virt-filesystems -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk

    W wynikach powinieneś zobaczyć partycje (/dev/sda1, /dev/sda2itp.) oraz ich systemy plików.

  5. Zamontuj plik VMDK za pomocą guestmount. Istnieją dwa główne sposoby korzystania z guestmount: automatyczna kontrola lub ręczne montowanie partycji. Skorzystajmy z ręcznego montowania partycji (dla konkretnych partycji)

    Jeśli potrzebujesz tylko jednej partycji, możesz ją wskazać bezpośrednio:

    sudo guestmount -a /path/to/your/disk.vmdk -m /dev/sdaN --ro /mount_point/

    W naszym przykładzie dokładne polecenie brzmi:

    sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro /mnt/vmdk/

    Jeśli chcesz uzyskać dostęp do zawartości zamontowanego pliku VMDK jako zwykły użytkownik i przeglądać pliki w graficznym interfejsie użytkownika systemu Linux, użyj polecenia:

    sudo guestmount -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdk -m /dev/sda1 --ro -o allow_other /mnt/vmdk/
  6. Teraz możesz przeglądać, poruszać się po plikach i kopiować je z pliku VMDK tak, jakby był to lokalny katalog w konsoli systemu Linux:
    ls -al /mnt/vmdk
  7. Po zakończeniu odmontuj dysk wirtualny:
    sudo guestunmount /mnt/vmdk/

Możesz skorzystać z alternatywnej metody FUSE”

sudo fusermount -u /mnt/vmdk/

Wnioski

Zrozumienie, jak otworzyć plik VMDK i wyodrębnić z niego dane, jest niezbędne w przypadku awarii maszyny wirtualnej lub utraty do niej dostępu. Znajomość wielu metod uzyskiwania dostępu do zawartości pliku VMDK zapewnia elastyczność, ponieważ każde z tych podejść może lepiej pasować do konkretnych sytuacji. Jednocześnie równie ważne jest utrzymywanie niezawodnych kopii zapasowych maszyn wirtualnych, aby zapewnić dostępność danych i uprościć proces odzyskiwania.

Wypróbuj NAKIVO Backup & Replication

Wypróbuj NAKIVO Backup & Replication

Skorzystaj z bezpłatnej wersji próbnej, aby zapoznać się ze wszystkimi funkcjami rozwiązania w zakresie ochrony danych. 15 dni za darmo. Bez żadnych ograniczeń dotyczących funkcji ani pojemności. Nie jest wymagana karta kredytowa.

People also read