Как восстановить таблицу разделов

Основные понятия

  • Жесткие диски состоят из нескольких магнитных блинов, напоминающих CD-диски. Каждый диск может хранить данные на обеих сторонах и имеет головки для чтения и записи. Данные хранятся на концентрических кольцах, так называемых цилиндрах. Цилиндры могут быть разделены на секторы или блоки.

  • Наименьшая логическая единица информации, которой оперируют программисты, – 1 бит. Во время работы с жестким диском наименьшая единица – сектор. Это означает, что компьютер читает или пишет 512 байт, даже если вы хотите прочитать или записать 1 байт.

  • Перед тем как начать процесс восстановления, вы должны понимать три вещи:

    • Master Boot Record (далее MBR). Это то, с чего всё начинается. MBR всегда размещается в первом секторе на диске. Если такая запись есть, то диск является загрузочным, а если нет, то диск не загрузочный. Диск, содержащий операционную систему, должен быть загрузочным.

    • Volume Boot Record (далее VBR). Сектор также известен как загрузочный сектор или загрузочная запись раздела. Это понятие разработано IBM и используется для создания разделов на жестком диске (например: «C:\», «D:\», «E:\» и т.д.). Каждый логический диск имеет свой собственный VBR.

    • File Systems (файловые системы). Это набор алгоритмов, определяющих способ организации, хранения и именования данных, а также структуру информации. Если вы хотите восстановить файлы, вы должны знать, какой тип файловой системы на вашем диске (NTFS или FAT32).

Уровень повреждения

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

Рассмотрим подробнее:

  • Уровень 1: Это простой уровень, когда повреждена только таблица раздела вашего MBR. В данном случае нужно найти VBR. Как только будет найден VBR, вы сможете восстановить данные.

  • Уровень 2: В этом уровне некоторые поля вашего VBR повреждены, из-за чего ОС не в состоянии распознать свою файловую систему. В данном случае вы должны проанализировать VBR, чтобы получить адресное поле вашего корневого каталога в FAT32 и MFT в NTFS. Если это получится, то вы сможете найти и восстановить ваши файлы, в противном случае вам придется осуществить поиск сигнатур файлов по всему диску.

  • Уровень 3: В этом случае нет гарантии, что вы сможете восстановить данные, поскольку может иметь место физическое повреждение вашего оборудования: диск повреждён огнём, испорчен в результате падения, или в него попала вода и т.д. Для начала понадобится заменить поврежденные детали диска и восстановить работоспособность устройства.

Архитектура

Рассмотрим, к примеру, компьютер с одним жестким диском и двумя разделами «C:\» и «D:\» на нем. ОС установлена на диске «C:\». MBR всегда находится в первом секторе, эта запись полностью отвечает за загрузку операционной системы компьютера на базе BIOS. Рассмотрим структуру этой записи подробнее:

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

    Этот код называется код начальной загрузки (обычно 440 байт). Работа кода заключается в просмотре таблицы раздела в поисках активного раздела (например, на каком диске находятся загрузочные файлы операционной системы), чтобы найти начальный сектор активного раздела. Загружает копию загрузочных файлов из раздела в память, контролирует их и то, как загружается ОС. Мы не будем углубляться в этом направлении, так как это не нужно для восстановления файлов.

  • Таблица разделов. Размер таблицы составляет 64 байта.

    Раздел – это часть жесткого диска, которая была логически отделена, чтобы работать как отдельный диск настолько, насколько определит операционная система, и может иметь независимую структуру файловой системы. Независимо от того, какой раздел является активным, т.е. содержит ОС, начальный адрес сектора, включающего VBR раздела, содержит его размер и информацию о том, в какой системе он отформатирован: NTFS или FAT. Для восстановления файлов поиск и интерпретация таблицы разделов играют важную роль.

  • Подпись диска. MBR и VBR всегда содержат последовательность байт 0x55AA. Эта сигнатура определяет, содержит ли этот сектор MBR или VBR или нет.

Таблица разделов содержит от 1 до 4 записей размером 16 байт каждая. Давайте рассмотрим, как их интерпретировать:

  • Индикатор загрузки. Это первый байт в таблице разделов, указывающий на то, активен раздел или нет.

    Пример: находится на нём операционная система (файлы и драйвера) или нет. Если это поле содержит 0x80H (это в шестнадцатеричном виде, а в десятичном = 128), то это активный раздел. Для неактивных разделов это поле равняется 0x00h.

  • Стартовое значение CHS. Игнорируйте его.

  • Дескриптор типа раздела. Это однобайтовое поле, но очень важное, так как даёт информацию о том, какой тип файловой системы реализован на диске. Поскольку каждая файловая система имеет свой алгоритм, очень важно знать, какая файловая система реализована на вашем диске. В этом поле вы можете встретить несколько шестнадцатеричных показателей. Они приведены ниже:

    Значение Описание
    0x00h Нет раздела (нет файловой системы);
    0x01h DOS FAT-12 (файловая система);
    0x04h DOS FAT-16 (нет файловой системы);
    0x05h Расширенная DOS 3.3 (файловая система расширенного раздела);
    0x06h DOS 3.31 (большая файловая система);
    0x06h NTFS;
    0x06h FAT32;
  • Завершающее значение CHS. Игнорируйте его.

  • Адрес сектора, содержащего VBR. В первом секторе каждый раздел имеет сектор загрузки. Это поле содержит адреса подобных записей, поэтому это важное поле. Оно содержит адрес в шестнадцатеричном формате и имеет размер в 512 байт.

  • Размер раздела. Здесь можно получить размер раздела.

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

Неожиданно пропали разделы диска? Были уничтожены в результате ошибки? Не паникуйте — есть выход.
Программа testdisk позволяет восстановить поврежденную или уничтоженную таблицу разделов жесткого диска. Поддерживает большое количество файловых систем, в том числе linux ext2, reiserfs и др., а также файловые системы Windows (ntfs, fat32). Если после какой-то ошибки, у вас “пропали” разделы диска, не стоит паниковать — программа testdisk может помочь. Проверено автором man-linux.ru, на собственном опыте.
Итак, у вас пропали разделы жесткого диска. Или вы удалили их сами (например случайно), главное что вы не стирали данные, не форматировали разделы, а просто удалили их.
Не паникуйте — ваши файлы в абсолютной целости и пока вы не начали делать каких-то манипуляций с жестким диском — в сохранности. Удалена лишь информация о разделах из таблицы разделов жесткого диска. Это как ссылка на файл — без ссылки файл вроде есть, а доступа к нему нет, потому-что адрес его неизвестен.

Окей, будем восстанавливать таблицу.
Если у Вас нет возможности запустить ОС на компьютере, с поврежденным винчестером, для начала, вам понадобится LiveCD (желательно с операционной системой Linux). Я делал это с помощью LiveCD Linux Ubuntu, поскольку под рукой не оказалось других LiveCD, но имея выбор, предпочел бы Linux Fedora Core.
Смысл LiveCD заключается в том, что на нем расположена операционная система, которой не требуется жестких дисков вообще, т.е. можно даже отключить винчестер и это не помешает загрузиться операционной системе, расположенной на LiveCD.
LiveCD доступны для бесплатного скачивания через интернет, их можно найти например так.

После того, как вы скачали образ диска, необходимо записать его на CD (скорее всего это будет DVD-носитель). Записали? Окей, вставляем диск и грузимся с него. Внимание — не перепутайте загрузку ОС, с установкой ОС — это две огромные разницы. Boot — это загрузка, Install или Setup — это установка, вам нужна именно загрузка ОС без установки ее на жесткий диск.

Либо, если на компьютере с поврежденным винчестером ОС загружается — можно обойтись без LiveCD, самое главное иметь рабочую ОС имеющую доступ к поврежденному винчестеру.

Окей, как бы там нибыло, ОС у нас загружена.
Теперь нам понадобится программа testdisk.
Эта программа умеет работать также под Windows, но все же надеюсь, что у вас загружена именно Linux и все дальнейшие рекомендации относятся именно к работе в Linux.
Для начала пробуем

~# testdisk —help

Выдало справочную информацию — окей, программа есть в комплекте. Выдало ошибку, что программа не найдена — придется устанавливать.
Для установки программы, в зависимости от того, какая у вас ОС Linux, откройте терминал (консоль) и наберите:
В системах класса RH (Red Hat, Fedora Core, CentOS)

sudo yum install testdisk

В системах типа Debian, Ubuntu:

sudo apt-get install testdisk

В системе Linux Gentoo:

sudo emerge testdisk

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

В целом, установка программы не должна составить больших проблем и скорее всего не придется компилировать ее из исходников — чаще всего она устанавливается с помощью менеджера пакетов (yum, apt-get или emerge, в зависимости от ОС).

Итак, программу установили.

Мучить многострадальный первый диск, восстановленный всего несколько часов назад, я не хочу. Поэтому, покажу на примере своего второго диска sdb, на котором находится (и всегда находился) лишь один раздел, что не очень подходит для нашего примера, к сожалению, но за неимением других вариантов подойдет и этот.
Запускаем:


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

Нам предлагают выбрать один из жестких дисков, для анализа. В моей системе их два, я выбираю sdb (второй), ну а если диск в системе один, то и выбирать не придется.
Выбирать можно стрелками вверх-вниз.
Стрелками влево-вправо, можно выбрать (продолжить), либо (выход).
Выбираем , жмем Enter:


Теперь, нам предлагают выбрать платформу. В большинстве случаев это будет “Intel”, если же у вас другая платформа — вероятно вам об этом известно.
Выбираем платформу и жмем Enter:

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


Здесь команда снова предлагает опции на выбор, а также показывает текущие разделы винчестера. В текущий момент, как вы помните, на жестком диске существует только один раздел, о чем и сообщила программа.
Оставляем свой выбор на (для этого достаточно ничего не менять) и снова жмем Enter:


Теперь нас спрашивают, нужно ли искать разделы, созданные ОС Windows Vista. Если только вы не используете Висту — нажмите N:


После анализа, перед нами открывается список найденных разделов. На моем втором винчестере как был один раздел, так и есть. Однако, если бы недавно их было несколько — они бы непременно нашлись.
Вы можете выбрать раздел (стрелками вверх-вниз) и нажать на клавишу P (английская “П”), что бы посмотреть список файлов, содержащихся на разделе (в том числе и на удаленном ранее разделе).
Так же, можно добавлять разделы (A), менять их тип (T), удалять разделы(D) или загружать резервную копию таблицы разделов(L) если она была создана ранее.
Нажав на Enter, вы заявите программе, о своем желании сохранить новую таблицу разделов и после подтверждения, программа запишет новую таблицу разделов, восстановив таким образом, удаленные (или поврежденные) ранее разделы.

Данная статья написана через несколько часов после того, как автор собственноручно восстановил три раздела с ОС Linux, зверски удаленных win-программой Partition Magick.

Восстанавливаем таблицу разделов жесткого диска

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

После этого вы обязательно получите сообщение от Windows: «Прежде чем использовать диск в дисководе Х:, его нужно отформатировать. Отформатировать?».

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

Прежде всего, вам потребуется достаточное количество памяти на диске, чтобы разместить там спасенные данные. Для восстановления таблицы разделов диска вы можете воспользоваться бесплатной утилитой TestDisk. Ее можно скачать с сайта производителя cgsecurity.org.

Также понадобится инструмент DiskPart. Начиная с версии Vista эта программа идет в комплекте с Windows, однако пользователям XP ее придется загрузить с сайта microsoft.ru.

Утилита TestDisk необходима для обнаружения данных без таблицы разделов и их копирования.

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

Не стоит бояться командной строки Конечно, программы TestDisk и DiskPart — это мощные инструменты, при работе с которыми можно столкнуться с определенными трудностями. Но не стоит бояться: внимательно читайте каждое сообщение, просматривайте каждый экран и старайтесь максимально придерживаться нашей инструкции.

Если на вашем компьютере используется несколько HDD и/или твердотельных накопителей, особенно важно следить за буквами дисков и обозначениями. Нет ничего обиднее, чем удалить разделы совершенно непричастного исправного носителя. Кстати, после процедуры вы сможете спокойно использовать жесткий диск с когда-то испорченной таблицей разделов. Даже если источником проблемы стали неисправные секторы на HDD, не стоит опасаться, что это снова произойдет.

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

ПРИМЕЧАНИЕ: мы не несем ответственности за повреждение ваших аппаратных средств или потерю данных, которые могут возникнуть при выполнении приведенных в статье рекомендаций .

Как это сделать?

1. РАСПОЗНАЕМ ПРОБЛЕМУ Если Windows предупреждает, что ваш жесткий диск не отформатирован, это необязательно соответствует истине. Проверить, так ли это, можно запустив встроенный инструмент Windows «Управление дисками».

2.ПРОВЕРЯЕМ ЖЕСТКИЙ ДИСК При отсутствии неполадок в средстве «Управление дисками» («Панель управления | Администрирование | Управление компьютером») диск будет обозначен как «RAW» или иметь статус «Исправен».

3.ПЕРВАЯ ПОПЫТКА ВОССТАНОВЛЕНИЯ Используйте собственную утилиту Windows chkdsk в редакторе командной строки cmd, который необходимо вызывать от имени администратора . Запустите команду «chkdsk x: /f», где вместо «x» подставьте букву вашего диска.

4. ЗАПУСКАЕМ ПРОГРАММУ ДЛЯ АНАЛИЗА Если предыдущая процедура не принесла успеха, запустите TestDisk. Клавишей «Enter» подтвердите настройку «Create». На следующем этапе выберите свой жесткий диск и запустите тестирование последовательностью «Proceed | Intel | Analyse | Quicksearch».

5. ПЕРЕЗАПИСЫВАЕМ ТАБЛИЦУ РАЗДЕЛОВ Выберите свой раздел, нажмите на «Continue» и создайте новую таблицу разделов с помощью функции «Write». Если раздел не отобразится, повторите процесс, используя «Deeper search».

6. СОХРАНЯЕМ ИСЧЕЗНУВШИЕ ФАЙЛЫ Если процесс прошел неудачно, повторите действия этапа 4, однако после «Continue» выберите «List files». Для копирования файлов следуйте указаниям внизу окна.

7. ВОЗВРАЩАЕМ ЖЕСТКИЙ ДИСК В РАБОЧЕЕ СОСТОЯНИЕ После успешного копирования запустите программу DiskPart от имени администратора . С помощью функции «List disk» отобразите все жесткие диски, выберите нужный командой «Select disk x» и очистите его («Clean»).

8. ФОРМАТИРУЕМ И РАЗБИВАЕМ НА РАЗДЕЛЫ В «Управлении дисками» инициализируйте и, если требуется, разбейте на разделы данный диск, а затем верните на него данные.

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

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