Jak odzyskać dyski wirtualne i migawki KVM/QEMU z LUKS2 RAID 6

Ten artykuł analizuje odzyskiwanie wirtualnych dysków i migawek KVM/QEMU z systemu pamięci masowej opartego na LUKS2 i RAID 6. Uwzględniono ustalenie prawidłowej sekwencji odzyskiwania, bezpieczną pracę z obrazami dysków fizycznych, odbudowę macierzy RAID, odblokowanie zaszyfrowanego kontenera, lokalizację obrazów QCOW2/RAW, analizę łańcucha backing oraz przywracanie dostępu do danych maszyny wirtualnej bez modyfikowania oryginalnego nośnika.

Jak odzyskać dyski wirtualne i migawki KVM/QEMU z LUKS2 RAID 6

W nowoczesnych środowiskach serwerowych wirtualizacja oparta na KVM/QEMU jest często używana razem z programowymi macierzami RAID oraz szyfrowaniem dysków. Taka architektura łączy wydajność, odporność na awarie i ochronę danych, ale jednocześnie znacząco komplikuje odzyskiwanie danych, gdy uszkodzeniu ulegną dyski, metadane RAID, kontener LUKS2, system plików lub łańcuch migawek maszyny wirtualnej.

Szczególnie trudne są przypadki, w których wirtualne dyski KVM/QEMU w formatach QCOW2, RAW lub innych zgodnych formatach są przechowywane wewnątrz zaszyfrowanego woluminu LUKS2 zbudowanego na bazie RAID 6. W takiej konfiguracji dostęp do danych zależy jednocześnie od kilku poziomów: dysków fizycznych, struktury macierzy RAID, integralności metadanych LUKS2, systemu plików oraz wewnętrznej struktury dysków wirtualnych.

Dodatkową złożoność wprowadzają migawki QEMU/KVM. Mogą one tworzyć łańcuch zależnych plików QCOW2, w którym każdy kolejny obraz zawiera wyłącznie zmienione bloki i odwołuje się do dysku bazowego lub poprzedniej migawki. Utrata jednego elementu takiego łańcucha, uszkodzenie pliku backing lub nieprawidłowe określenie kolejności może uniemożliwić uruchomienie maszyny wirtualnej, nawet jeśli większość danych nadal fizycznie znajduje się na dyskach.

Przejdź do widoku
Jak odzyskać usuniętą bazę MySQL z RAID 6 + LUKS2 (Ubuntu)

Jak odzyskać usuniętą bazę MySQL z RAID 6 + LUKS2 (Ubuntu)

KROK 1. Tworzenie maszyny wirtualnej KVM/QEMU

Do testu zainstalowano Ubuntu Server 24.04 i użyto Cockpit do utworzenia programowej macierzy Linux MD RAID 6 z czterech dysków.

Na macierzy RAID utworzono trzy partycje. Każdą zaszyfrowano przy użyciu LUKS2, a wewnątrz zaszyfrowanych kontenerów utworzono systemy plików Ext4. Trzecia partycja została użyta do przechowywania maszyny wirtualnej.

Programowa macierz Linux MD RAID 6 zbudowana z czterech dysków

Serwer działał z hipernadzorcą KVM/QEMU. Za pomocą Cockpit utworzono osobną pulę pamięci masowej dla maszyny wirtualnej na trzeciej partycji — raid6-vm-images. Pliki maszyny wirtualnej były przechowywane w katalogu vm-images.

Dla maszyny wirtualnej utworzono systemowy dysk QCOW2 o pojemności 32 gigabajtów, a także dwa dodatkowe dyski: dysk QCOW2 o pojemności 2 gigabajtów oraz dysk IMG o pojemności 1 gigabajta.

Systemowy dysk QCOW2 o pojemności 32 gigabajtów
Dwa dodatkowe dyski: dysk QCOW2 o pojemności 2 gigabajtów oraz dysk IMG o pojemności 1 gigabajta

Na dysku systemowym zainstalowano Windows 10. Dwa dodatkowe dyski sformatowano odpowiednio w systemach plików NTFS i FAT32.

Dwa dodatkowe dyski wewnątrz Windows sformatowano jako systemy plików NTFS i FAT32

KROK 2. Tworzenie migawki i usunięcie partycji LUKS2

Skopiowaliśmy początkowy zestaw plików na dysk systemowy i dwa dodatkowe dyski, a następnie utworzyliśmy migawkę zewnętrzną. Po tym dodaliśmy kolejny folder z plikami i usunęliśmy część z nich.

Tworzenie migawki i usunięcie partycji LUKS2

Po zakończeniu zmian testowych maszynę wirtualną wyłączono. Następnie folder vm-images zawierający obrazy dysków bazowych, pliki migawki zewnętrznej oraz plik stanu pamięci skopiowano na drugą partycję LUKS2 macierzy RAID.

Aby zasymulować utratę danych, użyto Cockpit do usunięcia tej partycji z tablicy partycji. W rezultacie jej obszar stał się nieprzydzielony. Nie formatowano go ani nie zapisywano na nim nowych danych, aby zachować możliwość późniejszego odzyskania.

Za pomocą Cockpit usunięto partycję z tablicy partycji
Partycja została usunięta z tablicy partycji za pomocą Cockpit

KROK 3. Podłączenie dysków i rozpoczęcie odzyskiwania

Po usunięciu partycji wyłączyliśmy serwer i odłączyliśmy dyski macierzy RAID. Do komputera z systemem Windows 11 przez stację dokującą USB podłączono tylko dwa z czterech dysków.

Jeżeli system Windows po podłączeniu zaproponuje zainicjowanie lub sformatowanie dysków, należy kliknąć przycisk Anuluj. Nie zapisuj na nich nowych danych i nie uruchamiaj sprawdzania błędów ani operacji naprawy, ponieważ może to pogorszyć wynik odzyskiwania.

Można także pracować z dyskami w inny sposób. Na przykład podłączyć je zdalnie do oprogramowania przez SSH albo zamontować wcześniej utworzone obrazy, jeśli nie chcesz pracować bezpośrednio z oryginalnymi dyskami.

System Windows wyświetla monit o zainicjowanie lub sformatowanie dysków

KROK 4. Automatyczne wykrywanie partycji MD RAID 6 i LUKS2

Bezpośrednio po uruchomieniu program Hetman RAID Recovery odczytał informacje serwisowe z dwóch podłączonych dysków.

Do odzyskiwania danych z uszkodzonych macierzy RAID, urządzeń NAS i innych wielodyskowych systemów pamięci masowej.
Hetman RAID Recovery: automatyczne wykrywanie partycji MD RAID 6 i LUKS2

RAID 6 pozwala na brak maksymalnie dwóch dysków. Ponieważ oba dostępne dyski były sprawne, a informacje serwisowe były nienaruszone, program automatycznie odbudował MD RAID 6. Dwa brakujące dyski zostały oznaczone jako Empty disk, a macierz otrzymała stan Recoverable.

Hetman RAID Recovery: program automatycznie odbudował MD RAID 6

Właściwości pokazują układ Left Synchronous P+Q, rozmiar bloku 512 KB, a także pozycje dysków, offsety i rozmiary.

Program znalazł na macierzy trzy obszary z szyfrowaniem LUKS2. Pierwsza i trzecia partycja pozostały na miejscu, a usunięta druga jest widoczna jako nieprzydzielona przestrzeń oznaczona LUKS.

KROK 5. Analiza partycji LUKS2 i odzyskiwanie plików maszyny wirtualnej

Dwukrotnie kliknij nieprzydzielony obszar oznaczony LUKS. Program poprosi o podanie hasła lub wybranie pliku klucza.

Hetman RAID Recovery: analiza partycji LUKS2 i odzyskiwanie plików maszyny wirtualnej

Po odblokowaniu dostępny stanie się system plików Ext4. Następnie wybierz tryb analizy.

Zalecamy rozpoczęcie od Szybkiego skanowania. Jeśli szybkie skanowanie nie znajdzie wymaganych danych, uruchom Pełną analizę i wskaż system plików Ext2/3/4.

Hetman RAID Recovery: szybkie skanowanie

W naszym przypadku szybkie skanowanie było wystarczające. Program odtworzył strukturę usuniętej partycji i znalazł folder vm-images, który zawierał dysk systemowy i dodatkowe dyski wirtualne, a także ich pliki migawki.

Hetman RAID Recovery: program znalazł folder vm-images

Należy pamiętać, że konfiguracja maszyny wirtualnej jest przechowywana oddzielnie od jej dysków — zwykle w katalogu /etc/libvirt/qemu. Jeśli plik konfiguracyjny XML zostanie utracony, dane z dysków wirtualnych nadal można odzyskać, ale konfigurację maszyny trzeba będzie odtworzyć, aby ponownie uruchomić VM.

Hetman RAID Recovery: zawartość folderu vm-images

Wybierz folder zawierający dyski wirtualne i pliki migawek, a następnie kliknij Odzyskiwanie.

Hetman RAID Recovery: odzyskiwanie folderu vm-images

Zalecamy odzyskanie całego folderu, aby obrazy bazowe i powiązane z nimi migawki pozostały razem.

Wybierz do zapisu inny dysk fizyczny. Nie odzyskuj plików z powrotem na oryginalną macierz RAID, ponieważ może to nadpisać dane, które nadal można odzyskać.

KROK 6. Montowanie dysków wirtualnych i migawek

Jeśli potrzebujesz dostępu do danych wewnątrz dysków wirtualnych lub migawek, a także lokalizacji i odzyskiwania usuniętych plików, możesz wykonać to bezpośrednio w naszym programie.

Do odzyskiwania danych z uszkodzonych macierzy RAID, urządzeń NAS i innych wielodyskowych systemów pamięci masowej.

Kliknij Montuj dysk.

Hetman RAID Recovery: montowanie obrazu dysku

W oknie Typ obrazu dysku, w sekcji Virtual Machine Disk Images, wybierz QEMU, ponieważ w naszym teście maszyna wirtualna i jej dyski zostały utworzone na podstawie KVM/QEMU. Jeśli obrazy zostały utworzone w innym środowisku wirtualizacji, wybierz z listy odpowiedni typ dysku. Następnie kliknij Dalej.

Hetman RAID Recovery: w sekcji Virtual Machine Disk Images wybierz QEMU

W następnym kroku wskaż nie pojedynczy plik obrazu, lecz folder, w którym odzyskaliśmy wszystkie pliki maszyny wirtualnej. Ważne jest, aby dyski bazowe i powiązane z nimi migawki były przechowywane razem i zachowały oryginalne nazwy.

Hetman RAID Recovery: wskaż folder, w którym odzyskano wszystkie pliki maszyny wirtualnej

Program przeanalizuje zawartość folderu, określi relacje między plikami i automatycznie pogrupuje dyski bazowe z odpowiadającymi im migawkami. Jeśli dla jednego dysku utworzono wiele migawek, program uporządkuje je we właściwej kolejności. Najnowszy stan każdego łańcucha zostanie oznaczony jako Active. Wybierz wymagane dyski i ich stany, a następnie kliknij Dalej.

Hetman RAID Recovery: relacje między plikami i grupami dysków bazowych z odpowiadającymi migawkami

Po zamontowaniu pojawią się w sekcji Mounted Disks jako oddzielne dyski. Na ekranie głównym etykieta Active nie jest już wyświetlana, więc dysk bazowy i jego migawki można rozróżnić po nazwach odpowiednich plików.

Hetman RAID Recovery: Mounted Disks jako oddzielne dyski

KROK 7. Porównanie stanów dysków i odzyskiwanie plików z migawki

Aby porównać obraz dysku bazowego i jego migawkę, należy przeanalizować oba zamontowane dyski. Kliknij dwukrotnie każdy z nich i najpierw uruchom Szybkie skanowanie.

Jeśli szybkie skanowanie nie znajdzie wymaganych danych, wykonaj Pełną analizę. Podczas pełnej analizy należy wskazać system plików używany wewnątrz dysku wirtualnego.

Obraz bazowy zachowuje poprzedni stan systemu plików.

Hetman RAID Recovery: odzyskano poprzedni stan systemu plików

Na dysku zamontowanym z migawki widoczne są późniejsze zmiany: dodany folder oraz usunięte z niego pliki, które program oznacza symbolem X.

Hetman RAID Recovery: odzyskano poprzedni stan systemu plików migawki

Ponieważ te pliki zostały zapisane po utworzeniu poprzedniego stanu dysku, należy je znaleźć i odzyskać z zamontowanej migawki.

Przejrzyj znalezione pliki w oknie podglądu, które obsługuje wiele popularnych formatów. Można tu wyświetlić zawartość dokumentów, listy plików w archiwach, obrazy, wideo i inne dane. Podgląd można rozwinąć do trybu pełnoekranowego, co jest szczególnie wygodne przy przeglądaniu obrazów i nagrań wideo.

Po potwierdzeniu, że wybrane są wymagane pliki, zaznacz je i kliknij Odzyskiwanie. Zapisz odzyskane dane na innym dysku fizycznym.

Hetman RAID Recovery: odzyskiwanie plików z migawki

KROK 8. Wyszukiwanie danych według systemów plików dysków wirtualnych

Jeśli wymagane obrazy dysków wirtualnych nie zostały znalezione lub nie można ich było zamontować, możesz spróbować odzyskać dane bezpośrednio na podstawie systemów plików używanych wewnątrz tych dysków.

Aby to zrobić, wybierz odblokowaną partycję RAID, uruchom kreator odzyskiwania i wybierz Pełną analizę.

Hetman RAID Recovery: wyszukiwanie danych według systemów plików dysków wirtualnych

Podczas konfiguracji analizy zamiast rzeczywiście używanego na tej partycji systemu plików Ext4, służącego do przechowywania plików dysków wirtualnych, wskaż systemy plików znajdujące się bezpośrednio wewnątrz samych dysków wirtualnych. W naszym przypadku są to FAT32 i NTFS, więc do wyszukiwania wybieramy FAT i NTFS.

Hetman RAID Recovery: pełna analiza według systemu plików dysku

Ta metoda jest najbardziej skuteczna w przypadku dysków wirtualnych, w których cała przestrzeń została wcześniej przydzielona z góry. W takim przypadku dane dysku wirtualnego są fizycznie obecne wewnątrz pliku obrazu, a program może odnaleźć i przeanalizować zapisany w nim system plików nawet wtedy, gdy sam plik obrazu został uszkodzony lub utracony.

W przypadku dysków wirtualnych thin-provisioned takie podejście zwykle nie umożliwia pełnego odzyskania dysku. W takich obrazach fizycznie przechowywane są tylko bloki, do których dane zostały już zapisane, natomiast niewykorzystana przestrzeń nie jest przydzielana z góry. W związku z tym bez struktury samego obrazu poszczególne bloki dysku wirtualnego mogą być rozproszone, a prawidłowe odtworzenie całego systemu plików jest znacznie trudniejsze.

Po zakończeniu analizy przejrzyj znalezione partycje i pliki.

Hetman RAID Recovery: znalezione partycje i pliki

Ta metoda może pomóc odzyskać pojedyncze dane, a nawet system plików z dysku przydzielonego z góry, ale sam plik obrazu oraz jego relacje z migawkami nie są w ten sposób odzyskiwane.

Podsumowanie

W rezultacie program Hetman RAID Recovery automatycznie złożył Linux MD RAID 6 z dwóch dostępnych dysków, odnalazł usuniętą partycję LUKS2, odblokował ją i przywrócił folder z obrazami dysków oraz migawkami maszyny wirtualnej.

Po zamontowaniu mogliśmy porównać stan dysku przed utworzeniem migawki i po jej utworzeniu, zlokalizować wymagane dane oraz odzyskać później usunięte pliki. Ważne jest, aby przechowywać wszystkie powiązane obrazy i migawki razem, nie zmieniać ich nazw oraz odzyskiwać dane wyłącznie na inny dysk fizyczny.

Oksana Volyniuk

Autor: , Pisarz techniczny

Oksana Volyniuk jest autorem pracującym w Hetman Software. Ma prawie trzyletnie doświadczenie w zakresie technologii IT, a wcześniej pracowała jako HR menedżer w IT kompanii. Oksana kocha technologię i jest zapalona tworzeniem każdego aktykułu, który może pomóć ludziom.

Michał Mirosznyczenko

Redaktor: , Pisarz techniczny

Michał Mirosznyczenko jest jednym z czołowych programistów firmy Hetman Software. Bazując na piętnastoletnim doświadczeniu w tworzeniu oprogramowania, dzieli się swoją wiedzą z czytelnikami naszego bloga. Oprócz programowania Michał jest ekspertem w dziedzinie odzyskiwania danych, systemów plików, urządzeń do przechowywania danych i macierzy RAID.

Rekomendujemy