Добавить в цитаты Настройки чтения

Страница 250 из 371



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

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

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

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

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

ПРОГРАММИРОВАНИЕ

Основы программирования на C#

http://www.INTUIT.ru





1. Visual Studio.Net, Framework.Net

Бренд. Net. Visual Studio.Net — открытая среда разработки. Каркас Framework.Net. Библиотека классов FCL — статический компонент каркаса. Общеязыковая исполнительная среда CLR — динамический компонент каркаса. Управляемый код. Общеязыковые спецификации CLS и совместимые модули.

Имя.Net

Имена нынешнего поколения продуктов от Microsoft сопровождаются окончанием. Net (читается Dot Net), отражающим видение Microsoft современного коммуникативного мира. Компьютерные сети объединяют людей и технику. Человек, работающий с компьютером или использующий мобильный телефон, естественным образом становится частью локальной или глобальной сети. В этой сети используются различные специальные устройства, начиная от космических станций и кончая датчиками, расположенными, например, в гостиницах и посылающими информацию об объекте всем мобильным устройствам в их окрестности. В глобальном информационном мире коммуникативная составляющая любых программных продуктов начинает играть определяющую роль.

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

Не пытаясь охватить все многообразие сетевого взаимодействия, рассмотрим реализацию новых идей на примере Visual Studio.Net — продукта, важного для разработчиков.

Visual Studio.Net — открытая среда разработки

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