recorver.lite

заметки о восстановлении данных на жестких дисках

крис касперски ака мыщъх noemail

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

Современные операционные системы класса Windows NT и жесткие диски с технологией в стиле S.M.A.R.T поддерживают целый комплекс защитных мер по предотвращению непреднамеренной порчи данных. Слово «непреднамеренной» здесь ключевое. Главный виновник большинства разрушений – сам пользователь. Это он создает рассадник вирусов на компьютере, это он бездумно устанавливает кривой софт откровенно левых производителей, это он манипулирует настройками в которых ни хрена не понимает…

Возможно ли восстановить разрушенные данные? Ну если не все данные, то хотя бы одну курсовую или дипломную работу, потеря которой ставит на вашей дальнейшей карьере жирный крест?

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

С другой стороны, многие «специалисты» используют те же самые утилиты, что и вы, поэтому отдавать винчестер им на растерзание по меньшей мере неразумно. К потерянным данным добавятся еще и потерянные деньги. Жители крупных городов (Москвы, Ростова, Киева) практически всегда могут найти фирму, специализирующуюся на восстановлении данных, как-то: EPOC (http://www.epos.kiev.ua/) или DATA Recovery (http://www.datarecovery.ru/index.html). В глубинке же дела обстоят значительно хуже. Массового рынка восстановления нет, а следовательно нет и фирм, выбравшим восстановление данных основным направлением своей деятельности. Однако, «дотянуться» до патриархов отечественного восстановления можно и через Интернет.

Технологий удаленного восстановления собственного говоря всего две: в первом случае вам по электронной почте сбрасывают утилиту, формирующую загрузочную дискету с автономным терминалом. Загружаетесь с нее, вы входите в Интернет и передаете удаленному оператору все права по управлению вашей машиной. Главный минус этого подхода в том, что на продолжении всей процедуры восстановления вы вынуждены «висеть» в Интернете, что в отсутствии выделенки очень неудобно. Поэтому, на практике обычно используется другой подход и роль терминального сервера выполняет не компьютер, а не посредственно сам пострадавший пользователь. Оператор пересылает программу, формирующую диагностическую дискету, которая анализирует ситуацию и генерирует отчет, который необходимо возвратить оператору. Затем, вам присылается либо полностью автоматизированная «лечилка», либо еще одна диагностическая программа. В отсутствии Интернета передачу данных можно осуществить по почте или прямому модемному соединению.

Рисунок 1 восстановление данных через Интернет

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

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

recorver.lite_image_1.jpgrecorver.lite_image_2.jpg

Рисунок 2 пересадка микросхемы постоянной памяти

Никогда и ни при каких обстоятельствах не вскрывайте крышку гермоблока! Делать это можно только в особо чистой атмосфере специальной комнаты. Единственная пылинка, попавшая под головку винчестера может стоить им обоим жизни. Кстати о головках. Среди обывателей ходит совершенно нелепая легенда, что они «залипают» и чтобы их «разлепить» следует аккуратно стукнуть по винчестеру рессорой от трактора «Беларусь» или резко крутануть его в вокруг своей оси, неизбежно выронив из рук и уронив на снующего между ног кота Мурзика. Бред! Когда пластины винчестера начинают вращаться, залипшие головки выдираются с мясом и «разлепять» там особо уже и нечего (если они действительно «залипали»). Подшипники (особенно с гидродинамические) действительно, нередко заклинивают да так, что вал не провернешь даже пассатижами. Какие уж тут вращения в горизонтальном направлении…

Впрочем, до тотальных отказов дело обычно не доходит и все ограничиваются сбойными секторами. Обнаружив такие, ни в коем случае не пытайтесь запускать диагностические утилиты, включая и утилиты от самого производителя винчестера. По непонятной причине практически все они, встретив сбойный сектор, мучают его до победного конца, неизбежно распростирая зону воздействия дефекта как вглубь, так и в ширь или, что еще хуже, уродуя магнитную головку, цепляющуюся за неровности дефективной зоны. Каждый винчестер имеет специальный настроечный регистр, который помимо всего прочего задает и количество повторов чтения, если с первой попытки сектор прочитать не удалось. Установите его либо в ноль (не делать повторов), либо в единицу, если ноль закреплен за значением «количество повторов по умолчанию» (как обстоят дела в конкретно взятом случае поможет установить техническая документация, скаченная с сайта производителя). Длинное чтение секторов (longread) возвращает весь сектор целиком – пользовательские данные вместе с корректирующими кодами. Различные модели жестких дисков имеют свои особенности реализации данной команды, которые, к сожалению, не всегда становятся документированными и требуемую информацию приходится по крупицам собирать в Интернете (как вариант – можно дизассемблировать прошивку, но это требует достаточно высокой квалификации).

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

recorver.lite_image_3.jpgrecorver.lite_image_4.jpg

Рисунок 3 диск «протертый» знаменитой утилитой Tiramisu

Когда винчестеры с NTFS на борту бороздят дисковое пространство, говорить об остальных файловых системах (типа FAT16/32 или HPFS) становится просто не этично (о покойниках плохо не говорят – HPFS давно труп, а FAT, хоть и не труп, но уже дышит на ладан). Поэтому, сосредоточим свое внимание исключительно на NTFS. Это очень надежная система и «уронить» ее можно только вместе со всем системным блоком, а для уничтожения данных потребуется тротил или нитроглицерин. Однако, абсолютной защиты не существует и катастрофы различной степени тяжести все-таки случаются…

Для восстановления винчестера, содержащего один или несколько NTFS-разделов, подключите его «вторым» к компьютеру, на котором уже установлена Windows NT/2000/XP, на которой установлено все необходимое программное обеспечение. Так же вам потребуется и консоль восстановления. Чтобы до нее добраться вставьте дистрибутивный диск в CD-привод и сделайте вид, что хотите установить операционную систему, но на определенном этапе установки, когда инсталлятор спросит «чего тебе надобно, старче», нажмите <R> выбирая RecoveryConsole.

Консоль восстановления представляет собой разновидность командного shell'а с кучей полезных утилит на борту и выглядит приблизительно также, как и старый добрый command.com. По умолчанию, вы имеете доступ только к папкам WINNT и Program Files, а чтобы скопировать данные из других папок (при условии, что файловая система еще цела) необходимо заблаговременно в «Локальных параметрах безопасности» (папка Администрирование в Панели Управления) найти пункт «Консоль восстановления: разрешить копирование дискет и доступ ко всем папкам» и перевести рубильник во включенное состояние. Как вариант можно, не покидая консоль восстановления, отдать команду «SET AllowAllPaths = true» для разблокирования доступа ко всем каталогам и «SET AllowRemovableMedia = true» для снятия запрета копирования файлов на гибкий диск.

Непосредственно из консоли восстановления можно запустить chkdsk логический диск. Ключ «/p» означает более глубокую проверку с внесением всех изменений, а ключ /r – поиск и восстановление дефективных секторов. Пользоваться chkdsk'ом категорически не рекомендуется, но… если никакой других идей у вас нет, на худой конец сойдет и он.

Если ни один логический диск недоступен (команда «С:» выдает ошибку, а chkdsk говорит, что такого тома просто нет), скорее всего повреждена таблица разделов (partitiontable), находящаяся в главном загрузочном секторе (MasterBootRecord или сокращенно MBR). Ее восстановлением занимаются десятки утилит (например, Media RECORVER http://www.mediarecover.com/advanced-file-recovery.html), но при желании эту операцию можно осуществить и самостоятельно (см. врезку «техника восстановления MBR-сектора»). Консоль восстановления поддерживает команду FIXMBR физический диск (физический диск задается в формате \Device\HardDiskN, где N – номер винчестера, считая от нуля), которая, если верить названию, должна лечить MBR, но на самом деле она всего лишь записывает туда системный загрузчик, оставляя таблицу разделов в том состоянии в котором она была. Восстановление системного загрузчика требуется в тех случаях, когда BIOS не может обнаружить загрузочный диск, выдавая сообщение «not-systemdisk» или что-то в этом роде. Соответственно, команда FIXBOOT (без параметров), «лечит» основной загрузочный раздел, а точнее записывает в его начало стандартный boot-загрузчик. Воспользуйтесь ей, если операционная система не загружается, а на экране появляется надпись наподобие «missingoperationsystem».

Если корневой каталог не отображается или содержит бессвязный мусор, то случилось самое страшное, что только могло произойти – навернулась главная файловая таблица (MasterFileTableили сокращенно MFT), описывающая размещение файлов на диске. Вообще говоря такое случается крайне редко. Благодаря поддержке механизма транзакций, Windows автоматически выполняет откат, если операция обновления файловой системы завершилось неуспешно. Однако, когда NTFS-драйвер едет крышей (например, из-за конфликтов с другими драйверами или нарушения целостности кэш-буфера), транзакции уже не спасают и дисковая структура гробится. Первые 4 записи таблицы MFT хранятся в специальном резервном файле, на который указывает поле «ClustertoMFTmirr» и могут быть элементарно восстановлены. А как быть со всеми остальными? Увы! Искаженные записи утеряны безвозвратно и их уже не вернуть! Если диск не был обработан «врачевателями» типа chkdsk или NDD, что расшифровывается как NortonDistDestroyer, то шансы на ручное восстановление информации достаточно велики, однако, даже поверхностное изложение методик восстановление требует сотен страниц убористого текста к концу которых читатель начинает откровенно скучать. Единственная утилита, которой я доверяю – это Crash Undo 2000, вытягивающая максимум информации, который только можно вытащить из уцелевших осколков и практически не уступающая ручному восстановлению. Однако, никаких гарантий, что после лечения диску не сделается еще хуже у вас нет. Не очень-то утешительное заключение, но зато откровенное.

Рисунок 4 Media RECORVER за работой

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

Используя Disk Probe от Microsoft или Disk Editor от Symantec, забейте нулевой сектор физического диска нулями, чтобы избавиться от мусора который может помешать нормальному восстановлению. Для этого в меню «Drives» выбираем «PhysicalDrive», там дважды щелкните по «Physical Drive 0» (или другому загрузочному устройству), снимете галочку «Read Only» и скажите «Set Active». Затем нажмите «OK», для возвращения в основное окно программы, и перейдите в меню «Sectors». Выбрав команду «Read», в поле «StartSectors» введите «0» скажите «ОК» еще раз. Для представления информации в более наглядном виде в меню «View» можновыбратьпункт «Partition table».

Если диск не был разбит и содержит всего один логический раздел, для его восстановления все поля следует заполнить следующим образом: «BootIndicator» – в SYSTEM, «System ID» – в NTFS, StartingHead/Sector/Cylinder – в 1/1/0, а EndingHead/Sector/Cylinder – на последнюю головку/сектор/цилиндр вашего жесткого диска соответственно (параметры диска можно узнать в BIOS). Total Sectors – содержит полное количество секторов, а Relative Sector вычисляется по следующей формуле: (Cylindernumber * SectorsperTrack * Heads) + (Headnumber * SectorsperTrack) + (SectorNumber -1), что соответствует адресу 0/0/1. (Значения SectorperTrack и SectorperTrack можно узнать из диалогового ока «DiskInformation», вызываемого через меню «Drives»). После сохранения внесенных изменений, перезагрузитесь и, войдя в консоль восстановления, отдайте команду FIXMBR для записи системного загрузчика.

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

Рисунок 5 восстановление таблицы разделов

Разбитые диски одолеть значительно сложнее. Как минимум необходимо определить границы первичного раздела и реконструировать ссылку на расширенный раздел. Это можно сделать как автоматически (например, утилитой DiskEditor от PhysTechSoft, не путать с Disk Editor от Symantec), так и вручную. Будем отталкиваться от того факта, что в начале каждого раздела расположен boot-сектор. Предположим, что он не затерт, тогда начало следующего раздела можно идентифицировать по его имени (например, «NTFS»), находящемуся по смещению 3 относительно начала сектора. В меню «Tools» выбираем «Search Sectors» и заполняем поля появившегося диалогового окна в соответствии с приведенным рисунком, подставляя вместо «Lastsectortosearch» размер вашего винчестера в секторах.

Рисунок 6 поиск следующего раздела

После достаточного продолжительного шуршания диском, когда наконец требуемый сектор будет найден, переключитесь в режим «NTFS Bootsector», убедившись в правдоподобности всех полей и в том, что это не зеркальная копия boot-сектора основного раздела. Если все поля правдоподобны и не совпадают с полями основного boot-сектора, отнимите от него удвоенное значение «SectorperTrack» (это можно узнать в Drivers  VolumeInformation) и уменьшите его еще на единицу. В результате вы получите размер первого раздела в секторах. Занесите его в «TotalSectors», а затем заполните поля EndingHead/Sector/Cylinder, вычисляя их на основе Total Sectors с одной стороны и значений SectorperTrack, TrackperCylinder с другой.

Теперь переместите «PartitionTableIndex» на Partition 2, «System ID» на Extended (или ExtendedLBA если требуется включение поддержки больших дисков), в поле Relative Sector занесите сектор с найденным boot'ом увеличив его на единицу, а так же заполните поля StaringHead/Sector/Cylinder, вычисляя их на основе Relative Sector за вычетом значения SectorperTrack (вспомните вышеприведенную формулу!). При стандартной разбивке поля EndingHead/Sector/Cylinder указывают на конец диска и заполняются элементарно.

После перезагрузки войдите в консоль восстановления и дайте команду FIXMBR. Перезагрузитесь еще раз. Все потерянные логические разделы должны появится вновь. Если же этого не произошло… Что ж! Тогда обращайтесь за помощью к настоящим профессионалам!

В зависимости от версии операционной системы копия boot-сектора хранится либо в середине, либо в конце раздела. Для ее поиска воспользуйтесь функций «SearchSector» в меню Tools, заполнив все поля диалогового окна как на рис. 7, первый же найденный сектор (при условии, что он не выходит за пределы логического диска) и будет искомой резервной копией.

Запишите сектор на диск (File  Saveas), а затем вернувшись в разрушенному boot-сектору (Sector  Read Sector:0, View  PartitionTable, RelativeSector: GO), считайте только что сохраненный сектор с диска (File  Open File). Сохраните изменения на диск (Sector  Write).

Теперь войдите в консоль восстановления и дайте команду FIXBOOT для записи boot-загрузчика. Перезагрузитесь… Если все было сделало правильно, диск заработает как миленький. Ну а на нет и суда нет.

Рисунок 7 резервная копия boot-сектора

EasyRecovery – крайне простая, но довольно мощная утилита для восстановления разрушенной загрузочных секторов и искореженной файловой системы. Поддерживает FAT12, FAT16, FAT32 и NTFS. Доступна демонстрационная версия.

CrashUndo 2000 – утилита отечественного производства. Пожалуй, самый мощный восстановитель под NTFS из всех, что мне доводилось видеть. Работает даже с теми дисками, которые Windows наотрез отказывается монтировать. Использует минимум системной информации, реконструируя ссылочные структуры по их сигнатурам и восстанавливает файлы даже при значительных повреждениях MFT. Реконструирует дерево каталогов даже если одно или несколько ветвей, несущих материнские каталоги, оказываются разрушенными.

AnalizHD/DoctorHD – еще две отечественные разработки. Предназначены для удаленного восстановления данных по Интернету в том случае, если поблизости от вас нет ни одной мало-мальски серьезной фирмы, специализирующейся на лечении HDD.

EraseUndo for NTFS – восстанавливает удаленные файлы, которые еще не были физически затерты на диске.

симптомдиагнозлекарство
операционная система не загружается, BIOS выдает надпись «nonsystemdisk», missingoperationsystem или что-то в этом родепри загрузки с дискеты логические диски не видны (команда C: дает ошибку)слетел загрузчик, повреждена таблица разделоввосстановите MBR по методике, описанной в одноименной врезке
логические разделы видны и исправны (команды C: и dirC: работают)слетел boot и/или MBR загрузчикзапустите консоль восстановления и дайте команды FIXBMR и FIXBOOT
логические разделы видны, но команда dirC: дает ошибкуповрежден boot-сектор или MTFпопробуйте восстановить boot-сектор по методике, описанной в одноименной врезке, а если это не поможет, запустите CrashUndo 2000
операционная система начинает закружатся, но затем виснет или прерывается с сообщением об ошибкекоманда dirC: выполняется нормально, chkdsk не находит ошибокнавернулась сама операционная системапереустановите операционную систему, предварительно скопировав все ценные файлы на другой носитель
команда dir в одном или нескольких подкаталогах выводит мусор или показывает не все файлыповреждена MTF или одна из ее дочерних структурзапустите CrashUndo 2000
некоторые файлы не читаются, при этом винчестер издает ритмичные скребущие звуифизические повреждения поверхности дисказапустите EasyRecovery
некоторые файлы содержат в себе фрагменты других файловна диске образовались пересекающиеся кластерызапустите chkdsk
свободное место на диске планомерно уменьшается без видимых причиннекоторые кластеры оказались потеряннымизапустите chkdsk