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.
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.

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.

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.
- Prześlij obraz ISO do magazynu danych dostępnego dla hosta ESXi, na którym działa maszyna wirtualna.
- Otwórz program VMware vSphere Client, przejdź do sekcji „Hosty i klastry”, wybierz swoją maszynę wirtualną i kliknij „Edytuj ustawienia”.

- 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.
- 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).
- Uzyskaj uprawnienia administratora:
sudo -i - Wyświetl listę dostępnych urządzeń dyskowych:
ls -al /dev/sd*Istnieją dwie partycje –
/dev/sda1oraz/dev/sda2. - Utwórz katalogi, które posłużą jako punkty montowania dla każdej partycji:
mkdir /mnt/win-disk1 mkdir /mnt/win-disk2 - Zamontuj partycje dysku wirtualnego w odpowiednich katalogach:
mount /dev/sda1 /mnt/win-disk1/ mount /dev/sda2 /mnt/win-disk2/ - Następnie wyświetl listę plików i katalogów zamontowanych partycji:
ls -al /mnt/win-disk2/ ls -al /mnt/win-disk1/
Jak widać na powyższym zrzucie ekranu, partycja zamontowana w
/mnt/win-disk2jest 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.
- 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 - Następnie zamontuj udział SMB (CIFS) w tym katalogu:
mount -t cifs -o user=user10 //192.168.17.125/share /mnt/smb-share - Wprowadź hasło użytkownika.
- 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
- 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
- Wyłącz maszynę wirtualną, do której dysku wirtualnego chcesz uzyskać dostęp w celu wyodrębnienia plików.
- Zlokalizuj dysk wirtualny w magazynie danych ESXi.
- 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. - 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.

- 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.
- 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.

- W wyświetlonym oknie kliknij Dodaj nowe urządzenie i wybierz opcję Istniejący dysk twardy.

- Wybierz utworzoną wcześniej kopię pliku VMDK. W niniejszym przykładzie wybrano kopię pliku
Win-test2.vmdkznajdującą się w katalogu głównym magazynu danych.
- 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).
- W gościnnym systemie operacyjnym Windows przejdź do Zarządzania komputerem > Zarządzanie dyskami (lub uruchom
diskmgmt.mscw 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”.
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.

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.
- 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.vmdkrozszerzy 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 .
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).
- 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.
- 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.

- W zakładce „Sprzęt” kliknij przycisk „Dodaj”.

- 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”.

- 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.
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.
- 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.

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).

Po edycji pliku dysk wirtualny zostanie pomyślnie dodany do istniejącej maszyny wirtualnej.
- Włącz maszynę wirtualną.
- 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.

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
- Otwórz program VMware Workstation dla systemu Linux i przejdź do menu Plik > Opcja „Zamontuj dyski wirtualne”.

- Kliknij przycisk „Zamontuj dysk”. W wyskakującym oknie kliknij przycisk „Przeglądaj” i wybierz plik VMDK.

- 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ładWinXP-test-000002.vmdk).
- 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/ - 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/ - Teraz wybierz utworzony katalog jako katalog docelowy, zaznacz pole wyboru „Zamontuj w trybie tylko do odczytu” i kliknij przycisk Zamontuj.

- 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.
- Nie zapomnij odmontować pliku VMDK z katalogu (punktu montowania) na hoście z systemem Linux po zakończeniu operacji.

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).
- 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 - Wyświetlenie listy wszystkich zamontowanych plików VMDK:
vmware-mount -L - 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).
- Kliknij prawym przyciskiem myszy plik VMDK w Eksploratorze Windows i wybierz opcję „Map Virtual Disk” (Mapuj dysk wirtualny).

- 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ć.

- 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.

- 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.

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
- 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 - Wyświetl zawartość pliku VMDK za pomocą programu 7-Zip
7z l vm_name.vmdk - 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ę.

- Wyodrębnijmy (e) plik
boot.iniz 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
- 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.

- Na poniższym zrzucie ekranu zawartość samodzielnego pliku
Win-test2-flat.vmdkjest wyświetlana w interfejsie graficznym programu 7-Zip. Możesz wyodrębnić potrzebną zawartość pliku VMDK.
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.
- 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 - 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.vmdklosetup /dev/loop30 /vms/Win-test2-flat.vmdk - Ustaw przesunięcie:
losetup -o 32256 /dev/loop31 /dev/loop30W 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
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/loop30W konsoli programu parted wprowadź następujące polecenia:
unit B print
- Utwórz katalog, który będzie służył jako punkt montowania obrazu VMDK:
mkdir /mnt/vmdk-image - Zamontuj urządzenie pętli powrotnej powiązane z obrazem VMDK:
mount /dev/loop31 /mnt/vmdk-image - Wyświetl zawartość zamontowanego obrazu:
ls -al /mnt/vmdk-image - Po zakończeniu odmontuj obraz VMDK i odłącz urządzenie pętlowe:
umount /mnt/vmdk-image losetup -d /dev/loop31
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.
- Zainstaluj kpartx:
apt-get install kpartx - Dodaj mapowanie partycji dla obrazu VMDK w trybie pracy z szczegółowymi informacjami:
kpartx -av /vms/Win-test2-flat.vmdk - 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).
- Wyświetl zawartość partycji dysku wirtualnego:
ls -al /mnt/vmdk-image/
- 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.
- Należy wyłączyć maszynę wirtualną, aby uniknąć uszkodzenia dysku wirtualnego.
- Zainstaluj pakiet narzędzi QEMU, który zawiera qemu-nbd.
sudo apt install qemu-utils - Załaduj moduł jądra Network Block Device:
sudo modprobe nbd - 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.vmdkW tym przykładzie polecenie brzmi:
sudo qemu-nbd -r -c /dev/nbd0 /media/user1/data/vms/WinXP-test/WinXP-test.vmdk - Zidentyfikuj partycje na zamontowanym dysku wirtualnym:
sudo fdisk -l /dev/nbd0W wynikach powinieneś zobaczyć partycje takie jak
/dev/nbd0p1,/dev/nbd0p2itp. - Utwórz punkt montowania:
sudo mkdir -p /mnt/vmdkW razie potrzeby ustaw uprawnienia dla konkretnego użytkownika.
- Zamontuj partycję. W tym przykładzie partycja 1 zawiera dane:
sudo mount /dev/nbd0p1 /mnt/vmdk
- Teraz możesz uzyskać dostęp do zawartości pliku VMDK pod adresem
/mnt/vmdk/. - 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.
- Zainstaluj pakiet libguestfs-tools. Pakiet ten zawiera narzędzie guestmount.
sudo apt install libguestfs-tools - Wyłącz maszynę wirtualną, której dysk wirtualny chcesz zamontować.
- Utwórz katalog na hoście z systemem Linux, w którym będziesz uzyskiwać dostęp do zawartości dysku:
mkdir /mnt/vmdkUwaga: 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.confza 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
- Edytuj plik konfiguracyjny FUSE. Otwórz plik
- 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.vmdkW tym przypadku:
virt-filesystems -a /media/user1/data/vms/WinXP-test/WinXP-test.vmdkW wynikach powinieneś zobaczyć partycje (
/dev/sda1,/dev/sda2itp.) oraz ich systemy plików. - 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/ - 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 - 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.