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.

Jak odzyskać dane z Linux MD RAID 6 z szyfrowaniem LUKS i fscrypt

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.

Przejdź do widoku
Jak odzyskać dane z Linux RAID 6 z szyfrowaniem LUKS2 i fscrypt? Brakujące dyski i usunięte pliki

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.

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

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

Dell PowerEdge R710: utwórz urządzenie RAID

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.

Dell PowerEdge R710: sformatuj i zamontuj urządzenie RAID

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.

Sposób podłączania dysków macierzy RAID

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.

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

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.

Hetman RAID Recovery: tworzenie obrazu dysku (zapis dysku)

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.

Hetman RAID Recovery: montowanie obrazu dysku (zamontuj dysk)

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.

Hetman RAID Recovery: zamontowany obraz dysku

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.

Hetman RAID Recovery: podłączanie dysków 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.

Hetman RAID Recovery: łączenie się ze zdalnym serwerem

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.

Hetman RAID Recovery: automatyczne wykrywanie macierzy RAID

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.
Hetman RAID Recovery: parametry automatycznie wykrytej macierzy RAID

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.

Hetman RAID Recovery: wolumin jest zaszyfrowany LUKS

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.

Hetman RAID Recovery: po odblokowaniu LUKS wybierz typ analizy

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.

Hetman RAID Recovery: wpisz odpowiednie hasło

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.

Hetman RAID Recovery: usunięte pliki są oznaczone czerwonym krzyżykiem

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.
Zarządzanie dyskami: monit o zainicjowanie dysku

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.

Hetman RAID Recovery: RAID Constructor - tryb ręczny

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.

Hetman RAID Recovery: konfiguracja w trybie ręcznym

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.

Hetman RAID Recovery: konfiguracja przesunięcia macierzy

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.

Hetman RAID Recovery: konfigurację macierzy złożono w trybie ręcznym

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

Hetman RAID Recovery: macierz złożona w trybie ręcznym

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.

Hetman RAID Recovery: otwórz każdy dysk macierzy w edytorze HEX

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.

Hetman RAID Recovery: wprowadź sygnaturę LUKS: 4C 55 4B 53 BA BE

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.

Hetman RAID Recovery: LUKS znaleziono 34 603 008 bajtów od początku dysku

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.

Hetman RAID Recovery: automatyczne wykrywanie kolejności 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.

Hetman RAID Recovery: wykryto wolumin LUKS2 o oczekiwanym rozmiarze

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.

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