MBR занимает ровно 512 байтов – один сектор. Структура этой записи представлена в табл. 2.1.
Таблица 2.1. Структура MBRЧетыре 16-байтных блока, каждый из которых описывает один раздел, образуют таблицу разделов – Partition Table. Максимальное количество разделов, которое может быть описано в MBR, – четыре. Каждый блок состоит из 10 полей (табл. 2.2).
Таблица 2.2. Поля таблицы разделовФлаг активности указывает на то, что раздел активен. Из всех разделов на диске активным может быть лишь один. Код типа раздела – однобайтовый идентификатор. Если его значение 00h, то считается, что этого раздела не существует и его содержимое игнорируется. Любое ненулевое значение означает, что в указанном пространстве находится раздел определенного типа. Так, например, идентификатор 06h указывает на раздел, отформатированный в FAT16, 0Bh или 0Ch – на раздел FAT32, а 07h – на раздел NTFS.
Если на диске нужно создать больше четырех разделов, то следует использовать специальный тип раздела с кодом 05h – расширенный раздел (Extended Partition).
Расширенный раздел отличается от всех остальных типов. Он описывает не сам раздел, а область пространства накопителя, в которой описаны разделы. В том секторе, который прописан в MBR как сектор начала расширенного раздела, фактически содержится еще одна загрузочная запись – Extended Boot Record (EBR) (табл. 2.3). Кода загрузчика в ней нет, есть только таблица разделов и сигнатура.
Таблица 2.3. Структура EBRУказатель на раздел описывает обычный раздел (Partition), как показано в табл. 2.2. Если обычный раздел занимает не все пространство, то в таблице разделов появляется второй элемент, который вновь описывает оставшееся пространство как Extended Partition, то есть указатель на следующий EBR. В секторе, на который ссылается эта запись, точно так же описывается один раздел, и, если осталось место, делается очередная запись об Extended Partition. Так продолжается до тех пор, пока пространство не будет разделено. Фактически все записи о расширенных разделах являются цепью (Extended Partition Chain), в которой от дискового пространства отрезаются кусочки, пока место не закончится. Ошибка в любом элементе этой цепи приведет к ее обрыву. Все разделы, записи о которых лежат после разрыва цепи, операционная система найти не сможет, а занимаемое этими расширенными разделами пространство она будет считать незанятым.
Файловые системы
Таблица разделов указывает на первые сектора каждого раздела. Для размещения файлов в разделе его следует отформатировать, то есть создать внутри раздела файловую систему. Основная запись файловой системы обычно начинается в первом секторе раздела. Структура записей файловой системы зависит от ее типа. Чаще всего встречаются файловые системы NTFS и FAT.
Файловая система NTFS сейчас используется на дисках 90 % домашних и офисных компьютеров. В основе ее лежит главная файловая таблица (Master File Table – MFT). Это база данных, или таблица, строки которой соответствуют файлам тома, а столбцы — атрибутам файлов. Файловая система NTFS образована девятью системными файлами, которые скрыты от просмотра обычными средствами. Эти файлы содержат таблицы занимаемых файлами кластеров и атрибутов файлов, список шагов транзакций (проведенных операций с файлами), корневой каталог и т. д. В секторе начальной загрузки указано положение сегментов данных MFT и зеркального файла MFT. В середине диска расположен дубликат сектора начальной загрузки.
Главная файловая таблица MFT – специальный и довольно большой файл. Первые 16 строк таблицы содержат служебную информацию о самой таблице.
• В начале файла MFT находится первая (основная) таблица файлов.
• За основной таблицей файлов следует зеркальная запись (Mirror record), идентичная первой записи MFT. Если первая таблица MFT разрушена, то данные о размещении файлов берутся из зеркального файла MFT.
• Третья запись MFT ссылается на файл регистрации (log file).
Начиная с семнадцатой, записи главной файловой таблицы используются собственно файлами и папками, которые также рассматриваются как файлы NTFS. Благодаря дублированию записей MFT, а также наличию файла транзакций, файловая система NTFS считается отказоустойчивой. Восстановление данных облегчается теми же механизмами.
Файловая система FAT еще недавно была основной на разделах жестких дисков. Сегодня в этой системе форматируются, как правило, flash-диски и карты памяти. Файловая система FAT (точнее, системы FAT12, FAT16 и FAT32) образована четырьмя структурами.
• Блок начальной загрузки (boot record), который находится в первом секторе раздела.
• Таблица размещения файлов (file allocation table – FAT).
• Резервная таблица размещения файлов (backup FAT), которая используется при обнаружении повреждений в основной FAT.
• Корневой каталог (root directory).
Структуры файловых систем создаются средствами операционной системы – утилитой форматирования разделов либо служебными программами. На диске эти структуры и записи, как и таблицу разделов, можно просматривать и изменять редакторами двоичных данных.
Причины потери данных
В электрике могут возникнуть всего две неисправности: потеря контакта там, где он должен быть, или появление контакта там, где его быть не должно. На диске истинных причин потери данных тоже всего две: случайное изменение содержимого ячейки и повреждение этой ячейки. Случаев изменения содержимого очень много. Они будут рассмотрены в порядке «от поверхности диска до операционной системы».
Неисправности платы электроники ведут к недоступности диска. При этом все данные могут быть в сохранности либо поврежденной может быть лишь часть информации. После замены или ремонта платы диск может использоваться снова.
Поломки механики внутри гермоблока: отрывы и сколы головок, разрушение подшипников и двигателей очень часто сопровождаются и повреждением пластин. В таком случае винчестер чаще всего не запускается и не определяется BIOS компьютера. Бывает, что блок головок «застревает» в парковочной зоне (рис. 2.4). Возможна ситуация, когда жесткий диск стартует, но из-за повреждения одной головки недоступна группа секторов. Восстановление начинается с ремонта диска в «чистой комнате», а результат зависит от степени повреждения поверхности пластин.
Рис. 2.4. Блок головок в парковочной зоне
Повреждение пластин в общем виде проявляется как возникновение на диске BAD-блоков, то есть недоступных участков. Появление этой проблемы говорит о том, что возможности скрытого переназначения секторов уже исчерпаны. Если на поврежденный сектор приходится информация о структуре, то исчезает соответствующий уровень логической структуры диска, если файл – файл становится нечитаемым.
Случайное искажение содержимого сектора – довольно редкая ситуация. В цифровом мире случайностей почти не бывает. Это или проявление начинающегося «железного» дефекта, или результат работы вредоносной программы и в очень редких ситуациях – действительно случайная запись в момент перепадов напряжения или из-за пролетевшей космической частицы. Последнее – не шутка: воздействие космического излучения на оперативную память и жесткие диски давно изучено и статистически обосновано. Проявление дефектов или искажений содержимого секторов зависит от того, что в этих секторах записано.
Повреждение содержимого главной загрузочной записи (MBR) ведет к тому, что разделы либо не могут быть найдены операционной системой, либо их параметры определяются неверно. Самый легкий случай – повреждение сигнатуры. Операционная система решает, что на месте MBR находится случайная информация, а сам диск вообще не разбит на разделы и никакой полезной информации не несет. Для восстановления структуры диска достаточно всего лишь исправить сигнатуру любым дисковым или HEX-редактором.
При искажении или разрушении кода загрузчика попытка загрузки операционной системы с такого диска заканчивается, как правило, «зависанием» компьютера. При этом, если содержимое таблицы разделов не повреждено, вся логическая структура диска сохраняется и потери данных не происходит. Достаточно загрузить компьютер с другого диска, и вся информация на накопителе становится доступной. Для исправления кода загрузчика проще всего загрузить компьютер со стандартной загрузочной дискеты MS-DOS, а затем запустить находящуюся на ней утилиту fdisk с ключом /mbr: fdisk/mbr.
Более тяжелый случай повреждения содержимого MBR – разрушение самого содержимого таблицы разделов. При этом теряется доступ к хранящейся в разделах информации. Таблица может быть повреждена полностью или частично. Бывают случаи, когда таблица разделов MBR цела, а разрушена запись о разделах в одном из звеньев цепи Extended Partition. Методика восстановления во всех случаях одинакова: ручное исправление таблиц разделов. Альтернатива – извлечение файлов с диска с помощью программ восстановления.
Повреждение файловой системы очень похоже на повреждение содержимого MBR. Различие состоит лишь в том, что раздел на диске виден, но операционная система сообщает, что он не отформатирован. Соответственно, недоступно и все содержимое раздела. В файловых системах NTFS и FAT возможно восстановление основных записей за счет дубликатов, это делается благодаря встроенным в операционную систему средствам проверки и исправления дисков. Тем не менее исправление ошибок файловой системы часто не решает проблему – часть файлов начинает рассматриваться как потерянные цепочки. Для восстановления данных правильнее пользоваться специальными программами восстановления.
Корректное удаление файлов и папок средствами операционной системы – самая простая ситуация. Именно с ней чаще всего сталкиваются пользователи, и она же очень их пугает. В операционной системе Windows прежде всего надо искать файл в Корзине. При удалении файла или папки в таблице файловой системы сначала лишь меняется одно из полей: в FAT первый байт имени файла изменяется на 0xE5, а в MFT атрибут по смещению 14h изменяется с 1 на 0. Кроме того, в NTFS изменяется запись о свободном месте на диске в файле BitMaP. Существует множество программ, специально предназначенных для восстановления удаленных объектов.
Диагностика и тактика
Цель диагностики – выяснить, почему не читается информация с диска и что именно пропало. Это одновременно и ответ на вопрос, что делать дальше. И диагностикой, и восстановлением данных с проблемного винчестера нельзя заниматься, загрузив компьютер с него же. Оперативная система Windows в процессе загрузки и работы неизбежно начнет записывать на загрузочный и системный диск данные: временные файлы, фрагменты файла подкачки, реестра, журнала и т. д. Для «затирания» того, что необходимо восстановить, может быть достаточно совсем небольших изменений на диске.
Есть два выхода. Если у пользователя имеется второй компьютер, необходимо подключить к нему проблемный винчестер. Оптимальный вариант – подключение на отдельный шлейф. Если второго компьютера нет, нужно найти любой рабочий винчестер, подключить к компьютеру и установить на него операционную систему. Вторым следует подключить восстанавливаемый диск.
Примечание
В качестве операционной системы целесообразно выбрать операционную систему Windows XP – во-первых, так экономится место на диске, во-вторых, с этой системой хорошо работают все утилиты восстановления. Операционная система Windows 98 не поддерживает разделы NTFS, а в Windows Vista пока не гарантируется нормальная работа всех программ, особенно их устаревших версий.
Ситуации со случайным удалением или форматированием стоят особняком. Диагностировать тут нечего: можно сразу запускать программу восстановления случайно удаленных данных.
1. В ситуациях, не связанных со случайным удалением или форматированием, восстановление данных нужно начинать с осмотра винчестера. Видимые неисправности и повреждения на плате – повод заняться ее заменой.
2. Далее следует подключение разъема питания и попытка запуска диска. Если он не запускается, значит, возникла аппаратная неисправность. Ее дальнейшая диагностика является одновременно и ремонтом.
3. Если аппаратная проблема не выявлена или уже устранена, подключите винчестер к шлейфу SATA или IDE. Разумеется, делать это надо при выключенном питании. После этого оцените, как диск определяется в BIOS компьютера. Загрузите операционную систему и постарайтесь скопировать нужные данные. Если удалось сделать это с первого раза – отлично.
4. Если копирование нужных данных не удалось, целесообразно запустить диагностическую программу (MHDD или Victoria), осторожно и быстро оценить состояние секторов, проверить наличие разделов на диске. При обнаружении большого количества поврежденных или нечитаемых блоков есть два альтернативных пути:
– той же программой сохранить посекторный образ диска или раздела в файл на другом физическом диске;
– сразу запустить специальную программу (например, R-Studio), сделать ей копию диска или раздела.
5. Отключите проблемный диск. Попробуйте извлечь информацию из полученного образа программой типа R-Studio.
6. Если нечитаемых секторов на диске нет или их мало, можно извлечь информацию программой R-Studio или подобной непосредственно с диска.
Такова общая тактика.
Восстановление данных при аппаратных неисправностях
Отколотые элементы, «поджаренные» микросхемы и вздутые конденсаторы на плате электроники обычно заметны сразу. Точно так же видны гнутые ножки разъемов IDE (рис. 2.5) или колодки питания. Можно попробовать выпрямить контакты пинцетом и тонкой отверткой, но поврежденную плату контроллера, скорее всего, придется заменить.
Рис. 2.5. Вдавленный контакт в разъеме IDE
Подключите винчестер к компьютеру (только разъем питания). Включите питание компьютера и прислушайтесь. В норме диск должен сначала раскрутиться, потом выполнить рекалибровку (сопровождается несколькими короткими щелчками и жужжанием) и через 1–2 секунды выйти на штатный режим работы. Если винчестер даже не раскручивается, причин может быть несколько:
• повреждена плата электроники;
• поврежден коммутатор блока магнитных головок;
• заклинил вал шпинделя;
• «залипли» головки.
Выяснить, почему не работает диск, довольно сложно, и самый простой способ диагностики обычно заключается в замене платы электроники. Это одновременно и диагностика, и ремонт. Если причина неисправности действительно в плате, то после ее замены винчестер нормально инициализируется. Если же проблема остается, значит, она, скорее всего, локализована внутри гермоблока.
Если накопитель раскручивается, но начинает стучать, это обычно указывает на неисправности внутри гермоблока, и самостоятельно сделать что-либо вряд ли удастся. В редких случаях возможна неисправность платы электроники – прежде чем отправлять винчестер туда, где есть условия для вскрытия гермоблока, можно попробовать заменить плату.
Замена платы электроники
Плата электроники должна быть совместима с накопителем, то есть совпадать по модели, серии и, как правило, по версии прошивки. На некоторых винчестерах в микросхеме ПЗУ хранятся так называемые адаптивные настройки, записываемые в процессе изготовления и тестирования винчестера и относящиеся к конкретному экземпляру гермоблока. Тем не менее иногда взамен сгоревшего контроллера удается поставить плату от близкой модели винчестера даже другой емкости. Но для некоторых моделей различных производителей замена платы проблематична даже с винчестера из той же партии – может потребоваться перепайка микросхемы ПЗУ от «родного» диска.
Для подбора платы на накопителях Seagate необходимо совпадение версии прошивки (Firmware), указанной на этикетке гермоблока. Объем кэш-памяти на заменяемой плате должен быть не меньше, чем на оригинальной. Разные версии ПЗУ при одинаковой версии прошивки, указанной на крышке гермоблока, характерны для дисков, начиная с модели Barracuda ATA 5. Проблему можно решить перепайкой микросхемы ПЗУ с дефектной платы на рабочую. У некоторых накопителей, начиная с Barracuda 7200.7, ПЗУ встроено в микросхему процессора.
С накопителями Seagate U-серии и Seagate Barracuda ATA 4 дело обстоит проще. Для них достаточно подобрать плату электроники с такой же версией Firmware. В случае несовпадения версии Firmware можно даже перепаять микросхему flash-памяти с одной платы на другую.
У накопителей IBM-Hitachi на плате установлена микросхема энергонезависимой памяти NVRAM, в которой хранятся конфигурационные параметры. Для относительно старых дисков фирмы IBM можно просто подобрать плату с такой же версией микропрограммы, однако это достаточно сложно и обычно проще перепаять микросхему. Желательно перепаять и микросхему ПЗУ. В новых дисках в NVRAM записаны адаптивные настройки, поэтому микросхему обязательно придется перепаивать.
Существуют проблемы с винчестерами IBM серии DTLA емкостью 40–80 Гбайт, широко распространенными в начале XX века и используемыми также в наши дни. При ухудшении контакта в разъеме между платой и гермоблоком эти винчестеры не инициализируются и непрерывно громко стучат головками, за что получили меткое название «дятлы». Стоит снять плату, протереть контакты спиртом и собрать все обратно, и проблема исчезает.
У накопителей Maxtor на плате управления часто сгорает контроллер двигателя. Для успешной замены платы достаточно, чтобы совпадали надписи на наклейках на разъемах IDE.
Винчестеры Western Digital отличаются большим количеством разных версий плат. Версия платы указывается на наклейке на разъеме IDE. Кроме этого, нужно, чтобы совпадали версии ПЗУ и даже значения некоторых параметров, занесенных в ПЗУ. Лучше всего при замене платы просто перепаять ПЗУ со старой платы на новую. Если такой возможности нет, то стоит как минимум взять плату от такой же модели диска. О модели диска можно судить по надписи MDL («Модель») на крышке гермоблока: на обоих дисках они должны совпадать полностью.