7
4 администрирование администрирование администрирование администрирование администрирование ВОССТАНОВЛЕНИЕ ДАННЫХ С ЛАЗЕРНЫХ ДИСКОВ КРИС КАСПЕРСКИ …Такой объем информации можно уничтожить в один миг разве что динамитом, потому что существуют дублирующие системы, и у скорости обработки есть предел. Джон Варли «Нажмите ENTER» Записываемые и перезаписываемые лазерные диски представляют собой идеальное средство для резервирования информации умеренных объемов (а всякий администратор обязательно должен заботиться о периодическом резервировании вверенной ему информации). К сожалению, никакая работа без ошибок не обходится (что поделаешь, человеку свойственно ошибаться errare humanum est, как говорили древние), и ошибочное удаление файлов CD-R/CD-RW дисков, равно как и непредумышленная очистка последних хотя бы однажды да случается (на самом деле, как показывает практика, с этим явлением приходится сталкиваться далеко не однажды, особенно если пользователи самостоятельно резервируют ту или иную информацию на CD-R/CD-RW). Насколько известно автору, утилит, предназначенных для восстановления информации с лазерных дисков, до сих пор не разработано (во всяком случае, они не были широко представлены на рынке), поэтому восстановлением запоротых дисков в подавляющем большинстве случаев приходится заниматься самостоятельно. О том, как именно это сделать и рассказывает настоящая статья.

Восстановление данных с лазерных дисков

Embed Size (px)

Citation preview

4

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

ВОССТАНОВЛЕНИЕ ДАННЫХС ЛАЗЕРНЫХ ДИСКОВ

КРИС КАСПЕРСКИ

…Такой объем информации можно уничтожить в одинмиг разве что динамитом, потому что существуютдублирующие системы, и у скорости обработки есть предел.

Джон Варли«Нажмите ENTER»

Записываемые и перезаписываемые лазерные диски представляют собой идеальное средстводля резервирования информации умеренных объемов (а всякий администратор обязательнодолжен заботиться о периодическом резервировании вверенной ему информации). К сожалению,никакая работа без ошибок не обходится (что поделаешь, человеку свойственно ошибаться –errare humanum est, как говорили древние), и ошибочное удаление файлов CD-R/CD-RW дисков,равно как и непредумышленная очистка последних хотя бы однажды да случается (на самом деле,как показывает практика, с этим явлением приходится сталкиваться далеко не однажды, особенноесли пользователи самостоятельно резервируют ту или иную информацию на CD-R/CD-RW).Насколько известно автору, утилит, предназначенных для восстановления информации с лазерныхдисков, до сих пор не разработано (во всяком случае, они не были широко представлены на рынке),поэтому восстановлением запоротых дисков в подавляющем большинстве случаев приходитсязаниматься самостоятельно. О том, как именно это сделать и рассказывает настоящая статья.

5№8(9), август 2003

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

Восстановление удаленных файловс CD-R/CD-RWЗаявляя о своей поддержке многосессионных дисков,операционные системы Windows 9x и Windows NT (вплотьдо W2K включительно) тактично умалчивают о том, что под-держивают их лишь частично.

Каждая сессия – это вполне самостоятельный том (втерминологии Windows – «логический диск»), имеющийсвою собственную файловую систему и свои собствен-ные файлы. Благодаря сквозной нумерации секторов ла-зерного диска, файловая система одной сессии можетссылаться на файлы, физически расположенные в любойдругой сессии. Для того чтобы с многосессионным дис-ком было можно работать как с единым томом, файловаясистема последней сессии должна включать в себя со-держимое файловых систем всех предыдущих сессий.Если этого не сделать, то при просмотре диска штатнымисредствами Windows оглавления остальных сессий ока-жутся потерянными, поскольку Windows монтирует лишьпоследнюю сессию диска, а все прочие – игнорирует. Про-граммы «прожига» CD-R/RW по умолчанию добавляют со-держимое файловой системы предыдущей сессии к пос-ледующей, однако это еще не означает, что последняясессия диска всегда содержит в себе все то, что имеютпредыдущие.

Рассмотрим, например, как осуществляется удале-ние файлов с CD-R/RW. Нет, это не опечатка! Содержи-мое дисков CD-R, несмотря на физическую невозмож-ность их перезаписи, в принципе все же уничтожаемо.

Для имитации удаления файла программы записина CD просто не включают ссылку на уничтожаемыйфайл в файловую систему последней сессии1. И хотя«удаленный» файл все еще присутствует на диске,«отъедая» часть дискового пространства, при просмот-ре содержимого диска из-под Windows он уже не ото-бражается в каталоге. «Какой же тогда смысл несет всебе удаление файлов с CD-R, если свободная емкостьдиска при этом не увеличивается, а даже уменьшает-ся2?!» – удивленно спросит иной читатель. На самомже деле смысл этой операции (если его вообще можноназвать «смыслом») заключен исключительно в сокры-тии «удаляемых» файлов от простых пользователей.

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

Аналогичным образом обстоят дела и при удаленииинформации с CD-RW дисков. Несмотря на теоретичес-кую возможность физического уничтожения их содержи-мого, подавляющее большинство записывающего софтаподдерживает лишь функцию очистки всего диска цели-ком, но не в состоянии выборочно удалять отдельныефайлы. Так что все, сказанное выше о CD-R дисках, вравной мере применимо и к CD-RW.

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

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

Для восстановления удаленных файлов можно вос-пользоваться любой программой, умеющей извлекатьсодержимое выбранной сессии диска и записывать егов ISO-образ. Пусть для определенности это будет RoxioEasy CD Creator. Позволив приводу «заглотить» вос-станавливаемый диск, в меню «CD» выбираем пункт«CD Information» и после этого на экране отображаетсядиалоговое окно следующего вида:

Как мы и видим, перед нами представлен переченьвсех сессий, имеющихся на диске с указанием номеров,стартовых адресов (в секторах) и длин (в мегабайтах).Давайте попробуем определить, имеются ли на дискескрытые файлы или нет. Используя команду «dir», вы-ведем директорию диска и запомним суммарный раз-мер всех файлов, которые только «видит» операцион-ная система:

Ðèñóíîê 1. Àíàëèç ñîäåðæèìîãî äèñêà íà ïðåäìåò âûÿâëåíèÿóäàëåííûõ ôàéëîâ.

6

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

Ага, совокупный объем 9 файлов, доступных для опера-ционной системы, составляет всего 72 Мб (760 82 156 байт),а совокупный объем всех сессий диска – 47,66 + 6,50 + 8,21 +8,04 + 6,91 + 10,62 + 9,04 + 9,10 + 9,22 + 9,46 = 124,76 Мб,что на 52 Мб длиннее! (Примечание: поле «Write Sector»,содержащее длину записанной области диска и равное вданном случае 255 Мб, для наших целей абсолютно беспо-лезно, поскольку в записанную область диска входят нетолько полезные данные, но и служебные области каждойсессии, в результате чего полная емкость диска всегдаменьше его эффективной емкости, даже если на нем нетникаких удаленных файлов).

В какой именно сессии содержатся удаленные файлы,сказать невозможно – они могут присутствовать в любой изних (или даже в нескольких сессиях сразу). Поэтому в об-щем случае все имеющиеся сессии должны просматриватьсяпоследовательно. Однако иногда удается найти более ко-роткие пути. Применительно к рассматриваемому нами при-меру: давайте попробуем оттолкнуться от того факта, чтоколичество имеющихся на диске сессий на единицу большечисла выведенных командой dir файлов, причем размерыдевяти последних секций практически совпадают с разме-рами соответствующих им файлов. Первая же сессия дис-ка, имеющая размер 48 Мб, не соответствует ни одному извидимых файлов. Что же она тогда содержит? А вот сейчассмонтируем эту сессию на отдельный дисковый том и по-смотрим! К сожалению, штатные средства Windows не по-зволяют осуществлять такое монтирование непосредствен-но и потому приходится идти обходным путем, записываявыбранную сессию в ISO-образ с последующим копирова-нием последнего на чистый CD-R/CD-RW диск. Естествен-но, CD-RW диски более практичны для таких эксперимен-тов, поскольку их можно использовать многократно. Ещеудобнее Alcohol 120%, динамически монтирующий ISO-об-разы на виртуальный CD-ROM, и тем самым экономящийкучу времени (но, к сожалению, он не предоставляет воз-можности выбора сохраняемых сессий и всегда помещаетв создаваемый им образ содержимое всего диска целиком,поэтому одного лишь «Алкоголика» для наших эксперимен-тов будет более чем достаточно).

Возвращаясь к нашим баранам (простите, к Roxio EasyCD Creator), дважды щелкнем мышем по строке «Session 1»или, предварительно выделив ее курсором, нажмем накнопку «Read Track». На экране немедленно появится диа-логовое окно следующего вида:

Поле «Имя файла», как и следует из его названия, за-дает имя образа (по умолчанию «Track»), а «Тип файла» –формат. Каким-либо образом «колдовать» над ним бес-полезно, поскольку других форматов бесплатная версияпрограммы все равно не поддерживает и возможность ихвыбора (точнее, видимость возможности выбора) предо-ставляется пользователю исключительно из соображенийэтикета и/или вежливости.

А вот настройки, обведенные рамкой «Read Data TrackSettings», намного более интересны. Окно редактирова-ния «Start Block» содержит LBA-адрес первого секторавыбранной сессии, а «Length in Block» – длину сессии всекторах и по умолчанию сюда подставляется информа-ция, подчерпнутая из TOC. При условии, что TOC не былумышленно искажен с целью защиты диска от копирова-ния, этим данным можно верить. Однако как мы увидим вдальнейшем, искажение TOC не редкость и с ним доволь-но часто приходится сталкиваться на практике (впрочем,возможности Easy CD Creator по восстановлению трековс искаженными адресами даже более чем ограничены, т.к.он слишком щепетильно проверяет «правильность» на-чального и конечного адресов, и если TOC говорит, чтоначальный адрес больше конечного, то Easy CD Creatorбудет свято верить TOC, причем настолько свято, что всепопытки убедить его в обратном заранее обречены напровал, так что для работы с защитами лучше подыскатьдругую программу, поумнее).

Поле «Block Size» содержит размер пользовательскойчасти сектора в байтах. Свобода выбора здесь представ-лена чисто символически, все равно изменить это значе-ние вы не сможете (да и нужно ли его изменять? ведь«сырых» секторов Easy CD Creator все равно не поддер-живает, а размер пользовательской части сектора одно-значно определяется типом самого сектора и его измене-ние бессмысленно).

Короче говоря, оставив все установки в состоянии,предлагаемым по умолчанию, нажимаем кнопочку «со-хранить» и некоторое время ждем, пока выбранная нами

Ðèñóíîê 2. Äèàëîãîâîå îêíî èçâëå÷åíèÿ ñåññèè ñ íàñòðîéêàìèïî óìîë÷àíèþ.

Ëèñòèíã 1. Âûâîä ñîäåðæèìîãî äèñêà íà ýêðàí, íà ñàìîì äåëåêîâàðíàÿ Windows âûâîäèò ñîäåðæèìîå îäíîé ëèøü ïîñëåäíåéñåññèè äèñêà. ×òî ñîäåðæàò âñå îñòàëüíûå – íåèçâåñòíî. Âîâñÿêîì ñëó÷àå, ïîêà íåèçâåñòíî.

KPNC$G:\>dir Òîì â óñòðîéñòâå G èìååò ìåòêó 030710_1433 Ñåðèéíûé íîìåð òîìà: 4DD0-BB09 Ñîäåðæèìîå ïàïêè G:\28.05.2003 05:57 6 283 745 phck31.drf.zip03.06.2003 05:39 8 085 410 phck31.Âò 03.06.2003.zip04.06.2003 16:45 7 898 149 phck31.Ñð 04.06.2003.zip05.06.2003 06:06 6 718 926 phck31.×ò 05.06.2003.zip03.07.2003 15:51 10 612 230 phck31.×ò 03.07.2003.zip05.07.2003 06:37 8 946 860 phck31.Ñá 05.07.2003.zip08.07.2003 12:51 9 009 642 phck31.Âò 08.07.2003.zip09.07.2003 06:21 9 138 651 phck31.Ñð 09.07.2003.zip10.07.2003 14:32 9 388 543 phck31.×ò 10.07.2003.zip 9 ôàéëîâ 76 082 156 áàéò 1 ïàïîê 0 áàéò ñâîáîäíî

7№8(9), август 2003

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

сессия копируется в ISO-файл. Когда же процесс «транс-плантации» будет закончен, сформированный образ мож-но «закатать» на новую болванку тем же Easy CD Creator(в меню «File» необходимо выбрать пункт «Record CD fromCD image», указав в типе файлов «ISO Image File»), либозапустить «Алкоголика» и смонтировать образ на вирту-альный диск.

Так или иначе, доступ к удаленным файлам будет по-лучен, и вы сможете делать с ними все что хотите. (Вни-мание! При просмотре содержимого «сграбленной» сес-сии всегда учитывайте, что, во-первых, файлы, физичес-ки принадлежащие другим сессиям, из данной сессии ока-жутся недоступными, в то время как ссылки на них здесьмогут изобиловать. При обращении к реально несуществу-ющему файлу будет выдаваться либо мусор, либо сооб-щение об ошибке. Как альтернативный вариант – опера-ционная система может просто зависнуть. Если это про-изошло, просто нажмите кнопку выброса диска. Windowsтут же выйдет из ступора и радостно завопит, что «уст-ройство не готово». Во-вторых, в силу сквозной адреса-ции секторов, каждая «сграбленная» сессия должна за-писываться на то же самое место диска, на котором онабыла ранее, в противном случае все ссылки на старто-вые адреса файлов внутри этой сессии окажутся недей-ствительными. Требуемый результат обычно достигаетсяизменением стартового адреса первого трека. О том, какэто сделать, рассказывается в следующей части статьи,посвященной восстановлению информации с очищенныхCD-RW дисков.)

Восстановление очищенных CD-RWСуществует две принципиально различных методикиочистки CD-RW: быстрая (quick) и полная (full). При быс-трой очистке диска с него удаляется лишь область TOC,в результате чего диск выглядит «пустым», хотя его ос-новное содержимое остается совершенно нетронутым.Напротив, при полной очистке луч лазера «выжигает»всю поверхность диска целиком – от первого пита до пос-леднего. Естественно, на это требуется время и полнаяочистка диска может растянуться на добрый десятокминут, в то время как быстрая спокойно укладывается водну-две минуты.

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

Мы не будем касаться этической стороны проблемыи для простоты предположим, что вы хотите реаними-ровать свой собственный непредумышленно очищен-ный CD-RW диск, или условимся считать всех читате-лей сотрудниками КГБ, которым поручили восстановитьинформацию с диска, добытого бесстрашными советс-кими разведчиками у американских шпионов. Отметимлишь то, что восстановление конфиденциальной инфор-мации с чужих CD-RW может быть классифицировано

как получение несанкционированного доступа к после-дней со всеми вытекающими отсюда последствиями (надолгие годы – друзья в полоску и небо в клетку).

Для опытов по восстановлению информации с очищен-ных CD-RW дисков нам потребуется следующее:� пишущий привод, не слишком дотошно следящий за

корректностью содержимого TOC, поддерживающийрежим RAW DAO и умеющий читать содержимое pre-gap первого трека. Не все модели писцов подходятдля этой цели, поэтому будьте готовы к тому, что вампридется перепробовать большое количество различ-ного оборудования (из двух моих рекордеров для вос-становления очищенных дисков подходит лишь NEC,а PHILIPS на это, увы, не способен);

� продвинутый записывающий soft, позволяющий ма-нипулировать служебными областями диска по свое-му усмотрению. Вы можете использовать Clone CD,CDRWin, Alcohol 120% или любую другую аналогич-ную утилиту по своему выбору. Однако весь после-дующий материал рассчитан исключительно наClone CD и при переходе на остальные программывы можете столкнуться с теми или иными проблема-ми. Если вы не уверены, что сможете справиться сними самостоятельно – используйте Clone CD, ну азатем, по мере приобретения профессиональных на-выков и должного опыта, вы без труда восстановитедиск любой такой программой;

� средство для работы с диском на секторном уровне –утилита, позволяющая прочесть любой заданный сек-тор (конечно, при условии, что он вообще читается при-водом) и не пытающаяся пропустить те сектора, в ко-торых по ее самоуверенному мнению ничего интерес-ного все равно нет. Копировщики защищенных дисков,перечисленные выше, для этой цели не подходят, т.к.отказываются читать «бесполезные» с их точки зре-ния сектора. Может быть, другие копировщики ведутсебя и иначе – не знаю, не проверял. Вместо этого не-обходимую для работы утилиту я написал самостоя-тельно (ее можно скачать с сайта журнала по адресу:http://www.samag.ru/source/k1.zip).

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

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

8

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

один из всех знакомых мне приводов не мог читать сек-тора за пределами Lead-Out области (собственно, на про-граммном уровне содержимое Lead-in/Lead-out областейнедоступно тоже). Тем не менее эта невозможность от-нюдь не концептуального уровня и удаление из микро-программы привода «лишних» проверок позволят прочи-тать такой диск на ура. Нет, не подумайте! Призывать васк дизассемблированию прошивок я не собираюсь. Делоэто сложное, трудоемкое, да к тому же небезопасное. Не-верно хакнутая прошивка может ко всем чертям угробитьпривод без малейшей надежды на его восстановление.Нет, уж лучше мы пойдем другим путем!

Идея восстановления информации, предлагаемая ав-тором, в общих чертах сводится к записи на диск фиктив-ного TOC, адреса Lead-in и Lead-out областей которогоуказывают на первый и последний сектор диска соответ-ственно, а стартовый адрес первого трека аккурат совпа-дает с концом pre-gap области, которая по стандарту дол-жна занимать не менее 150 секторов (или 2 секунд в пе-ресчете на абсолютные адреса). После этой нехитрой опе-рации привод будет читать оригинальное содержимое очи-щенного диска как миленький, конечно, при том условии,что мы ухитримся настроить пишущий софт так, чтобыон, записав фиктивный TOC, никоим образом не пыталсяинтерпретировать подсунутые ему указатели на Leadin/LeadOut области как указание «выжечь» всю поверхностьдиска целиком.

Проверка показывает, что Clone CD вообще не запи-сывает такой TOC на диск, ругаясь на несоответствие раз-меров диска и образа файла. Alcohol 120% выполняет нашупросьбу без лишних препирательств, но совсем не так, какмы хотели! Забив весь восстанавливаемый диск непонят-но откуда взятым мусором, он авторитетно сообщает, чтов процессе записи произошли ошибки и, возможно, вамследует убедиться в исправности оборудования.

Хорошо, зайдем с другой стороны. Запишем на дискодин реальный трек, занимающий минимально возмож-ное количество секторов (по стандарту – 300, но неко-торые приводы вполне удовлетворяются и меньшимизначениями), но расширим его pre-gap с двух секунд на…весь диск! В результате мы потеряем лишь 300 после-дних секторов, но получим доступ ко всему остальномусодержимому. Учитывая, что на диске этих секторов на-считывается немногим более 300 тысяч, нетрудно под-считать, что процент успешно восстановленной инфор-мации составляет по меньшей мере 99,999% емкостивсего диска, да и то лишь при том условии, что исход-ный диск был забит целиком, что в живой природе прак-тически никогда не наблюдается. Если же это вас неудовлетворяет – разрабатывайте свой собственныйсофт, корректно записывающий фиктивный TOC, но ни-чего не делающий сверх этого (Lead-in область все рав-но записывает сам привод, ну а без Lead-out при акку-ратном обращении с диском в принципе можно и обой-тись, главное – пытаться прочитать сектора, находящи-еся за пределами диска, иначе поведение привода ста-нет трудно предсказуемым). Мне же это делать лень – свосстановлением полностью забитых дисков я еще несталкивался. Во всяком случае пока…

Процедура восстановления состоит из трех частей:подготовки исходного образа трека с нормальным 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 так, чтобы они указывали на самый конец дис-ка (0xa2 – это как раз Lead-Out и есть). Измененный Lead-Out может выглядеть, например, так: 74:30:00. АдресLead-Out следует выбирать с тем расчетом, чтобы меж-ду ним и внешней кромкой диска оставался по меньшеймере 30-секундный зазор. Еще лучше, если ширина Lead-Out составит полторы минуты или около того. Однако вэтом случае будут неизбежно теряться последние трекивосстанавливаемого диска (если, конечно, вам действи-тельно требуется их восстановить).

Ëèñòèíã 2. Îðèãèíàëüíûé ñòàðòîâûé àäðåñ Lead-Out (ñëåâà)è ñòàðòîâûé àäðåñ ïåðâîãî òðåêà äèñêà (ñïðàâà).

[Entry 2] [Entry 3]Session=1 Session=1Point=0xa2 Point=0x01ADR=0x01 ADR=0x01Control=0x04 Control=0x04TrackNo=0 TrackNo=0AMin=0 AMin=0ASec=0 ASec=0AFrame=0 AFrame=0ALBA=-150 ALBA=-150Zero=0 Zero=0PMin=0 PMin=0PSec=29 PSec=1PFrame=33 PFrame=0PLBA=2058 PLBA=0

9№8(9), август 2003

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

К содержимому полей 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 первого трека – не самая лучшая идея,т.к. не все приводы способны читать такой «жирный» pre-gap. С точки зрения совместимости было бы лучше уве-личивать pre-gap второго трека, однако при этом первыйтрек придется располагать в самом начале диска и еготело неизбежно затрет восстанавливаемые сектора. Ихотя это не такая уж большая проблема (в первых секто-рах диска все равно ничего ценного нет), к такой меребез особой необходимости все же лучше не прибегать.На крайний случай действуйте так: запишите на диск двесессии и вместо стартового адреса Point номер 0x01 ме-няйте стартовый адрес Point номер 0x02 (он будет нахо-диться в разделе session=2).

Теперь наскоро очистим наш подопытный диск и доотвала забьем его какими-нибудь файлами (предпочти-тельнее всего использовать текстовики, т.к. в этом слу-чае будет сразу видно: извлекается ли с восстановленно-го диска мусор или полезная информация). Записав фай-лы на диск, тут же выполним его быструю очистку.

Убедившись, что диск действительно очищен и его со-держимое уже недоступно, запустим Clone CD и запишемтолько что созданный нами «лечебный» образ. Записьдолжна проводиться в режиме DAO, иначе ничего хоро-шего у вас не получится (поэтому прежде чем восстанав-ливать сколь-нибудь ценный диск на еще неизвестном вамприводе, попробуйте потренироваться на «кошках» – дис-ке, не содержащем ничего интересного).

Ëèñòèíã 3. Êëþ÷åâîé ôðàãìåíò «ðåàíèìàòîðà» 75-ìèíóòíûõCD-RW äèñêîâ.

[Entry 2] [Entry 3]Session=1 Session=1… …PMin=74 PMin=74PSec=30 PSec=01PFrame=00 PFrame=42

10

администрированиеадминистрированиеадминистрированиеадминистрированиеадминистрирование

Вот наконец мы держим в руках свежевосстановлен-ный диск. Но действительно ли он восстановлен? А вотсейчас и убедимся! Вставляем «воскресшего из пепла» впривод NEC и с замиранием сердца пробуем прочитатьодин из наугад взятых секторов из середины диска (на-чальные сектора обычно содержат нули, потом файло-вую систему, и их очень легко принять за бессмысленныймусор). О чудо! Оригинальное содержимое очищенногодиска читается как ни в чем не бывало! Правда, при по-пытке прочесть оглавление диска средствами операци-онной системы привод может впасть в глухую задумчи-вость, граничащую с полным зависанием (ведь старто-вый адрес первого трека расположен не в начале диска,а совсем в другом месте), но это все ерунда! Главное, чтона секторном уровне диск все-таки доступен, пускай и нена всех приводах. Так, в частности, ASUS вообще отка-зывается читать такой диск, возвращая ошибку, а PHILIPSчитает один мусор (к счастью, этот мусор можно восста-новить, – достаточно просто на битовом уровне выпол-нить EFM-перекодировку с более «правильной» позиции.Поскольку возможных позиций всего 14, перебор обеща-ет не затягиваться на длительное время. Тем не менеелучше не извращаться, а просто приобрести более каче-ственный привод).

Остается лишь привести диск в состояние, пригод-ное для переваривания операционной системой (что тол-ку в работе с диском на низком уровне?). Последова-тельно читая все сектора диска один за одним, мы бу-дем собирать их в один img-файл, для определенностиименуемый recover.img. Сектора, которые не удалосьпрочитать даже с нескольких попыток, мы будем простопропускать. Теперь скопируем «лечебный» ccd-файл вrecover.ccd и вернем стартовый адрес первого трека напрежнее место. Запишем сформированный образ дис-ка на новую болванку и… (если все сделано правильно)любой привод должен читать ее правильно. Сеанс де-монстрационного восстановления окончен, и мы, ма-лость освоившись с этой технологией, можем принимать-ся за вещи куда как более серьезные. Например, откро-ем собственную компании по восстановлению очищен-ных дисков. Шутка! Хотя… почему бы и нет?

Хорошо, а как быть, если очищенный диск был много-сессионным? Ведь описанные выше приемы рассчитанына работу лишь с одной сессией! На самом деле можновосстановить и многосессионный диск. Это лишь чуть-чутьтруднее. Но, чтобы это сделать, мы должны предваритель-но познакомиться с остальными полями TOC. А это ужетема следующей статьи!

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

потому и риск ее затирания минимален (если, конечно,схватиться вовремя, а не тогда, когда весь диск пере-записан до отказа). Восстановление одно-сессионныхдисков с затертой файловой системой – намного бо-лее трудная, но все-таки разрешимая задача. Во-пер-вых, этих файловых систем на типовом диске целых две:ISO-9660 и Joliet, правда, в силу их близкого географи-ческого положения при затирании диска они обычно гиб-нут обе. Во-вторых, указанные файловые системы неподдерживают фрагментации и всякий файл, записан-ный на лазерный диск, представляет собой единый ин-формационный блок. Все что нужно для его восстанов-ления – определить точку входа и длину. Точка входа вфайл всегда совпадает с началом сектора, а подавляю-щее большинство типов файлов позволяют однозначноидентифицировать свой заголовок по уникальной сиг-натуре (в частности, для zip-файлов характерна следу-ющая последовательность: 50 4B 03 04). Конец файла,правда, определяется уже не так однозначно и един-ственная зацепка – структура самого восстанавливае-мого файла. Впрочем, большинство приложений доволь-но лояльно относится к «мусору» в хвосте файла и пото-му точностью определения его длины с погрешностью водин сектор на практике оказывается вполне достаточ-ной. Поскольку файлы располагаются на диске вплот-ную, без «зазоров», конечный сектор всякого файла на-дежно вычисляется путем вычитания единицы из стар-тового сектора следующего за ним файла.

Вообще же говоря, техника восстановления лазерныхдисков намного проще и незатейливее искусства враче-вания их прямых коллег – дискет и жестких дисков. Прав-да, поговорку «семь раз отмерь – один раз отрежь» ещеникто не отменял, и одна из пренеприятнейших особен-ностей работы с CD-RW как раз и состоит в том, что выне можете гарантированно управлять процессом проис-ходящей записи. Дискеты и жесткие диски в этом смыс-ле полностью прозрачны: что вы пишите, то вы и полу-чаете. Перезаписываемые же носители, напротив, пред-ставляют собой «черный ящик», и вы никогда не можетебыть уверенными в том, что данный конкретный приводбудет правильно интерпретировать отдаваемые ему ко-манды (увы, восстановление CD-RW дисков никак не впи-сывается в рамки стандарта, а все нестандартные махи-нации могут интерпретироваться приводом неоднознач-но). Единственное, что остается посоветовать – не пус-кайте все на самотек, а бесконечно экспериментируйте,экспериментируйте и еще раз экспериментируйте, на-капливая бесценный опыт, который вам когда-то оченьпригодится.

1 Правда, это умение даровано не всем программам,вот Roxio Easy CD Creator оно даровано, а, например,Stomp Record Now! – нет.

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