В поисках пропавших разделов

Люди, которые обращаются за услугами восстановления данных, часто просят вернуть данные с раздела, который «пропал». Причины пропажи могут быть самыми разными: сбои в работе накопителя, неудачные эксперименты с распределением дискового пространства, вирусы и прочее. В этой статье мы попробуем разобраться почему не видны данные и как их можно восстановить.

Статья будет полезна начинающим специалистам по восстановлению данных и недавним пользователям Data Extractor.

 Немного теории

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

Типичная схема организации данных на диске

Типичная схема организации данных на диске

Здесь, чтобы добраться до файлов необходимо:

  1. прочитать MBR в 0м секторе, из которого мы узнаем, что с 2048 сектора начинается некий раздел и он занимает N секторов;
  2. прочитать первый сектор раздела, обнаружив там структуру Boot NTFS, мы поймем, что имеем дело с файловой системой NTFS и получим некоторую информацию о ее метаданных;
  3. используя информацию из Boot NTFS, найти остальные метаданные ФС, которые позволят отобразить пользовательские данные.

Обобщив, можно разбить метаданные на 3 типа:

  1. Метаданные о распределении дискового пространства. В нашем примере это MBR, но сюда же можно отнести и GPT, Apple Partition Scheme, структуры LDM, LVM и прочее.
  2. Точка входа в файловую систему, она нужна чтобы получить информацию о типе ФС и обычно в ней записаны некоторые важные параметры. В нашем примере это Boot NTFS, помимо него к этой категории относятся: Boot для FAT и ExFAT; Superblock для EXT, XFS, UFS, ReiserFS.
  3. Остальные метаданные файловой системы — все те структуры, которые хранят информацию о размещении, именах и атрибутах каталогов и файлах. Это записи MFT для NTFS, таблица FAT и каталоги для FAT12/16/32; таблицы inode для EXT и прочее.

Итак, операционная система может перестать отображать раздел, если повреждены метаданные одного из этих типов или сразу нескольких. В этой статье мы разберемся с проблемами в метаданных 1го и 2го типов.

Практика

Без MBR

Диск с затертым MBR в управлении дисками Windows

Диск с затертым MBR в управлении дисками Windows

Похожую картину можно увидеть в «управлении дисками» Windows, если стереть MBR, лежащий в 0м секторе диска. Штатными средствами увидеть данные раздела который там был уже нельзя. В Data Extractor есть много способов получить доступ к данным пропавшего раздела. Начнем с того, в котором меньше всего автоматизации, чтобы было проще понять в чем именно она заключается в специальных методах. Если заниматься ручным поиском разделов, то следует прежде всего смотреть там где они начинаются в большинстве случаев: LBA 63, 2048 или другая степень двойки — 128, 256, 512 и т.д.

Boot NTFS

Boot NTFS

Открыв 128 сектор, видим сигнатуру, характерную для Boot NTFS – строку “NTFS” в начале сектора. Пользуемся возможностью просмотреть сектор как структуру Boot NTFS (Просмотр как… > Boot NTFS), видим, что значимые поля корректны. Из меню «Сервис» добавляем виртуальный раздел.

Добавление виртуального раздела

Добавление виртуального раздела

После чего в проводнике Data Extractor видим пользовательские данных. Добавив виртуальный раздел, мы пропустили этап определения начала раздела из MBR или других структур, явно задав начало и тип нового раздела. Все пользовательские данные видны в проводнике Data Extractor, поскольку Boot сектор и остальные метаданные NTFS корректны.

Виртуальный раздел NTFS

Виртуальный раздел NTFS

Есть ли жизнь после форматирования?

Возможность и методы восстановления данных после «быстрого» форматирования — тема достойная отдельной статьи. В некоторых случаях, однако, все достаточно просто. Рассмотрим такой эксперимент: жил был диск c установленной Ubuntu (по-умолчанию она создает раздел EXT), затем его вытащили из компьютера, подключили к компьютеру с Windows и отформатировали в NTFS. Больше с диском ничего не делали и принесли на восстановление. Чтобы немного прояснить ситуацию на диске запустим черновое восстановление. Небольшая ремарка для тех, кто не знаком с инструментами Data Extractor. «Черновое восстановление» — это специализированные режим, который занимается поиском пользовательских данных (фотографий, документов и пр) и метаданных файловых систем. Поиск основан на анализе с помощью регулярных выражений и на внутренних алгоритмах проверки различных структур, т. е. он ни как не зависит логической организации диска (от того какая там файловая система и на сколько она цела). Другими словами, режим занимается File Carving’ом.

Результаты «Чернового восстановления»

Результаты «Чернового восстановления»

Раздел NTFS начинается с LBA: 2048. Возможно тут же начинался и раздел Ext, но точно неизвестно. Дальше идут еще несколько структур, связанных с NTFS. В секторе 264 192 видим одну из копий суперблока файловой системы Ext. Приведем несколько важных фактов о файловой системе Ext:

  • Выделенной под ФС пространство разбивается на группы равного размера (кроме, может, последней). Размер группы указан в суперблоке. В этом примере он равен 262144 сектора.
  • Основной суперблок находится в 0й группе и смещен на 1024 байта.
  • Копии основного суперблока записываются в некоторые другие группы по смещению 0. Это группа 1 и группы, номера которых являются степенью 3, 5 и 7. Т.е. начало последовательности выглядит так: 0 (+1024 байта), 1, 3, 5, 7, 9, 25, …
  • Суперблоки разных разделов легко отличить по записанному в них GUID.

Такая организация дает нам две возможности:

  • если поврежден основной суперблок, то есть большой шанс найти его копию;
  • если найти несколько суперблоков одного раздела и определить их место в последовательности, то можно точно определить начало раздела.

На этих возможностях как раз и основан метод добавления виртуального раздела. Он доступен из контекстного меню на ExtX Superblock.

Метод успешно добавил виртуальный раздел

Метод успешно добавил виртуальный раздел

В нашем случае, методу легко удалось определить начало раздела — тоже 2048 сектор. Если вернемся в проводник, то увидим там новый виртуальный раздел, с помощью которого имеем доступ к данным. В данном случае, суть «виртуальности» в том, что Data Extractor берет информацию о начале, размере, типе раздела и точке входа в него (Superblock) не из структур диска, а хранит все в специальной базе данных.

Виртуальный раздел Ext в проводнике Data Extractor

Виртуальный раздел Ext в проводнике Data Extractor

Подведем итог этого примера. После переформатирования точка входа в файловую систему Ext, содержащую нужные данные, была затерта структурами новой ФС (NTFS). Режимом «черновое восстановление» были найдены суперблоки Ext. С помощью специального метода был добавлен виртуальный раздел и получен доступ к данным.

Предыдущий подход с просмотром сектора тут тоже применим.

«Чтобы использовать диск, отформатируйте его»

Сообщение Windows при попытке открыть раздел с поврежденным Boot FAT32

Сообщение Windows при попытке открыть раздел с поврежденным Boot FAT32

Чаще всего такое сообщение видят пользователи вместо своих данных, которые хранились на флешке или внешнем HDD с файловой системой FAT. Именно его мы получим, если испортим основной Boot FAT.

Если вернуться к классификации, то это случай повреждения точки входа в файловую систему. Data Extractor знает где хранится копия Boot, поэтому если она цела, то раздел внутри комплекса раскроется без каких-либо дополнительных действий. Но этот случай не очень интересный, поэтому сымитируем повреждение обоих Boot FAT, запишем нули вместо них. В результате раздел не открывается ни в Windows, ни в Data Extractor. На этот раз не будем ничего искать и оценивать, а попробуем получить результат самым простым путем — запустим режим «Быстрый анализ диска».

«Быстрый анализ» добавил виртуальный раздел FAT32

«Быстрый анализ» добавил виртуальный раздел FAT32

Почти сразу же после запуска добавился виртуальный раздела FAT32. Справа видно какие данные он содержит. Если сейчас вернуться в проводник Data Extractor, то там уже будет виртуальный раздел. Можно сохранять данные.

Не вдаваясь в подробности, можно сказать, что Boot FAT содержит достаточно важные данные для раскрытия файловой системы, но анализ таблиц и каталогов FAT позволяет определить эти параметры и сконструировать искусственный Boot FAT.

Найденная таблица FAT32 позволила начать такой анализ. Его можно было бы запустить и из чернового восстановления, как мы это делали для ExtX Superblock.
«Быстрый анализ диска» — автоматический метод, который используется для поиска «потерянных» файловых систем. FAT32 – лишь частный случай, режим предназначен для поиска всех поддерживаемых файловых систем.

Следующие наблюдения легли в основу метода:

  • обычно разделы располагаются рядом друг с другом и почти полностью покрывают диск, т.е. «зазоры» между разделами, а также отступы от «краев» диска не превосходят нескольких тысяч секторов;
  • метаданных об организации диска (в том числе копии) находятся либо в начале, либо в конце диска;
  • точки входа в файловые системы и их копии часто находятся в начале и в конце раздела.

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

Диск с GPT, разделом FAT32 и разделом HFS+

Диск с GPT, разделом FAT32 и разделом HFS+

  • в начале и в конце диска находятся структуры GPT, с информацией о разделах (перед ними, в нулевом секторе, обычно записывают MBR, указывающий на единственный раздел размером на весь диск);
  • начало раздела FAT32 близко к началу диска, в первом секторе раздела находится его Boot — точка входа в ФС;
  • почти сразу после раздела FAT32 идет раздел HFS+, в начале которого находится HFS+ Volume Header – точка входа в файловую систему HFS+;
  • раздел HFS+ заканчивается близко к концу диска, в конце раздела находится копия HFS+ Volume Header;
  • в конце диска находится копия GPT.

Если мы имеем дело с незнакомым диском, то логично просканировать пространство в начале и в конце диска. Если найдена информация о размещении разделов или удалось восстановить сам раздел, то в список поиска логично добавить диапазоны рядом с началом и концом раздела — есть большой шанс, найти соседний.

Цель такого сканирования — найти либо точку входа в файловую систему, либо структуры, которые позволят восстановить информацию о разделе (в этом примере это была таблица FAT32).

«Быстрый анализ диска» автоматически сканирует наиболее «интересные» диапазоны и дополняет их по ходу сканирования. Если находится подходящая структура, то запускается метод добавления виртуального раздела (такой же как в первом и втором примерах). Все восстановленные разделы сразу отображаются на форме режима, где можно сразу просмотреть дерево файловой системы.

Следует сказать, что уже найденные файловые системы могут иметь свои проблемы, «быстрый анализ» ими не занимается, для этого есть другие методы (например, «анализ данных раздела»). Они могут выполняться достаточно долго и создавать большую нагрузку на диск, поэтому не запускаются в рамках «быстрого анализа».

Заключение

Можно выделить следующие основные причины «пропажи» разделов:

  1. повреждения информации о размещении разделов;
  2. повреждения точки входа в файловую систему;
  3. повреждения остальных важных структур файловой системы.

В этой статье мы рассмотрели как можно решать проблемы первого, второго типов и не касались проблем третьего типа. На примерах мы рассмотрели 3 способа в порядке увеличения автоматизации:

  1. ручной поиск структуры в HEX редакторе и запуск метода добавления виртуального раздела;
  2. поиск структур файловых систем с помощью режима «черновое восстановление» и запуск метода добавления виртуального раздела на одной из них;
  3. запуск режима «быстрый анализ диска».

В случае, когда имеют место только повреждения информации о размещении разделов (испорчен MBR, GPT и пр), нет особых для сложностей в восстановления данных. С помощью реализованных в Data Extractor методов добавления виртуального раздела легко решаются многие проблемы, связанные с порчей точки входа в файловую систему.

Леоненко Александр
Разработчик Data Extractor

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (3 голосов, средний: 4,00)
Loading...Loading...

Об авторе Александр Леоненко

Разработчик Data Extractor и Data Extractor RAID Edition
Запись опубликована в рубрике Data Extractor с метками , , , , , , , , , . Добавьте в закладки постоянную ссылку.

Один комментарий на «В поисках пропавших разделов»

  1. Уведомление: «Черновое восстановление» (Часть 1: Регулярные выражения) | Блог разработчиков Data Extractor

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>