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.

- KROK 1. Tworzenie maszyny wirtualnej KVM/QEMU
- KROK 2. Tworzenie migawki i usunięcie partycji LUKS2
- KROK 3. Podłączenie dysków i rozpoczęcie odzyskiwania
- KROK 4. Automatyczne wykrywanie partycji MD RAID 6 i LUKS2
- KROK 5. Analiza partycji LUKS2 i odzyskiwanie plików maszyny wirtualnej
- KROK 6. Montowanie dysków wirtualnych i migawek
- KROK 7. Porównanie stanów dysków i odzyskiwanie plików z migawki
- KROK 8. Wyszukiwanie danych według systemów plików dysków wirtualnych
- Podsumowanie
- Najczęściej zadawane pytania
- Komentarze
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.
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.

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.


Na dysku systemowym zainstalowano Windows 10. Dwa dodatkowe dyski sformatowano odpowiednio w systemach 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.

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.


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.

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.

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.

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.

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.

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.

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.

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

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.
Kliknij Montuj dysk.

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.

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.

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.

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.

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.

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

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.

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

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.

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.

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.







