2019-02-11

TestDisk: Восстановление удаленных разделов

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



Содержание



TestDisk


TestDisk - Это мощная свободная (бесплатная), с открытым исходным кодом, программа предназначенная для восстановления утраченных разделов, и/или восстановления возможности грузиться с дисков, загрузка с которых стала невозможной.

Интерфейс у программы текстовый, т.е. она консольная, но он полностью интерактивный, писать команды не придется.


Программа является консольной. К тому же она кроссплатформенная. Поддерживаются следующие платформы: DOS, Windows, Linux, Mac OS.

Скачать программу можно по ссылке https://www.cgsecurity.org/wiki/TestDisk_Download.



Методика Тестирования


Все тесты будут проводиться флешке, размером 4 ГБ. Малый размер диска выбран для более быстрой скорости выполнения операций с диском. Будь то сканирование или посекторное сравнение.

Тестирование будет проводиться с таблицами разделов MBR и GPT. На диске будет присутствовать два раздела. На каждом из разделов будет располагаться тестовый набор файлов. Контрольные суммы данных файлов будут вычислены заранее, до выполнения каких либо манипуляций над диском, для последующего сравнения целостности файлов после восстановления разделов.

Повреждение таблицы разделов будет осуществляться с помощью консольной утилиты dd (для Linux) или программы BOOTICE (для Windows). Так же будет производиться простое удаление раздела, и очистка таблицы разделов диска. После чего будет выполнена попытка восстановить утраченную таблицу разделов.

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


Тестовые Файлы


В качестве тестовых файлов будут выступать:

Портативная версия файлового менеджера Far Manager, представленная в виде 7z-архива (единый файл).


Три картинки.


Один текстовый файл.


Вычислим контрольные суммы MD5 для файлов.

AlgorithmHashPath
MD51C9C3339AB5E58E392588A15CD2FC1741.jpg
MD57765EF2937FC8A506EB6457608FE57282.jpg
MD50E979187086303DC147753216D3B701C3.jpg
MD5A9ABEF02A0318BD021CAB06A272353E7Far30b5355.x64.20190123.7z
MD5A558742EF832D467C5DFEB40C43E6D6Atext.txt


Портим Таблицу Разделов


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

Вариант 1. Удаляем конкретный раздел. Раздел будет удаляться с помощью стандартных средств управления дисками операционной системы Windows.

Вариант 2. Выполняем очистку диска от всей таблицы разделов. Удаление таблицы разделов будет осуществляться с помощью команды diskpart clean.

Вариант 3. Затираем таблицу разделов программой dd или BOOTICE. Для MBR диска это первый сектор (512 байт), а для GPT диска, это первые 34 сектора (34 * 512 = 17408 байт).

# MBR
dd if=/dev/zero of=/dev/sdX bs=512 count=1

# GPT
dd if=/dev/zero of=/dev/sdX bs=512 count=34


Учитывая, что для тестов будут использоваться две таблицы разделов MBR и GPT, всего получается 6 тестов. Причем перед каждым новым тестом, диск будет полностью затираться нулями.

Теперь по поводу самих разделов. Всего их будет два.


Оба раздела будут содержать один и тот же набор тестовых файлов.



Восстанавливаем Таблицу Разделов


Теперь, когда все готово к проведению процедуры восстановления, приступим к воспроизведению тестовых сценариев. Каждый сценарий будет рассмотрен для обоих видов таблиц разделов, MBR и GPT.

Важно! Если восстанавливаемый диск содержит ценные для вас данные, не поленитесь создать его посекторную копию.


MBR


Флешка, или далее по тексту Тестовый Диск, инициализирована таблицей разделов MBR, и содержит два раздела объемом приблизительно в 200 МБ, расположенных в начале диска.




Восстанавливаем Удаленный Раздел


На тестовом MBR-диске удален первый раздел Partition1. Попробуем восстановить данный раздел.


Запускаем TestDisk.


Откроется консольное окно программы, с интерактивным режимом управления. Первый экран программы, это выбор режима логирования. Всего три варианта: Создать лог (Creare), Дописать существующий лог (Append), Без логирования (No Log).

Выбираем вариант по желанию. В моем случае, во всех последующих запусках будет выбран режим No Log.

Следующий экран, это выбор диска. Выбираем целевой диск и нажимаем ENTER.


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


По логике нам подходит тип intel, так как используется таблица разделов MBR. Попробуем использовать его. Встаем на пункт intel и нажимаем на пункт ENTER.


Выбрав таблицу разделов, перед нами откроется основное меню работы с программой. Меню состоит из следующих пунктов:

[Analyse] - Analyse current partition structure and search for lost partitions (Анализ текущей структуры разделов и поиск потерянных разделов)

[Advanced] - Filesystem Utils (Утилиты для работы с файловой системой)

[Geometry] - Change disk geometry (Изменить геометрию диска)

[Options] - Modify options (Опции программы)

[MBR Code] - Write TestDisk MBR code to first sector (Запись MBR кода программы TestDisk в первый сектор диска)

[Delete] - Delete all data in the partition table (Удалить все данные диска)

[Quit] - Return to disk selection (Вернуться к выбору диска)

Интересующий нас пункт это Analyse. Выбираем его и нажимаем клавишу ENTER.


На экране анализа есть два варианта выбора дальнейших действий, Quick Search и Backup. Первый отвечает за быстрый анализ диска, на наличие утраченных разделов. Второй, то же что и первый, но с предварительным сохранение информации о текущей таблице разделов в файл backup.log.

Кроме кнопок выполнения поиска, выше, можно увидеть текущие разделы диска. В данном случае присутствует лишь раздел Partition2.

Выбираем пункт Quick Search и нажимаем ENTER.


С самого начала поиска, сразу будет обнаружен раздел Partition1. В данной ситуации можно остановить поиск, либо дождаться до конца поиска.

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


В результатах поиска можно обнаружить, что удаленный раздел Partition1 найден, а так же найден раздел Partition2. Нажимаем клавишу ENTER.


Вернувшись на экран выполнения анализа, можно увидеть, что список разделов содержит все необходимые нам разделы. Кроме этого, в нижнем меню появились кнопки Deeper Search, выполняющую более глубокий поиск, и Write, выполняющую запись найденных разделов на диск.

Так как утраченный раздел найден, выбираем пункт Write и нажимаем ENTER.


Программа запросит подтверждение. Нажимаем на клавишу Y.


Программа сообщит, что внесенные изменения вступят в силу после перезагрузки. Это целесообразно лишь при восстановлении системного раздела с операционной системой. В данном случае достаточно нажать на кнопку Ok.

Проверим содержимое диска после восстановления раздела.


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



Восстанавливаем Все Удаленные Разделы


На тестовом MBR-диске удалены все разделы, с помощью команды diskpart clean.



Попробуем восстановить удаленные разделы.

Так как все действия выполняемые далее, полностью идентичны действиям выполненным в предыдущем разделе, я не буду подробно расписывать каждый шаг. Вместо этого будет представлен скринкаст.


Разделы успешно восстановлены. Контрольные суммы файлов на обоих разделах корректны.


Если внимательно просмотреть скринкаст, то можно заметить, что на этапе выбора типа таблицы разделов, программа уже не может подсказать ее возможный тип. Так как мне заранее было известно, что на диске использовалась таблица разделов MBR, я уверенно выбрал пункт intel. А что делать если вы не знаете какая была использована таблица разделов? В данной ситуации, учитывая что в основном используются таблицы разделов MBR или GPT, то верным решением будет дойти до экрана анализа наличия разделов, и обратить внимание на сообщение программы.


Если к примеру вы выбрали таблицу разделов EFI GPT, и экран анализа показывает сообщение о неверной сигнатуре диска, то возможно корректной будет таблица разделов intel.

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


Восстанавливаем Поврежденную Таблицу Разделов


На тестовом MBR-диске, выполнено затирание первого сектора диска программой BOOTICE.



Выполним восстановление разделов. Подробное рассмотрение шагов, смотрите в предыдущих разделах. Данные шаги идентичны, поэтому их рассмотрение опущено.


Разделы успешно восстановлены. Контрольные суммы файлов на обоих разделах корректны.



GPT


В качестве тестового диска для тестирования возможности восстановления GPT-разделов, был использован виртуальный жесткий диск размером в 500 МБ. Сделано это ввиду очень медленного сканирования таблицы разделов GPT. Диск был полностью затерт нулями программой BOOTICE. После чего, на нем была создана таблица разделов GPT с двумя разделами, приблизительным объемом в 200 МБ.



Восстанавливаем Удаленный Раздел


На тестовом GPT-диске удален раздел Partition1. Попробуем его восстановить.


Запускаем TestDisk. Выбираем режим логирования No Log.


Выбираем целевой диск.


Программа определит тип используемой таблицы разделов, в данном случае это EFI GPT, и выставит фокус на соответствующий пункт. Соглашаемся с выбором программы, так как выбор правильный, и переходим дальше.

В основном меню работы с диском, выбираем пункт Analyse.


Перейдя на экран анализа, обращаем внимание на количество разделов. Обращаем внимание на наличие еще одного раздела, кроме известного Partiton2. Это раздел MSR раздел. Необходим он исключительно операционной системе Windows.

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


Начнется сканирование, в результате которого, будут найдены разделы Partition1 и Partition2. Но раздела MSR в списке нет. Так как, был выбран режим сканирования с предварительным сохранением сведений о разделах, попробуем их загрузить. Нажимаем на клавишу L.


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


Список найденных разделов дополнится загруженными из бэкапа, они будут выделены зеленым цветом. Зеленый цвет означает, что данный раздел выбран для последующего восстановления на диске.


Выбранные разделы программой имеют тип Unknow. Восстанавливать разделы неопределенного типа нельзя, потому что они не восстановятся. Вариантов развития дальнейших событий два, либо задать тип подгруженных разделов вручную, либо выбрать найденные, с определившемся типом, и для оставшегося, неопределенного раздела, задать тип вручную.

Пойдем по второму пути. Сначала выберем найденные программой разделы Partition1 и Partition2. Пометить, или снять пометку с разделов, можно с помощью стрелок ← (снять отметку) или → (пометить).


А для первого раздела, зададим тип вручную. Для этого выбираем его, и нажимаем на клавишу T. Из предложенного списка выбираем тип MS Reserved и нажимаем на клавишу ENTER.


Программа предложит выбрать тип файловой системы. Выбираем Unknown и нажимаем на клавишу ENTER.


Мы снова вернемся на экран выбора найденных разделов. Так как все необходимые разделы уже выбраны, и все выбранные разделы имеют определенный тип, то просто нажимаем на клавишу ENTER, чтобы перейти далее.


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


Подтверждаем выполнение записи нажатием на клавишу Y.


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


Проверим, восстановился ли удаленный раздел.


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


Восстанавливаем Все Удаленные Разделы


На тестовом GPT-диске удалены все разделы, с помощью команды diskpart clean.



Попробуем восстановить все удаленные разделы.

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


Из особенностей можно отметить, что восстановить раздел MSR не удалось. Он не был найден. Так как данный раздел не несет никакой полезной нагрузки для пользователя, данный факт нельзя считать недостатком.

Целевые разделы, были успешно восстановлены.


Контрольные суммы файлов на обоих разделах корректны.


Восстанавливаем Поврежденную Таблицу Разделов


На тестовом GPT-диске, выполнено затирание первых 34 секторов диска программой BOOTICE.



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


Несмотря что таблица разделов была полностью затерта, программа успешно определила ее резервную копию с конца диска. Это особенность таблицы разделов GPT.

Все разделы удалось успешно восстановить.


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


Итог


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

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

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

В статье было рассмотрено: Как восстановить удаленный раздел с помощью программы TestDisk? Как восстановить все удаленные разделы с помощью программы TestDisk? Как восстановить поврежденную талицу разделов с помощью программы TestDisk?

Комментариев нет :

Отправить комментарий