Jak odzyskać dane z Linux MD RAID 6 z szyfrowaniem LUKS i fscrypt
Odzyskiwanie danych z Linux MD RAID 6, dodatkowo chronionych szyfrowaniem LUKS i fscrypt, jest złożonym procesem wielowarstwowym, w którym istotne jest prawidłowe określenie stanu macierzy RAID, kolejności podłączenia dysków oraz warstw szyfrowania. Błąd na dowolnym etapie, od nieprawidłowego złożenia macierzy po próbę montowania uszkodzonego systemu plików, może znacząco utrudnić dalsze odzyskiwanie. W artykule opisano bezpieczne podejście do diagnozowania i rekonstruowania RAID 6, otwierania kontenera LUKS oraz dalszej pracy z danymi chronionymi przez fscrypt.

- Konfiguracja RAID, LUKS2 i fscrypt
- Podłączanie dysków macierzy RAID
- Jak odzyskać dane z Linux RAID 6
- Wnioski
- Najczęściej zadawane pytania
- Komentarze
Specyfika takiej konfiguracji polega na tym, że dane przechodzą jednocześnie przez kilka warstw abstrakcji. Najpierw dyski fizyczne są łączone w macierz RAID 6 za pomocą Linux MD; następnie wynikowa macierz może zawierać zaszyfrowany kontener LUKS; a wewnątrz systemu plików poszczególne katalogi lub pliki mogą być dodatkowo chronione przy użyciu fscrypt. Z tego powodu nawet w pełni sprawne dyski i poprawnie złożony RAID nie gwarantują jeszcze dostępu do wymaganych danych.
Podczas procesu odzyskiwania kluczowe jest zachowanie właściwej kolejności działań. Przed jakąkolwiek próbą zapisu na dyskach należy ocenić ich stan, określić parametry macierzy RAID, sprawdzić metadane oraz, jeśli to możliwe, utworzyć kopie binarne problematycznych dysków. Szczególnie niebezpieczne są automatyczne odbudowy macierzy, sprawdzanie systemu plików z korekcją błędów oraz ponowna inicjalizacja kontenera LUKS — działania te mogą zmienić struktury wymagane do dalszego odzyskiwania.
Szyfrowanie wprowadza dodatkową warstwę złożoności. W przypadku LUKS konieczne jest zachowanie dostępu do nagłówka kontenera, slotów kluczy oraz odpowiednich haseł lub plików kluczy. W przypadku fscrypt sam dostęp do systemu plików może nie wystarczyć: odszyfrowanie określonych katalogów wymaga odpowiednich kluczy i metadanych polityki szyfrowania. Jeśli choć jeden z tych elementów zostanie utracony, możliwości odzyskiwania mogą zostać istotnie ograniczone.
Następnie przeanalizujemy procedurę pracy z takim systemem: od diagnozowania dysków fizycznych i ręcznego składania Linux MD RAID 6 w trybie minimalizującym ryzyko zapisu, po otwarcie kontenera LUKS, sprawdzenie systemu plików oraz przywrócenie dostępu do danych chronionych przez fscrypt. Główna zasada na każdym etapie polega na tym, aby najpierw zachować jak najwięcej oryginalnych informacji, a dopiero potem przechodzić do prób odzyskiwania.
Jak odzyskać dane z Linux RAID 6 z szyfrowaniem LUKS2 i fscrypt? Brakujące dyski i usunięte pliki
| Poziom / technologia | Przeznaczenie | Główna cecha | Co ma znaczenie podczas odzyskiwania |
|---|---|---|---|
| Linux MD RAID 6 | Łączy wiele dysków w odporną na awarie macierz | Wykorzystuje podwójną parzystość i toleruje awarię do dwóch dysków | Ważne jest prawidłowe określenie kolejności dysków, parametrów macierzy, UUID oraz stanu metadanych; automatycznej odbudowy nie należy rozpoczynać bez wcześniejszej analizy |
| LUKS | Szyfrowanie całego dysku lub na poziomie bloków | Szyfruje cały wolumin logiczny lub kontener | Dostęp wymaga prawidłowego nagłówka LUKS oraz hasła lub klucza; uszkodzenie nagłówka może uniemożliwić dostęp do danych nawet przy sprawnym RAID |
| System plików | Przechowuje katalogi, pliki i metadane | Znajduje się wewnątrz odblokowanego kontenera LUKS | Zaleca się pracę na kopii przed naprawą błędów; automatyczne operacje naprawcze mogą zmienić istotne struktury |
| fscrypt | Szyfruje poszczególne katalogi lub pliki | Działa na poziomie systemu plików i może chronić tylko wybrane dane | Wymagane są odpowiednie klucze, zasady szyfrowania i metadane; odblokowanie LUKS nie daje automatycznie dostępu do danych chronionych przez fscrypt |
| Klucze i metadane | Zapewniają dostęp do zaszyfrowanych informacji | Klucze mogą być przechowywane oddzielnie od samych danych | Utrata hasła, pliku klucza, kopii zapasowej nagłówka LUKS lub kluczy fscrypt może krytycznie ograniczyć możliwości odzyskiwania |
| Kolejność warstw | Określa kolejność dostępu do danych | Typowy schemat: dyski → MD RAID 6 → LUKS → system plików → fscrypt → pliki | Odzyskiwanie należy przeprowadzać w tej samej kolejności, od niższego do wyższego poziomu |
| Ryzyko zapisu | Wpływa na zachowanie danych źródłowych | Każda odbudowa, montowanie z możliwością zapisu lub operacja naprawcza może zmienić struktury | Zaleca się najpierw utworzyć obrazy dysków i pracować w trybie tylko do odczytu |
| Złożoność diagnostyczna | Określa liczbę potencjalnych punktów awarii | Problem może występować na poziomie dysku, RAID, LUKS, systemu plików lub fscrypt | Usterkę należy izolować krok po kroku, bez mieszania problemów z różnych warstw |
Konfiguracja RAID, LUKS2 i fscrypt
Do testów Hetman RAID Recovery przygotowano serwer Dell PowerEdge R710 z kontrolerem RAID PERC H700 oraz zainstalowanym systemem Ubuntu Server 24.04 LTS.
Z czterech dysków HDD o pojemności 60 GB utworzono programową macierz Linux MD RAID 6 o łącznej pojemności około 120 GB przy użyciu narzędzia mdadm. Rozmiar chunk wynosił 512 KB (w programie Hetman RAID Recovery ten parametr jest wyświetlany jako rozmiar bloku).

Na macierzy skonfigurowano zaszyfrowany wolumin LUKS2, a wewnątrz niego utworzono system plików EXT4. Dodatkowy folder na tej partycji został zaszyfrowany za pomocą fscrypt przy użyciu własnego hasła.

Po przygotowaniu pamięci masowej zapisano pliki testowe, a następnie usunięto część zwykłych danych z EXT4 oraz część plików z katalogu chronionego przez fscrypt.
Podłączanie dysków macierzy RAID
METODA 1. Podłączanie dysków fizycznych.
Dyski macierzy RAID można podłączyć przez:
- SATA;
- SAS;
- Fibre Channel;
- HBA;
- kontroler RAID.
Ważne jest jednak, aby kontroler zapewniał programowi dostęp do każdego dysku fizycznego oddzielnie.
Można również użyć:
- adapterów USB;
- stacji dokujących;
- obudów zewnętrznych.
Do długotrwałej analizy lepiej użyć bezpośredniego połączenia przez SATA, SAS, HBA lub odpowiedni kontroler — zwykle jest ono szybsze i bardziej stabilne.

Podłączenie wszystkich dysków macierzy nie zawsze jest konieczne. Hetman RAID Recovery uwzględni brakujące dyski i będzie w stanie odtworzyć ich dane, jeśli poziom RAID na to pozwala, a pozostałe sprawne dyski są wystarczające do odbudowy macierzy. Na przykład RAID 5 dopuszcza brak jednego dysku, a RAID 6 — dwóch.
Po podłączeniu dysków system Windows może wyświetlić monit o ich zainicjalizowanie lub sformatowanie. Nie należy wyrażać zgody — zamknij to okno, aby uniknąć zmiany danych RAID i informacji serwisowych.
METODA 2. Praca z obrazami dysków
Praca z obrazami jest przydatna, jeśli brakuje portów do jednoczesnego podłączenia wszystkich dysków lub jeśli dyski mają słabe wskaźniki SMART, błędy odczytu bądź niestabilne działanie.
Aby utworzyć obraz w Hetman RAID Recovery, wybierz odpowiedni dysk fizyczny w głównym oknie programu i kliknij Zapisz dysk.

W kreatorze zapisu wybierz utworzenie obrazu całego dysku, wskaż folder i nazwę pliku, a następnie rozpocznij kopiowanie.
Najlepiej zapisać obraz na innym sprawnym dysku z wystarczającą ilością wolnego miejsca.
Do dalszej pracy kliknij Zamontuj dysk – obrazy dysków RAW. Wybierz utworzone pliki obrazu i dodaj je do programu.

Następnie Hetman RAID Recovery będzie pracować z nimi tak samo jak z обычnymi dyskami fizycznymi i będzie mogło użyć ich do automatycznej lub ręcznej rekonstrukcji RAID.

METODA 3. Podłączanie dysków przez SSH
Jeśli serwer Linux pozostaje dostępny w sieci, dyski można dodać zdalnie przez Narzędzia – Połącz przez SSH.

Określ adres serwera, port i dane uwierzytelniające, a następnie wybierz wymagane dyski fizyczne lub woluminy. Zostaną one dodane do Hetman RAID Recovery i będą dostępne do analizy oraz rekonstrukcji RAID bez fizycznego podłączenia do komputera.

Jak odzyskać dane z Linux RAID 6
KROK 1. Automatyczne wykrywanie macierzy RAID
Po uruchomieniu Hetman RAID Recovery program automatycznie analizuje dostępne dyski i wyszukuje na nich oznaki macierzy RAID. Jeśli wymagane dyski są już podłączone do komputera, odnaleziona macierz jest wyświetlana w sekcji Macierze RAID bezpośrednio po uruchomieniu.
Jeśli dyski zostaną dodane później — podłączone fizycznie, zamontowane z obrazów lub dodane przez SSH — program ponownie analizuje dostępne elementy macierzy RAID i, jeśli dostępnych jest wystarczająco dużo informacji, automatycznie rekonstruuje macierz.

Dla wykrytego RAID Hetman RAID Recovery wyświetla jego główne parametry:
- typ i pojemność macierzy;
- rozmiar sektora i bloku;
- schemat rozmieszczenia danych;
- stan RAID;
- listę dysków składowych, ich kolejność i przesunięcia.

W naszym przypadku program automatycznie wykrył Linux MD RAID 6 o pojemności około 118 GB i wyświetlił go jako gotowy do dalszej analizy. Szczegółowe parametry macierzy omówimy później podczas ręcznej rekonstrukcji.
Jeśli niektóre dyski są niedostępne, program wyświetla je jako Pusty dysk i określa, czy dostępne nośniki są wystarczające do rekonstrukcji. W naszym teście nawet przy braku dwóch z czterech dysków RAID 6 macierz ma status Możliwe do odzyskania i pozostaje dostępna do analizy oraz odzyskiwania danych.
KROK 2. Analiza RAID i odszyfrowywanie danych
Aby rozpocząć wyszukiwanie danych, należy dwukrotnie kliknąć odnalezioną macierz lub partycję RAID. Jeśli Hetman RAID Recovery wykryje, że wolumin jest zaszyfrowany przy użyciu LUKS, program natychmiast poprosi o podanie hasła lub wskazanie pliku klucza.

Do odszyfrowania wymagane jest prawidłowe hasło lub klucz, a także nienaruszone dane serwisowe LUKS.
Po odblokowaniu LUKS wybierz typ analizy. Najpierw można uruchomić Szybkie skanowanie — często jest to wystarczające, jeśli struktura partycji i system plików nie zostały uszkodzone, a potrzebne jest jedynie odnalezienie ostatnio usuniętych plików.

Jeśli na dysku wykonano jakiekolwiek operacje destrukcyjne — usuwanie lub tworzenie partycji, formatowanie, zmiany systemu plików, uszkodzenie tablicy partycji lub inne operacje, które mogły zmienić strukturę danych — zaleca się użycie Pełnej analizy. Podczas pełnej analizy należy wskazać system plików używany na macierzy. W naszym przypadku jest to Ext2/3/4.
Jeśli podczas analizy program wykryje dane zaszyfrowane za pomocą fscrypt, poprosi o podanie odpowiedniego hasła. Po odszyfrowaniu można kontynuować wyszukiwanie zarówno istniejących, jak i usuniętych plików.

KROK 3. Przeglądanie i zapisywanie odzyskanych plików
Po zakończeniu analizy przejrzyj odnalezione pliki. Korzystaj z trybu miniatur, podglądu, a także wyszukiwania i filtrów, aby szybko znaleźć wymagane dane i sprawdzić ich zawartość.
Program oznacza usunięte pliki czerwonym krzyżykiem. Wybierz pliki i foldery, które chcesz zapisać, a następnie kliknij Odzyskiwanie.

Nie zapisuj odzyskanych danych na dyskach będących elementami macierzy RAID. Zapis na nich może nadpisać informacje, które nie zostały jeszcze odzyskane. Do zapisu użyj oddzielnego dysku fizycznego.
W kreatorze wskaż miejsce docelowe i rozpocznij zapisywanie plików.
KROK 4. Ręczna rekonstrukcja RAID
Automatyczne wykrycie RAID może być niemożliwe, jeśli informacje serwisowe o macierzy są uszkodzone, nadpisane, brakujące lub niespójne pomiędzy dyskami.
Może się to zdarzyć po operacjach wykonanych bezpośrednio na dyskach składowych, które mogły uszkodzić lub nadpisać metadane RAID:
- inicjalizacji dysków w systemie Windows;
- uruchomieniu mdadm –zero-superblock;
- utworzeniu nowego RAID na bazie starego;
- zmianie tabeli partycji;
- częściowym nadpisaniu dysków;
- lub nieudanej odbudowie.

Ręczna rekonstrukcja może być również wymagana, jeśli niektóre dyski są niedostępne lub uszkodzone, jeśli na nośnikach pozostały metadane z różnych macierzy RAID, jeśli zmieniono kolejność dysków lub ich przesunięcia albo jeśli obraz jednego z dysków został utworzony niekompletnie.
Jeśli Hetman RAID Recovery nie był w stanie automatycznie określić konfiguracji macierzy, można ją zrekonstruować ręcznie za pomocą RAID Constructor.
Otwórz RAID Constructor, wybierz tryb ręczny i określ znane parametry macierzy.

Dla Linux MD RAID 6 utworzonego przez mdadm w naszym teście ze standardowym układem, RAID Constructor używa schematu Left Synchronous P+Q. W naszym przypadku rozmiar bloku wynosił 512 KB.

W przypadku większości dysków w polu Bytes per sector użyj wartości 512 bajtów. Jeśli dysk używa logicznego rozmiaru sektora 4K, wybierz 4096 bajtów.
Dla standardowego Linux MD RAID pozostaw parametr Byte order ustawiony na Standard, chyba że macierz została utworzona z innymi, specjalnymi ustawieniami.
Następnie ustaw prawidłową kolejność dysków i określ przesunięcie danych — Offset — dla każdego dysku. W naszym teście wynosiło ono 34 603 008 bajtów dla każdego dysku.

Jeśli jeden lub więcej dysków jest niedostępnych, należy dodać zamiast nich Pusty dysk.
Po złożeniu konfiguracji dodaj zrekonstruowany RAID do głównego okna programu, klikając Dodaj.

Następnie można pracować z nią tak samo jak z automatycznie wykrytą macierzą: odblokować LUKS, przeanalizować system plików i odzyskać wymagane pliki.

KROK 5. Jak określić nieznane parametry macierzy
Jeśli niektóre parametry RAID są nieznane, można je określić na podstawie struktury danych zapisanych na macierzy. W naszym przypadku wiadomo, że użyto Linux MD RAID 6, a bezpośrednio na nim znajdował się zaszyfrowany wolumin LUKS2.

Zacznijmy od określenia przesunięcia danych — Offset. Otwórz każdy dysk macierzy w HEX Editor, rozpocznij wyszukiwanie według wartości HEX i wprowadź sygnaturę LUKS: 4C 55 4B 53 BA BE. W ustawieniach wyszukiwania ustaw kierunek W dół, pozycję Początek sektora i rozpocznij wyszukiwanie.

W naszej testowej macierzy sygnatura LUKS została znaleziona pod adresem 34 603 008 bajtów od początku dysku. Jest to wartość, którą należy zastosować jako Offset dla wszystkich dysków w macierzy.

Dysk, na którym znaleziono sygnaturę, zawiera początek logicznego woluminu LUKS. Umożliwia to określenie przesunięcia danych i uzyskanie dysku referencyjnego, jednak sama sygnatura nie pokazuje pełnej kolejności wszystkich dysków. Dlatego jeśli kolejność dysków jest nieznana, należy pozostawić ją do automatycznego wykrycia za pomocą opcji Automatycznie wykryj kolejność dysków.

Następnie ustaw już znane parametry RAID. Jeśli macierz została utworzona za pomocą mdadm przy użyciu ustawień domyślnych, typowy schemat dla RAID 5 to Left Synchronous, a dla RAID 6 — Left Synchronous P+Q. W naszym przypadku rozmiar bloku wynosi 512 KB. Jeśli ten parametr został zmieniony podczas tworzenia RAID, może mieć inną wartość, na przykład 64, 128, 256 KB lub 1 MB.
Dla parametrów, które można było określić, należy podać dokładne wartości. Opcję Wykryj automatycznie należy pozostawić wyłącznie dla parametrów nieznanych. Znacznie zmniejsza to liczbę możliwych konfiguracji i przyspiesza wyszukiwanie.
Następnie kliknij Dalej i poczekaj na zakończenie walidacji wariantów.
Podczas wyszukiwania Hetman RAID Recovery wyświetla postęp, czas trwania oraz liczbę znalezionych konfiguracji. Po zakończeniu wyszukiwania wybierz najbardziej odpowiednią konfigurację i dodaj zrekonstruowaną macierz RAID do głównego okna programu.
Prawidłowość parametrów można zweryfikować na podstawie struktury uzyskanych danych. W naszym przypadku Hetman RAID Recovery powinien wykryć wolumin LUKS2 o oczekiwanym rozmiarze. Jeśli odblokuje się on poprawnie przy użyciu prawidłowego hasła, a wewnątrz zostanie zidentyfikowany system plików EXT4, konfiguracja RAID została wybrana prawidłowo.

Wnioski
Hetman RAID Recovery automatycznie wykrył testową macierz Linux MD RAID 6, odblokował LUKS2 przy użyciu znanego hasła, a podczas Szybkiego skanowania odnalazł zarówno istniejące, jak i usunięte pliki. Po wprowadzeniu hasła fscrypt program uzyskał również dostęp do istniejących i usuniętych plików w dodatkowo zaszyfrowanym katalogu.
Jeśli ilość metadanych RAID jest niewystarczająca, macierz można ręcznie zrekonstruować w RAID Constructor przy użyciu znanych parametrów albo skorzystać z automatycznego doboru nieznanych wartości. Wyszukiwanie sygnatury LUKS2 w HEX Editor pomaga określić przesunięcie danych, a poprawność konfiguracji można zweryfikować przez pomyślne odblokowanie LUKS i wykrycie systemu plików EXT4.







