Як відновити дані з Linux MD RAID 6 із шифруванням LUKS та fscrypt

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

Як відновити дані з Linux MD RAID 6 із шифруванням LUKS та fscrypt

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

У процесі відновлення критично важливо дотримуватися правильної послідовності дій. Перед будь-якими спробами запису на накопичувачі слід оцінити їхній стан, визначити параметри RAID-масиву, перевірити метадані та, за можливості, створити побітові копії проблемних дисків. Особливо небезпечними можуть бути автоматична перебудова масиву, запуск файлових перевірок із виправленням помилок або повторна ініціалізація LUKS-контейнера – такі дії здатні змінити структури, необхідні для подальшого відновлення.

Окрему складність становить шифрування. Для LUKS необхідно зберегти доступ до заголовка контейнера, ключових слотів і відповідних паролів або ключових файлів. У випадку з fscrypt одного лише доступу до файлової системи може бути недостатньо: для розшифрування конкретних каталогів потрібні відповідні ключі та метадані політик шифрування. Якщо хоча б один із цих елементів втрачено, можливості відновлення можуть суттєво обмежуватися.

Далі розглянемо порядок роботи з такою системою: від діагностики фізичних накопичувачів і ручного складання Linux MD RAID 6 у режимі, що мінімізує ризик запису, до відкриття LUKS-контейнера, перевірки файлової системи та відновлення доступу до даних, захищених fscrypt. Основний принцип на всіх етапах – спочатку зберегти максимум вихідної інформації, а вже потім переходити до спроб відновлення.

Перейти до перегляду
Як відновити дані з Linux RAID 6 із LUKS2 та fscrypt | 2 відсутні диски

Як відновити дані з 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.

Для відновлення даних із пошкоджених RAID-масивів, NAS-пристроїв та інших багатодискових систем зберігання.

З чотирьох HDD-дисків об’ємом по 60 ГБ за допомогою mdadm створили програмний Linux MD RAID 6 загальним об’ємом близько 120 ГБ. Розмір chunk становив 512 КБ (у Hetman RAID Recovery цей параметр відображається як Block size).

Dell PowerEdge R710: create raid device

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

Dell PowerEdge R710: format and mount raid device

Після підготовки сховища записали тестові файли, а потім видалили частину звичайних даних з EXT4 і частину файлів із каталогу, захищеного fscrypt.

Підключення дисків RAID-масиву

СПОСІБ 1. Підключення фізичних дисків.

Диски RAID-масиву можна підключити через:

  • SATA;
  • SAS;
  • Fibre Channel;
  • HBA;
  • RAID-контролер.

Але важливо, щоб контролер надавав програмі доступ до кожного фізичного диска окремо.

Також, можна використовувати:

  • USB-адаптери;
  • Док-станції;
  • Зовнішні бокси.

Для тривалого аналізу краще використовувати пряме підключення через SATA, SAS, HBA або відповідний контролер – воно зазвичай швидше й стабільніше.

Спосіб підключення дисків RAID-масиву

Підключати всі диски масиву не завжди обов’язково. Hetman RAID Recovery врахує відсутні диски та зможе реконструювати їхні дані, якщо це дозволяє рівень RAID і решти справних накопичувачів достатньо для відновлення масиву. Наприклад, RAID 5 допускає відсутність одного диска, а RAID 6 – двох.

Для відновлення даних із пошкоджених RAID-масивів, NAS-пристроїв та інших багатодискових систем зберігання.

Після підключення дисків Windows може запропонувати їх ініціалізувати або відформатувати. Не погоджуйтеся – закрийте це повідомлення, щоб не змінювати дані та службову інформацію RAID.

СПОСІБ 2. Робота з образами дисків

Робота з образами корисна. Якщо не вистачає портів для одночасного підключення всіх дисків, або накопичувачі мають погані SMART-показники, помилки читання чи працюють нестабільно.

Щоб створити образ у Hetman RAID Recovery, виберіть потрібний фізичний диск у головному вікні програми та натисніть Save Disk.

Hetman RAID Recovery: створення образу диска (save disk)

У майстрі збереження виберіть створення образу всього диска, вкажіть папку та ім’я файлу, після чого запустіть копіювання.

Образ бажано зберігати на інший справний накопичувач із достатнім вільним місцем.

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

Hetman RAID Recovery: монтування образу диска (mount disk)

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

Hetman RAID Recovery: змонтований образ диска (mounted disk)

СПОСІБ 3. Підключення дисків через SSH

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

Hetman RAID Recovery: Підключення дисків через SSH

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

Hetman RAID Recovery: Підключення до віддаленого сервера

Як відновити дані з Linux RAID 6

КРОК 1. Автоматичне визначення RAID-масиву

Після запуску Hetman RAID Recovery програма автоматично аналізує доступні накопичувачі та шукає на них ознаки RAID-масивів. Якщо необхідні диски вже підключені до комп’ютера, знайдений масив відображається в розділі RAID Arrays одразу після запуску.

Якщо диски додаються пізніше – підключаються фізично, монтуються з образів або додаються через SSH – програма повторно аналізує доступні RAID-члени та, якщо інформації достатньо, автоматично реконструює масив.

Hetman RAID Recovery: Автоматичне визначення RAID-масиву

Для визначеного RAID Hetman RAID Recovery показує його основні параметри:

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

У нашому випадку програма автоматично визначила Linux MD RAID 6 об’ємом близько 118 ГБ і відобразила його як готовий до подальшого аналізу. Детальні параметри масиву ми розглянемо пізніше під час ручної реконструкції.

Якщо частина дисків відсутня, програма показує їх як Empty disk та визначає, чи достатньо доступних накопичувачів для реконструкції. У нашому тесті навіть за відсутності двох із чотирьох дисків RAID 6 масив має статус Recoverable і залишається доступним для аналізу та відновлення даних.

КРОК 2. Аналіз RAID та розшифрування даних

Щоб розпочати пошук даних, двічі клацніть по знайденому RAID-масиву або розділу. Якщо Hetman RAID Recovery визначить, що том зашифрований за допомогою LUKS, програма одразу запропонує ввести пароль або вказати файл ключа.

Hetman RAID Recovery: том зашифрований за допомогою LUKS

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

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

Hetman RAID Recovery: Після розблокування LUKS оберіть тип аналізу

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

Якщо під час аналізу програма виявить дані, зашифровані за допомогою fscrypt, то вона запропонує ввести відповідну кодову фразу. Після розшифрування можна перейти до пошуку як існуючих, так і видалених файлів.

Hetman RAID Recovery: ввести відповідну кодову фразу

КРОК 3. Перегляд і збереження відновлених файлів

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

Видалені файли програма позначає червоним хрестиком. Позначте файли й папки, які потрібно зберегти, та натисніть Recovery.

Hetman RAID Recovery: Видалені файли програма позначає червоним хрестиком

Не зберігайте відновлені дані на диски, які є членами RAID-масиву. Запис на них може перезаписати інформацію, яка ще не була відновлена. Для збереження використовуйте окремий фізичний накопичувач.

У майстрі вкажіть місце призначення та запустіть збереження файлів.

КРОК 4. Ручна реконструкція RAID

Автоматичне визначення RAID може бути неможливим, якщо службова інформація про масив пошкоджена, перезаписана, відсутня або суперечлива між дисками.

Це може статися після операцій безпосередньо з дисками-членами масиву, які могли пошкодити або перезаписати RAID-метадані:

  • ініціалізації дисків у Windows;
  • виконання mdadm –zero-superblock;
  • створення нового RAID поверх старого;
  • зміни таблиці розділів;
  • часткового перезапису накопичувачів;
  • або невдалого rebuild.
Disk Management: пропозиція ініціалізувати диск

Ручна реконструкція також може знадобитися, якщо частина дисків відсутня або пошкоджена, на накопичувачах залишилися метадані від різних RAID-масивів, було змінено порядок дисків або їхнє зміщення, чи образ одного з накопичувачів створений не повністю.

Якщо Hetman RAID Recovery не зміг автоматично визначити конфігурацію масиву, його можна відновити вручну за допомогою RAID Constructor.

Відкрийте RAID Constructor, виберіть Manual mode та вкажіть відомі параметри масиву.

Hetman RAID Recovery: RAID Constructor - Manual mode

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

Hetman RAID Recovery: налаштування Manual mode

Для більшості накопичувачів у полі Bytes per sector використовуйте значення 512 байт. Якщо диск використовує логічний сектор 4K, виберіть 4096 байт.

Для стандартного Linux MD RAID параметр Byte order залиште в значенні Standard, якщо масив не створювався з іншими специфічними налаштуваннями.

Далі встановіть правильну послідовність накопичувачів і для кожного з них вкажіть зміщення даних – Offset. У нашому тесті воно становило 34 603 008 байт для кожного диска.

Hetman RAID Recovery: налаштування Offset масиву

Якщо один або кілька накопичувачів недоступні, замість них додайте Empty disk.

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

Hetman RAID Recovery: конфігурацію масиву зібрано в ручному режимі

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

Hetman RAID Recovery: масив, який зібрано в ручному режимі

КРОК 5. Як визначити невідомі параметри масиву

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

Hetman RAID Recovery: Відкрийте кожен диск масиву в HEX Editor

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

Hetman RAID Recovery: введіть сигнатуру LUKS: 4C 55 4B 53 BA BE

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

Hetman RAID Recovery: LUKS знайдена за адресою 34 603 008 байт від початку диска

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

Hetman RAID Recovery: 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: визначений LUKS2-том очікуваного розміру

Висновок

Hetman RAID Recovery автоматично визначив тестовий Linux MD RAID 6, розблокував LUKS2 за відомим паролем і під час Fast Scan знайшов як наявні, так і видалені файли. Після введення кодової фрази fscrypt програма також отримала доступ до наявних і видалених файлів у додатково зашифрованому каталозі.

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

Valery Martyshko

Автор: , Технічний письменник

Автор, перекладач та технічний спеціаліст компанії Hetman Software. Має майже десятирічний досвід роботи в IT сфері, який охоплює різні галузі: від ПК з Windows та мобільних пристроїв, до фото та відео обладнання, сигналізацій та систем відеоспостереження, і т.д. Окрім іншого, є також спеціалістом по Android, Windows та Microsoft Office. Є експертом в області відновлення даних, файлових систем, пристроїв зберігання даних, RAID масивів.

Vladyslav Kupriyenko

Редактор: , Технічний письменник

Редактор статей блогу, автор та ведучий рубрики на YouTube каналі компанії Hetman Software. За освітою: спеціаліст з обслуговування комп’ютерних систем та мереж, вивчав розробку програмного забезпечення. Має досвід роботи в IT сфері, який охоплює різні галузі: адміністрування комп’ютерної мережі та обладнання, контроль та підтримка роботи Інтернет, офісних та спеціалізованих програм. Є фахівцем в області відновлення даних, файлових систем та пристроїв зберігання даних.

Рекомендуємо для вас