Как восстановить данные из 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 Желательно работать с копией до выполнения исправления ошибок; автоматические операции восстановления могут изменить важные структуры
fscrypt Шифрует отдельные каталоги или файлы Работает на уровне файловой системы и может защищать только выбранные данные Необходимы соответствующие ключи, политики шифрования и метаданные; разблокировка LUKS не предоставляет автоматический доступ к данным, защищённым fscrypt
Ключи и метаданные Обеспечивают доступ к зашифрованной информации Ключи могут храниться отдельно от самих данных Потеря пароля, файла ключа, резервной копии заголовка LUKS или ключей fscrypt может критически ограничить варианты восстановления
Последовательность уровней Определяет порядок доступа к данным Типичная схема: диски → MD RAID 6 → LUKS → файловая система → fscrypt → файлы Восстановление следует выполнять в том же порядке — от нижнего уровня к верхнему
Риск записи Влияет на сохранность исходных данных Любая перестройка, монтирование в режиме чтения-записи или операция исправления может изменить структуры Предпочтительно сначала создать образы дисков и работать в режиме только чтения
Сложность диагностики Определяет количество потенциальных точек отказа Проблема может находиться на уровне диска, RAID, LUKS, файловой системы или fscrypt Неисправность необходимо локализовать пошагово, не смешивая проблемы разных уровней

Настройка RAID, LUKS2 и fscrypt

Для тестирования Hetman RAID Recovery мы подготовили сервер Dell PowerEdge R710 с RAID-контроллером PERC H700 и установленной Ubuntu Server 24.04 LTS.

Для восстановления данных с повреждённых RAID-массивов, NAS-устройств и других многодисковых систем хранения.

Из четырёх HDD по 60 ГБ был создан программный массив Linux MD RAID 6 общей ёмкостью примерно 120 ГБ с помощью mdadm. Размер chunk составлял 512 КБ (в Hetman RAID Recovery этот параметр отображается как Размер блока).

Dell PowerEdge R710: создание RAID-устройства

На массиве был настроен зашифрованный том LUKS2, а внутри него создана файловая система EXT4. Дополнительный каталог на этом разделе был зашифрован с помощью fscrypt с использованием собственной парольной фразы.

Dell PowerEdge R710: форматирование и подключение RAID-устройства

После подготовки хранилища были записаны тестовые файлы, а затем часть обычных данных была удалена из 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, выберите нужный физический диск в главном окне программы и нажмите Сохранить диск.

Hetman RAID Recovery: создание образа диска (сохранить диск)

В мастере сохранения выберите создание образа всего диска, укажите папку и имя файла, а затем запустите копирование.

Предпочтительно сохранять образ на другой исправный накопитель с достаточным свободным местом.

Для дальнейшей работы нажмите Подключить диск – RAW-образы дисков. Выберите созданные файлы образов и добавьте их в программу.

Hetman RAID Recovery: подключение образа диска (подключить диск)

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

Hetman RAID Recovery: подключённый образ диска

МЕТОД 3. Подключение дисков по SSH

Если сервер Linux остаётся доступен по сети, диски можно добавить удалённо через Инструменты – Подключиться по SSH.

Hetman RAID Recovery: подключение дисков по SSH

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

Hetman RAID Recovery: подключение к удалённому серверу

Как восстановить данные с Linux RAID 6

ШАГ 1. Автоматическое определение массива RAID

После запуска Hetman RAID Recovery программа автоматически анализирует доступные диски и ищет на них признаки массивов RAID. Если нужные диски уже подключены к компьютеру, найденный массив отображается в разделе Массивы RAID сразу после запуска.

Если диски добавлены позже — подключены физически, смонтированы из образов или добавлены через SSH — программа повторно анализирует доступные члены RAID и, если информации достаточно, автоматически реконструирует массив.

Hetman RAID Recovery: автоматическое определение массива RAID

Для обнаруженного RAID Hetman RAID Recovery отображает его основные параметры:

  • тип и ёмкость массива;
  • размер сектора и блока;
  • схему размещения данных;
  • состояние RAID;
  • список дисков-членов, их порядок и смещения.
Hetman RAID Recovery: параметры автоматически обнаруженного массива RAID

В нашем случае программа автоматически определила Linux MD RAID 6 объёмом примерно 118 ГБ и отобразила его как готовый к дальнейшему анализу. Подробные параметры массива мы рассмотрим позже при ручной реконструкции.

Если некоторые диски отсутствуют, программа показывает их как Пустой диск и определяет, достаточно ли доступных накопителей для реконструкции. В нашем тесте даже при отсутствии двух из четырёх дисков RAID 6 массив имеет статус Восстановим и остаётся доступным для анализа и восстановления данных.

ШАГ 2. Анализ RAID и расшифровка данных

Чтобы начать поиск данных, дважды щёлкните по найденному массиву RAID или разделу. Если Hetman RAID Recovery определит, что том зашифрован с помощью LUKS, программа сразу предложит ввести пароль или указать файл ключа.

Hetman RAID Recovery: том зашифрован LUKS

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

После разблокировки LUKS выберите тип анализа. Сначала можно запустить Быстрое сканирование — оно часто достаточно, если структура раздела и файловая система не были повреждены, и требуется только найти недавно удалённые файлы.

Hetman RAID Recovery: после разблокировки LUKS выберите тип анализа

Если на диске выполнялись какие-либо деструктивные операции — удаление или создание разделов, форматирование, изменение файловой системы, повреждение таблицы разделов или другие действия, которые могли изменить структуру данных — рекомендуется использовать Полный анализ. При полном анализе укажите файловую систему, использованную на массиве. В нашем случае это Ext2/3/4.

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

Hetman RAID Recovery: введите соответствующую парольную фразу

ШАГ 3. Просмотр и сохранение восстановленных файлов

После завершения анализа просмотрите найденные файлы. Используйте режим миниатюр, предпросмотр, а также поиск и фильтры, чтобы быстро найти нужные данные и проверить их содержимое.

Удалённые файлы программа помечает красным крестиком. Выберите файлы и папки, которые нужно сохранить, и нажмите Восстановить.

Hetman RAID Recovery: удалённые файлы отмечены красным крестиком

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

В мастере укажите место назначения и начните сохранение файлов.

ШАГ 4. Ручная реконструкция RAID

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

Это может произойти после операций непосредственно на дисках-членах, которые могли повредить или перезаписать метаданные RAID:

  • инициализация дисков в Windows;
  • выполнение mdadm –zero-superblock;
  • создание нового RAID поверх старого;
  • изменение таблицы разделов;
  • частичная перезапись накопителей;
  • или неудачная перестройка.
Управление дисками: запрос на инициализацию диска

Ручная реконструкция также может потребоваться, если некоторые диски отсутствуют или повреждены, если на накопителях остались метаданные от разных массивов RAID, если был изменён порядок дисков или смещения, либо если образ одного из дисков был создан неполностью.

Если Hetman RAID Recovery не смог автоматически определить конфигурацию массива, его можно восстановить вручную с помощью RAID Constructor.

Откройте RAID Constructor, выберите Ручной режим и укажите известные параметры массива.

Hetman RAID Recovery: RAID Constructor — ручной режим

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

Hetman RAID Recovery: настройка в ручном режиме

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

Для стандартного Linux MD RAID оставьте параметр Byte order в значении Standard, если массив не был создан с другими специальными настройками.

Далее задайте правильную последовательность дисков и укажите смещение данных — Offset — для каждого диска. В нашем тесте оно составляло 34 603 008 байт для каждого диска.

Hetman RAID Recovery: настройка смещения массива

Если один или несколько дисков недоступны, вместо них добавьте Пустой диск.

После сборки конфигурации добавьте реконструированный RAID в главное окно программы, нажав Добавить.

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

После этого с ним можно работать так же, как с автоматически обнаруженным массивом: разблокировать LUKS, проанализировать файловую систему и восстановить необходимые файлы.

Hetman RAID Recovery: массив собран в ручном режиме

ШАГ 5. Как определить неизвестные параметры массива

Если некоторые параметры RAID неизвестны, их можно определить по структуре данных, хранящихся на массиве. В нашем случае известно, что использовался Linux MD RAID 6, а непосредственно на нём находился зашифрованный том LUKS2.

Hetman RAID Recovery: откройте каждый диск массива в HEX-редакторе

Начнём с определения смещения данных — Offset. Откройте каждый диск массива в HEX-редакторе, запустите поиск по HEX-значению и введите сигнатуру LUKS: 4C 55 4B 53 BA BE. В параметрах поиска задайте направление Вниз, позицию Начало сектора и запустите поиск.

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

В нашем тестовом массиве сигнатура LUKS была найдена по адресу 34 603 008 байт от начала диска. Именно это значение мы используем как Offset для всех дисков массива.

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

Диск, на котором найдена сигнатура, содержит начало логического тома LUKS. Это позволяет определить смещение данных и получить опорный диск, однако сама сигнатура не показывает полную последовательность всех накопителей. Поэтому, если порядок дисков неизвестен, оставьте его для автоматического определения с помощью Автоматически определить порядок дисков.

Hetman RAID Recovery: автоматически определить порядок дисков

Далее задайте уже известные параметры RAID. Если массив был создан с помощью mdadm с настройками по умолчанию, типичная схема для RAID 5 — Left Synchronous, а для RAID 6 — Left Synchronous P+Q. В нашем случае размер блока составляет 512 КБ. Если этот параметр был изменён при создании RAID, он может иметь другое значение, например 64, 128, 256 КБ или 1 МБ.

Для параметров, которые удалось определить, указывайте точные значения. Оставляйте Определять автоматически только для неизвестных параметров. Это значительно сокращает число возможных конфигураций и ускоряет поиск.

Затем нажмите Далее и дождитесь завершения проверки вариантов.

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

Корректность параметров можно проверить по структуре полученных данных. В нашем случае Hetman RAID Recovery должен определить том LUKS2 ожидаемого размера. Если он успешно разблокируется с правильным паролем, а внутри будет обнаружена файловая система EXT4, конфигурация RAID выбрана корректно.

Hetman RAID Recovery: обнаружен том LUKS2 ожидаемого размера

Заключение

Hetman RAID Recovery автоматически обнаружил тестовый Linux MD RAID 6, разблокировал LUKS2 с помощью известного пароля и в ходе Быстрого сканирования нашёл как существующие, так и удалённые файлы. После ввода парольной фразы fscrypt программа также получила доступ к существующим и удалённым файлам в дополнительно зашифрованном каталоге.

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

Dmytriy Zhura

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

Дмитрий Жура – автор и один из IT-инженеров компании Hetman Software. Имеет почти 10 летний опыт работы в IT-сфере: администрирование и настройка серверов, установка операционных систем и различного программного обеспечения, настройка сети, информационная безопасность, внедрения и консультация по использованию специализированного ПО. Является экспертом в области восстановления данных, файловых систем, устройств хранения данных и RAID массивов.

Andrey Mareev

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

В далеком 2005 году, я получил диплом по специальности «Прикладная математика» в Восточноукраинском национальном университете. А уже в 2006 году, я создал свой первый проект по восстановлению данных. С 2012 года, начал работать в компании «Hetman Software», отвечая за раскрутку сайта, продвижение программного обеспечения компании, и как специалист по работе с клиентами.