Як відновити дані з Linux MD RAID 6 із шифруванням LUKS та fscrypt
Відновлення даних із Linux MD RAID 6, додатково захищеного шифруванням LUKS та fscrypt, є складним багаторівневим процесом, у якому важливо правильно визначити стан RAID-масиву, послідовність підключення дисків і рівні шифрування. Помилка на будь-якому з етапів, від некоректного складання масиву до спроби монтування пошкодженої файлової системи, може суттєво ускладнити подальше відновлення. У цій статті розглянемо безпечний підхід до діагностики, реконструкції RAID 6, відкриття LUKS-контейнера та подальшої роботи з даними, захищеними fscrypt.

- Налаштування RAID, LUKS2 та fscrypt
- Підключення дисків RAID-масиву
- Як відновити дані з Linux RAID 6
- Висновок
- Поширені запитання
- Коментарі
Особливість такої конфігурації полягає в тому, що дані проходять одразу через кілька рівнів абстракції. Спочатку фізичні диски об’єднуються у RAID 6 засобами Linux MD, далі отриманий масив може містити зашифрований LUKS-контейнер, а вже всередині файлової системи окремі каталоги або файли можуть бути додатково захищені за допомогою fscrypt. Тому, навіть справні диски та коректно зібраний RAID ще не гарантують доступу до потрібних даних.
У процесі відновлення критично важливо дотримуватися правильної послідовності дій. Перед будь-якими спробами запису на накопичувачі слід оцінити їхній стан, визначити параметри RAID-масиву, перевірити метадані та, за можливості, створити побітові копії проблемних дисків. Особливо небезпечними можуть бути автоматична перебудова масиву, запуск файлових перевірок із виправленням помилок або повторна ініціалізація LUKS-контейнера – такі дії здатні змінити структури, необхідні для подальшого відновлення.
Окрему складність становить шифрування. Для LUKS необхідно зберегти доступ до заголовка контейнера, ключових слотів і відповідних паролів або ключових файлів. У випадку з fscrypt одного лише доступу до файлової системи може бути недостатньо: для розшифрування конкретних каталогів потрібні відповідні ключі та метадані політик шифрування. Якщо хоча б один із цих елементів втрачено, можливості відновлення можуть суттєво обмежуватися.
Далі розглянемо порядок роботи з такою системою: від діагностики фізичних накопичувачів і ручного складання Linux MD RAID 6 у режимі, що мінімізує ризик запису, до відкриття LUKS-контейнера, перевірки файлової системи та відновлення доступу до даних, захищених fscrypt. Основний принцип на всіх етапах – спочатку зберегти максимум вихідної інформації, а вже потім переходити до спроб відновлення.
Як відновити дані з Linux RAID 6 із LUKS2 та fscrypt | 2 відсутні диски
| Рівень / технологія | Призначення | Основна особливість | Що важливо під час відновлення |
|---|---|---|---|
| Linux MD RAID 6 | Об’єднання кількох дисків у відмовостійкий масив | Використовує подвійну парність і допускає відмову до двох дисків | Важливо правильно визначити порядок дисків, параметри масиву, UUID і стан метаданих; небажано запускати автоматичну перебудову без попереднього аналізу |
| LUKS | Повнодискове або блочне шифрування | Шифрує весь логічний том або контейнер | Для доступу потрібен коректний LUKS-заголовок і пароль або ключ; пошкодження заголовка може зробити дані недоступними навіть при справному RAID |
| Файлова система | Зберігання каталогів, файлів і метаданих | Розташована всередині відкритого LUKS-контейнера | Перед виправленням помилок бажано працювати з копією; автоматичні repair-операції можуть змінити важливі структури |
| fscrypt | Шифрування окремих каталогів або файлів | Працює на рівні файлової системи та може захищати лише вибрані дані | Потрібні відповідні ключі, політики шифрування та метадані; відкриття LUKS ще не означає автоматичного доступу до fscrypt-даних |
| Ключі та метадані | Забезпечення доступу до зашифрованої інформації | Ключі можуть зберігатися окремо від самих даних | Втрата пароля, keyfile, LUKS header backup або fscrypt-ключів може критично обмежити можливість відновлення |
| Послідовність рівнів | Визначає порядок доступу до даних | Типова схема: диски → MD RAID 6 → LUKS → файлова система → fscrypt → файли | Відновлення слід виконувати у тому самому порядку, від нижчого рівня до вищого |
| Ризик запису | Впливає на збереження вихідних даних | Будь-яка перебудова, монтування у read-write або repair може змінити структури | Бажано спочатку створити образи дисків і працювати у read-only режимі |
| Складність діагностики | Визначає кількість потенційних точок відмови | Проблема може бути на рівні диска, RAID, LUKS, файлової системи або fscrypt | Потрібно ізолювати несправність поетапно, не змішуючи проблеми різних рівнів |
Налаштування RAID, LUKS2 та fscrypt
Для тестування Hetman RAID Recovery ми підготували сервер Dell PowerEdge R710 з RAID-контролером PERC H700 та встановленою Ubuntu Server 24.04 LTS.
З чотирьох HDD-дисків об’ємом по 60 ГБ за допомогою mdadm створили програмний Linux MD RAID 6 загальним об’ємом близько 120 ГБ. Розмір chunk становив 512 КБ (у Hetman RAID Recovery цей параметр відображається як Block size).

На масиві налаштували зашифрований том LUKS2 і створили всередині нього файлову систему EXT4. Окрему папку на цьому розділі додатково зашифрували за допомогою fscrypt, використовуючи власну кодову фразу.

Після підготовки сховища записали тестові файли, а потім видалили частину звичайних даних з EXT4 і частину файлів із каталогу, захищеного fscrypt.
Підключення дисків RAID-масиву
СПОСІБ 1. Підключення фізичних дисків.
Диски RAID-масиву можна підключити через:
- SATA;
- SAS;
- Fibre Channel;
- HBA;
- RAID-контролер.
Але важливо, щоб контролер надавав програмі доступ до кожного фізичного диска окремо.
Також, можна використовувати:
- USB-адаптери;
- Док-станції;
- Зовнішні бокси.
Для тривалого аналізу краще використовувати пряме підключення через SATA, SAS, HBA або відповідний контролер – воно зазвичай швидше й стабільніше.

Підключати всі диски масиву не завжди обов’язково. Hetman RAID Recovery врахує відсутні диски та зможе реконструювати їхні дані, якщо це дозволяє рівень RAID і решти справних накопичувачів достатньо для відновлення масиву. Наприклад, RAID 5 допускає відсутність одного диска, а RAID 6 – двох.
Після підключення дисків Windows може запропонувати їх ініціалізувати або відформатувати. Не погоджуйтеся – закрийте це повідомлення, щоб не змінювати дані та службову інформацію RAID.
СПОСІБ 2. Робота з образами дисків
Робота з образами корисна. Якщо не вистачає портів для одночасного підключення всіх дисків, або накопичувачі мають погані SMART-показники, помилки читання чи працюють нестабільно.
Щоб створити образ у Hetman RAID Recovery, виберіть потрібний фізичний диск у головному вікні програми та натисніть Save Disk.

У майстрі збереження виберіть створення образу всього диска, вкажіть папку та ім’я файлу, після чого запустіть копіювання.
Образ бажано зберігати на інший справний накопичувач із достатнім вільним місцем.
Для подальшої роботи натисніть Mount Disk – RAW Disk Images. Оберіть створені файли образів і додайте їх у програму.

Після цього Hetman RAID Recovery працюватиме з ними як зі звичайними фізичними дисками та зможе використовувати їх для автоматичної або ручної реконструкції RAID.

СПОСІБ 3. Підключення дисків через SSH
Якщо Linux-сервер залишається доступним по мережі, диски можна додати віддалено через Tools – Connect via SSH.

Вкажіть адресу сервера, порт і дані для автентифікації, після чого виберіть потрібні фізичні диски або томи. Вони будуть додані до Hetman RAID Recovery і стануть доступними для аналізу та реконструкції RAID без фізичного підключення до комп’ютера.

Як відновити дані з Linux RAID 6
КРОК 1. Автоматичне визначення RAID-масиву
Після запуску Hetman RAID Recovery програма автоматично аналізує доступні накопичувачі та шукає на них ознаки RAID-масивів. Якщо необхідні диски вже підключені до комп’ютера, знайдений масив відображається в розділі RAID Arrays одразу після запуску.
Якщо диски додаються пізніше – підключаються фізично, монтуються з образів або додаються через SSH – програма повторно аналізує доступні RAID-члени та, якщо інформації достатньо, автоматично реконструює масив.

Для визначеного RAID Hetman RAID Recovery показує його основні параметри:
- тип і об’єм масиву;
- розмір сектора та блока;
- схему розташування даних;
- стан RAID;
- список дисків-членів, їхній порядок і зміщення.

У нашому випадку програма автоматично визначила Linux MD RAID 6 об’ємом близько 118 ГБ і відобразила його як готовий до подальшого аналізу. Детальні параметри масиву ми розглянемо пізніше під час ручної реконструкції.
Якщо частина дисків відсутня, програма показує їх як Empty disk та визначає, чи достатньо доступних накопичувачів для реконструкції. У нашому тесті навіть за відсутності двох із чотирьох дисків RAID 6 масив має статус Recoverable і залишається доступним для аналізу та відновлення даних.
КРОК 2. Аналіз RAID та розшифрування даних
Щоб розпочати пошук даних, двічі клацніть по знайденому RAID-масиву або розділу. Якщо Hetman RAID Recovery визначить, що том зашифрований за допомогою LUKS, програма одразу запропонує ввести пароль або вказати файл ключа.

Для розшифрування потрібні правильний пароль або ключ, а також неушкоджені службові дані LUKS.
Після розблокування LUKS оберіть тип аналізу. Спочатку можна запустити Fast Scan – цього часто достатньо, якщо структура розділів і файлова система не були пошкоджені, а потрібно знайти нещодавно видалені файли.

Якщо ж із диском виконувалися будь-які деструктивні операції – видалення або створення розділів, форматування, зміна файлової системи, пошкодження таблиці розділів чи інші операції, які могли змінити структуру даних, – рекомендується використовувати Full Analysis. Під час повного аналізу вкажіть файлову систему, яка використовувалася на масиві. У нашому випадку це Ext2/3/4.
Якщо під час аналізу програма виявить дані, зашифровані за допомогою fscrypt, то вона запропонує ввести відповідну кодову фразу. Після розшифрування можна перейти до пошуку як існуючих, так і видалених файлів.

КРОК 3. Перегляд і збереження відновлених файлів
Після завершення аналізу перегляньте знайдені файли. Використовуйте режим мініатюр, попередній перегляд, а також пошук і фільтри, щоб швидко знайти потрібні дані та перевірити їхній вміст.
Видалені файли програма позначає червоним хрестиком. Позначте файли й папки, які потрібно зберегти, та натисніть Recovery.

Не зберігайте відновлені дані на диски, які є членами RAID-масиву. Запис на них може перезаписати інформацію, яка ще не була відновлена. Для збереження використовуйте окремий фізичний накопичувач.
У майстрі вкажіть місце призначення та запустіть збереження файлів.
КРОК 4. Ручна реконструкція RAID
Автоматичне визначення RAID може бути неможливим, якщо службова інформація про масив пошкоджена, перезаписана, відсутня або суперечлива між дисками.
Це може статися після операцій безпосередньо з дисками-членами масиву, які могли пошкодити або перезаписати RAID-метадані:
- ініціалізації дисків у Windows;
- виконання mdadm –zero-superblock;
- створення нового RAID поверх старого;
- зміни таблиці розділів;
- часткового перезапису накопичувачів;
- або невдалого rebuild.

Ручна реконструкція також може знадобитися, якщо частина дисків відсутня або пошкоджена, на накопичувачах залишилися метадані від різних RAID-масивів, було змінено порядок дисків або їхнє зміщення, чи образ одного з накопичувачів створений не повністю.
Якщо Hetman RAID Recovery не зміг автоматично визначити конфігурацію масиву, його можна відновити вручну за допомогою RAID Constructor.
Відкрийте RAID Constructor, виберіть Manual mode та вкажіть відомі параметри масиву.

Для Linux MD RAID 6, створеного mdadm у нашому тесті зі стандартним layout, у RAID Constructor використовується схема Left Synchronous P+Q. У нашому випадку розмір блока становив 512 КБ.

Для більшості накопичувачів у полі Bytes per sector використовуйте значення 512 байт. Якщо диск використовує логічний сектор 4K, виберіть 4096 байт.
Для стандартного Linux MD RAID параметр Byte order залиште в значенні Standard, якщо масив не створювався з іншими специфічними налаштуваннями.
Далі встановіть правильну послідовність накопичувачів і для кожного з них вкажіть зміщення даних – Offset. У нашому тесті воно становило 34 603 008 байт для кожного диска.

Якщо один або кілька накопичувачів недоступні, замість них додайте Empty disk.
Після того як конфігурацію зібрано, додайте реконструйований RAID у головне вікно програми, натиснувши Add.

Далі, з ним можна працювати так само, як із масивом, визначеним автоматично: розблокувати LUKS, виконати аналіз файлової системи та відновити потрібні файли.

КРОК 5. Як визначити невідомі параметри масиву
Якщо частина параметрів RAID невідома, то їх можна визначити за структурою даних, які знаходилися на масиві. У нашому випадку ми знаємо, що використовувався Linux MD RAID 6, а безпосередньо на ньому знаходився зашифрований том LUKS2.

Почнемо з визначення зміщення даних – Offset. Відкрийте кожен диск масиву в HEX Editor, запустіть пошук за HEX-значенням і введіть сигнатуру LUKS: 4C 55 4B 53 BA BE. У параметрах пошуку встановіть напрямок Down, позицію Begin of sector і запустіть пошук.

У нашому тестовому масиві сигнатура LUKS була знайдена за адресою 34 603 008 байт від початку диска. Саме це значення ми використовуємо як Offset для всіх дисків нашого масиву.

Диск, на якому знайдена сигнатура, містить початок логічного тому LUKS. Це дозволяє визначити зміщення даних і отримати опорний диск, але сама сигнатура не показує повну послідовність усіх накопичувачів. Тому, якщо порядок дисків невідомий, залиште його для автоматичного визначення за допомогою Detect the disk order automatically.

Далі, задайте ті параметри RAID, які вже відомі. Якщо масив створювався за допомогою mdadm зі стандартними налаштуваннями, для RAID 5 типовою схемою є Left Synchronous, а для RAID 6 – Left Synchronous P+Q. У нашому випадку розмір блока – 512 КБ. Якщо під час створення RAID цей параметр змінювали, він може мати інше значення, наприклад 64, 128, 256 КБ або 1 МБ.
Для параметрів, які вдалося визначити, вкажіть конкретні значення. Detect automatically залишайте тільки для невідомих параметрів. Це значно скорочує кількість можливих конфігурацій і прискорює пошук.
Після цього натисніть Next і дочекайтеся завершення перевірки варіантів.
Під час пошуку Hetman RAID Recovery показує прогрес, витрачений час і кількість знайдених конфігурацій. Після завершення пошуку виберіть найбільш відповідну конфігурацію та додайте реконструйований RAID до головного вікна програми.
Правильність параметрів можна перевірити за структурою отриманих даних. У нашому випадку Hetman RAID Recovery повинен побачити LUKS2-том очікуваного розміру. Якщо він успішно розблоковується правильним паролем, а всередині визначається файлова система EXT4, конфігурацію RAID підібрано правильно.

Висновок
Hetman RAID Recovery автоматично визначив тестовий Linux MD RAID 6, розблокував LUKS2 за відомим паролем і під час Fast Scan знайшов як наявні, так і видалені файли. Після введення кодової фрази fscrypt програма також отримала доступ до наявних і видалених файлів у додатково зашифрованому каталозі.
Якщо метаданих RAID недостатньо, масив можна реконструювати вручну в RAID Constructor, використовуючи відомі параметри, або скористатися автоматичним підбором невідомих значень. Пошук сигнатури LUKS2 у HEX Editor допомагає визначити зміщення даних, а правильність конфігурації можна перевірити за успішним розблокуванням LUKS і виявленням файлової системи EXT4.






