Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»
Шрифт:
Интервал:
Закладка:
Процедура восстановления состоит из трех частей: подготовки исходного образа трека с нормальным pre-gap; увеличения pre-gap до размеров целого диска и записи исправленного образа на восстанавливаемый диск. Первые два этапа достаточно выполнить всего один раз, т. к. полученный образ (далее мы будем называть его «лечебным») может использоваться для всех дисков (читай: для всех дисков той же самой емкости, по понятным соображениям вы не сможете корректно восстановить 23-минутный диск с помощью образа, предназначенного для 80-минутного диска и, соответственно, наоборот).
Для начала возьмем чистый CD-RW диск («чистый» не в смысле «ни разу не записанный», а очищенный быстрой или полной очисткой, так же для этих целей подойдет и CD-R). Используя любую утилиту для штатного «прожига», запишем на него один крошечный файл, «весящий» не более 500 Кб (более тяжелый файл просто не уместится в запланированные 300 секторов). Выполнять финализацию диска не нужно.
Запустим Clone CD (Alcohol 120 %) и снимем образ диска. Спустя минуту-другую на винчестере образуются два файла: file name.img и file name.ccd (если вы попросили Clone CD сохранять так же и субканальную информацию, образуется третий файл — file name.sub, однако субканальная информация в данном случае будет только мешать, потому опцию «чтение субканалов из треков с данными» лучше всего отключить или же просто удалить file name.sub с диска; также нам не нужен «Cue-Sheet», который Clone CD предлагает создавать для совместимости с другими программами, конкретно — с CDRWin).
Открыв file name.ccd-файл любым текстовым редактором, найдем в нем следующие строки (ключевые слова для поиска «Point=0xa2» и «Point=0x01»):
Изменим поля PMin: PSec: PFrame, принадлежащие Point=0xa2 так, чтобы они указывали на самый конец диска (0ха2 — это как раз Lead-Out и есть). Измененный Lead-Out может выглядеть, например, так: 74:30:00. Адрес Lead-Out следует выбирать с тем расчетом, чтобы между ним и внешней кромкой диска оставался по меньшей мере 30-секундный зазор. Еще лучше, если ширина Lead-Out составит полторы минуты или около того. Однако в этом случае будут неизбежно теряться последние треки восстанавливаемого диска (если, конечно, вам действительно требуется их восстановить).
К содержимому полей PMin: PSec: PFrame, принадлежащих Point=0x01 (стартовый адрес первого трека), необходимо добавить ту же самую величину, которую вы добавили к соответствующим полям Lead-Out. Отредактированный вариант может выглядеть, например, так: 74:01:42. (74:30:00 /* новый адрес Lead-out */ — 00:29:33 */ старый Lead-Out */ + 00:01:00 */ старый стартовый адрес первого трека */ = 74:01:42 */) новый стартовый адрес */). Короче говоря, новая версия ccd-файла должна выглядеть так:
Вообще-то, для приличия следовало бы скорректировать и поля PLBA (LBA-адрес связан с абсолютным адресом следующим соотношением: LBA = ((Min*60) + Sec)*75 + Frame, однако текущие версии работают исключительно с абсолютными адресами и LBA-адреса игнорируют. Теперь все что находится между концом Lead-in области и началом первого сектора и будет называться pre-gap. При «прожиге» диска область pre-gap остается нетронутой и позже может быть прочитана на секторном уровне (а это как раз то, что нам нужно!). Сказать по чести, чрезмерное увеличение pre-gap первого трека — не самая лучшая идея, т. к. не все приводы способны читать такой «жирный» pregap. С точки зрения совместимости было бы лучше увеличивать pre-gap второго трека, однако при этом первый трек придется располагать в самом начале диска и его тело неизбежно затрет восстанавливаемые сектора. И хотя это не такая уж большая проблема (в первых секторах диска все равно ничего ценного нет), к такой мере без особой необходимости все же лучше не прибегать. На крайний случай действуйте так: запишите на диск две сессии и вместо стартового адреса Point номер 0x01 меняйте стартовый адрес Point номер 0x02 (он будет находиться в разделе session=2).
Теперь наскоро очистим наш подопытный диск и до отвала забьем его какими-нибудь файлами (предпочтительнее всего использовать текстовики, т. к. в этом случае будет сразу видно: извлекается ли с восстановленного диска мусор или полезная информация). Записав файлы на диск, тут же выполним его быструю очистку.
Убедившись, что диск действительно очищен и его содержимое уже недоступно, запустим Clone CD и запишем только что созданный нами «лечебный» образ. Запись должна проводиться в режиме DAO, иначе ничего хорошего у вас не получится (поэтому прежде чем восстанавливать сколь-нибудь ценный диск на еще неизвестном вам приводе, попробуйте потренироваться на «кошках» — диске, не содержащем ничего интересного).
Вот наконец мы держим в руках свежевосстановленный диск. Но действительно ли он восстановлен? А вот сейчас и убедимся! Вставляем «воскресшего из пепла» в привод NEC и с замиранием сердца пробуем прочитать один из наугад взятых секторов из середины диска (начальные сектора обычно содержат нули, потом файловую систему, и их очень легко принять за бессмысленный мусор). О чудо! Оригинальное содержимое очищенного диска читается как ни в чем не бывало! Правда, при попытке прочесть оглавление диска средствами операционной системы привод может впасть в глухую задумчивость, граничащую с полным зависанием (ведь стартовый адрес первого трека расположен не в начале диска, а совсем в другом месте), но это все ерунда! Главное, что на секторном уровне диск все-таки доступен, пускай и не на всех приводах. Так, в частности, ASUS вообще отказывается читать такой диск, возвращая ошибку, a PHILIPS читает один мусор (к счастью, этот мусор можно восстановить, — достаточно просто на битовом уровне выполнить