Чтение диска с разрушенной служебной областью

We use cookies. Read the Privacy and Cookie Policy

Чтение диска с разрушенной служебной областью

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

Примечание

Привод выдает в интерфейс служебные сообщения о своем состоянии. Эти сообщения (Error codes или Sense Codes), в шестнадцатеричном формате, описаны стандартом MMC-3. Так, например, код 2/3A/01 (Medium not present – tray closed) означает, что лоток закрыт, и диска в дисководе нет; код 3/11/00 (Unrecovered read error) – неисправимая ошибка чтения и т. д. Всего таких кодов 40. Операционная система Windows, как правило, интерпретирует их обобщенно – как отсутствие диска в приводе, ошибку чтения или ошибку записи (обычному пользователю подробности не нужны). Истинные значения кодов демонстрируют некоторые программы, например IsoBuster, или служебные утилиты от производителей дисководов.

Все прикладные программы обращаются к приводу CD/DVD через его интерфейс, и если микропрограмма отказалась признать наличие диска в приводе, этого диска «не существует» ни для операционной системы, ни для любой из программ восстановления данных. Нам же нужно каким-то образом прочитать содержимое диска программами, о которых пойдет речь далее, и хотя бы получить посекторный образ: из этого образа затем легко будет извлечь полезную информацию.

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

Можно вспомнить тот факт, что для работы с диском на уровне секторов таблица TOC не слишком необходима. Приводу нужны лишь три основных поля TOC: стартовый адрес первой дорожки, чтобы знать, откуда начинать чтение; адрес выводной области диска, чтобы знать, до каких пор можно перемещать каретку; адрес следующей вводной области (только для многосессионных дисков). Стартовый адрес для всех дисков одинаков: он всегда равен 00:02:00 по временному коду, что соответствует нулевому адресу LBA. Адрес Lead-Out (выводной области) напрямую зависит от объема диска, но достаточно, чтобы полученный микропрограммой адрес был не меньше действительного адреса выводной области этого диска, иначе все расположенные дальше сектора окажутся недоступными. Если установить адрес Lead-Out на 80 или даже 90 минут, есть гарантия, что вся поверхность диска будет доступна приводу. Наконец, после вставки диска данные TOC кэшируются в собственной памяти привода и сохраняются там до тех пор, пока диск не будет корректно извлечен.

Микропрограмму можно обмануть: сначала дать приводу распознать диск с исправной служебной областью, а затем подменить его испорченным диском! О том, что диск извлечен, а затем загружен новый, микропрограмма судит по срабатыванию датчика лотка привода или нажатию кнопки извлечения диска. Достаточно извлечь нормальный диск, не нажимая кнопку и не выдвигая лоток, а затем точно так же вставить восстанавливаемый диск. В качестве нормального диска проще всего взять любой CD-ROM с записанным на нем фильмом объемом около 700 Мбайт. В таком случае данные TOC этого диска подойдут к любому восстанавливаемому CD-ROM. Точно так же для восстановления CD-R понадобится правильный CD-R, а для CD-RW – аналогичный CD-RW.

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

2. Подключите привод к компьютеру. Включите компьютер. Желательно ограничить скорость вращения диска программным способом.

3. Откройте лоток штатной кнопкой. Затем закройте лоток, одновременно положив на шпиндель хороший диск и прижав его магнитным «пятачком».

4. Дождитесь, когда привод распознает диск и остановит его вращение. Осторожно снимите прижимной «пятачок», диск и вставьте диск, который нужно восстановить (рис. 5.10). На фотографии на треснувший диск наклеен кусок пленки «Оракал», а для балансировки симметрично приклеен второй квадрат.

Рис. 5.10. CD-ROM, подготовленный для «обмана»

5. Запустите одну из программ, рассмотренных в следующем разделе, например AnyReader или ISOBuster. Снимите посекторный образ диска этой программой. Пользуясь кэшированными данными TOC, привод благополучно начнет читать секторы подмененного диска. Открывать диск штатными средствами Windows бессмысленно – операционная система тоже кэширует данные о диске и будет искать на нем те файлы, которые были на правильном диске!

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

Данный текст является ознакомительным фрагментом.