412 000 произведений, 108 200 авторов.

Электронная библиотека книг » Крис Касперски » Восстановление данных. Практическое руководство » Текст книги (страница 23)
Восстановление данных. Практическое руководство
  • Текст добавлен: 26 июня 2025, 05:19

Текст книги "Восстановление данных. Практическое руководство"


Автор книги: Крис Касперски



сообщить о нарушении

Текущая страница: 23 (всего у книги 26 страниц)

Информация к размышлению

Чтобы там ни говорили производители, пакетная технология намного менее надежна, чем классическая запись всей сессии целиком. Многократные зажигания/гашения лазера образуют прерывистую цепочку, концы которой плохо "склеиваются" друг с другом, и потому оптической головке стоит больших усилий не сбиться с дорожки. В момент зажигания лазера его характеристики довольно сильно "пляшут", что ухудшает качество прожига. В обычном режиме у привода есть время стабилизироваться, так как прожиг начинается с записи вводной области (lead-in), многократно дублирующей служебную информацию. По этой причине первые несколько секторов вводной области практически всегда оказываются дефектными. Что касается пакетной записи, то в этом режиме лазеру приходится включаться в работу "с места в карьер".

К тому же, сектора, хранящие файловую систему, работают в необычайно интенсивном режиме, перезаписываясь при каждой операции копирования/удаления. Чтобы избежать множественной перезаписи одних и тех же секторов, были предприняты специальные меры. Например, виртуальная таблица расположения (virtual allocation table, VAT), являющаяся одним из ключевых элементов UDF, позволяющая осуществлять инкрементную запись, может свободно мигрировать по всему диску, что дает возможность избежать множественной перезаписи одних и тех же секторов (рис. 10.11). Однако как с этим ни борются, служебные структуры данных погибают раньше всего, иногда даже после ~100 циклов перезаписи. Диск перестает читаться безо всякой надежды на его восстановление (разумеется, мы говорим о непрофессионалах).

Рис. 10.11. Структура файловой системы UDF, ключевым элементном которой является VAT, свободно мигрирующая по всему диску и потому предотвращающая многократную перезапись одних и тех же участков

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

Внимание!

Никогда и ни при каких обстоятельствах не записывайте в пакетном режиме действительно ценные файлы, которые вам было бы жаль потерять! Если вы все-таки делаете это, в обязательном порядке продублируйте их на несколько дисков. Перенос файлов между компьютерами – дело другое, и UDF тут практически незаменим.

Кстати, о надежности. Производители оптических накопителей склонны преувеличивать срок их службы, зачастую давая пожизненную гарантию. Но маловероятно, что кому-либо когда-либо удастся воспользоваться этой гарантией. Общеизвестно, что при попытке возврата дефектного диска на завод-изготовитель все компании отвечают неизменным отказом, ссылаясь на нарушение условий хранения диска. У вас помещение кондиционируется? Влажность и температура с какой точностью выдерживаются? Если вы честно ответите на такие вопросы, вы получите отказ в вашей просьбе. Реально (по собственному опыту и опыту своих друзей) могу сказать, что даже Verbatim спустя полтора-два года обнаруживает резкое ухудшение качества чтения за счет деградации активного слоя, поэтому хранить на дисках CD-R/CD-RW свои архивы могут только самоубийцы. Используйте стример, магнитооптику или умирающий, но все же неизменно надежный Iomega ZIP 100MB.


Какой привод выбрать

Для надежной работы в пакетном режиме и пишущий, и читающий приводы должны, как минимум, поддерживать режим Multi Read, о чем свидетельствует одноименный логотип на его лицевой панели. Разумеется, не всякому логотипу можно верить. Тщательное расследование, проведенное технологической ассоциацией по оптическим устройствам хранения данных (Optical Storage Technology Association, OSTA), показало, что качественных приводов на рынке единицы (рис. 10.12).

Рис. 10.12. Поддержка режима Multi Read различными производителями. "Совместимость продемонстрирована" – привод полностью соответствует спецификации, "Выдана лицензия на логотип MultiRead" – лицензия на логотип выдана, но этой информации нельзя доверять полностью

И все-таки, несмотря на все свои многочисленные недостатки, технология пакетной записи и файловая система UDF вызывают восхищение. Это – действительно прогрессивные технологии, активно подрывающие старые устои изнутри. Дайте ей время, и эта технология разовьет такую мощь, что турбинам реактивных самолетов останется лишь завидовать.

Секреты прожига лазерных дисков

Помните, во времена MS-DOS существовал драйвер, позволяющий записывать на обычную 740-килобайтную дискету до 800 Кбайт информации? А 900.com помните? О, времена, о нравы! Сегодня, когда дискеты давно вышли из моды, а емкость массовых носителей информации перешагнула через отметку в 650 Мбайт, старые идеи дают новые всходы...

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

Если целостность данных не является превалирующим фактором, то емкость лазерного диска можно существенно увеличить, выиграв порядка 15% дополнительного пространства за счет отказа от избыточных корректирующих кодов Рида-Соломона. Использование незадействованных каналов подкода дает еще 4% емкости, а отказ от выводной области – 2%. Наконец, не стоит забывать о такой полезной возможности, как overburn ("перепрожиг" диска).

Таким образом, на обычный лазерный диск емкостью 700 Мбайт при желании можно записать от 800 Мбайт до ~900 Мбайт данных, а на 90-минутный – от 900 Мбайт до 1 Гбайт. Чтобы этого добиться, первым делом необходимо вспомнить сколько там бит в байте. Правильно, восемь. А сколько бит в семистах мегабайтах? А это смотря в каких мегабайтах! Так, например, стандартный диск 700 Мбайт CD-R/RW вмешает, по меньшей мере, 23 миллиона бит или порядка трех гигабайт "сырой" информации, большая часть которой расходуется на служебные структуры данных, обеспечивающие лазерному диску работоспособность. На рис. 10.13 показано распределение дискового пространства CD между данными различных типов. Как видите, для хранения пользовательских данных отводится лишь немногим более половины от доступного дискового пространства.

Рис. 10.13. Распределение дискового пространства на CD между данными различных типов

Колоссальная избыточность принятой системы кодирования объясняется физическими свойствами светового луча, который, в силу своих волновых свойств, одиночные "питы" и "лэнды" просто огибает. Физически диск представляет собой тонкую пластину из поликарбоната, покрытую тонким отражающим слоем, изготовленным из алюминия или, в некоторых случаях, золота (рис. 10.14. а и б). Отражающий слой, в свою очередь, покрыт специальным защитным слоем. Нормальная поверхность отражающего слоя CD, называемая "лэндом" (от английского слова land – равнина, земля), покрыта микроскопическими углублениями, называемыми "питами" (от английского слова pit – ямка, впадина). Питы нанесены на отражающую поверхность таким образом, что чередующиеся питы и лэнды образуют длинную, непрерывную спиральную дорожку.

Примечание

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

Рис. 10.14. Физическая структура лазерного диска

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

Рис. 10.15. Поверхность лазерного диска под электронным микроскопом

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

Рис. 10.16. Питы и лэнды образуют цепочки длиной от трех до десяти питов или лэндов каждая

Переход от пита к лэнду (или наоборот) соответствует логической единице, а логический ноль представляется отсутствием переходов в данной позиции. Поскольку диаметр сфокусированного лазерного луча равен трем питам, более короткие цепочки уже не распознаются лазером. Таким образом, две смежных двоичных единицы (каждая из которых соответствует переходу от пита к лэнду или от лэнда к питу) всегда должны отделяться друг от друга не менее, чем тремя нулями. В противном случае привод просто не сможет заметить, что здесь присутствует какая-то информация (вспомните, что длина одного пита или одного лэнда значительно меньше, чем диаметр сфокусированного лазерного луча). Что касается верхнего предела длины цепочек, то наличие этого ограничения обусловлено степенью точности тактового генератора и равномерностью вращения диска. В самом деле, если точность тактового генератора составляет порядка 10%, то при измерении 10-питовой цепочки мы получаем погрешность в ±1 пит. Некоторые производители уменьшают длину одного пита на 30%, что во столько же раз увеличивает эффективную емкость диска. Возникает вопрос: как же в таком случае привод ухитряется определить длину той или иной цепочки? Ведь в отсутствии каких бы то ни было опорных значений, привод вынужден сравнивать длину питов с эталоном, а это значит, что цепочка из N уплотненных питов будет интерпретирована как N/2! Дизассемблировав прошивку своего привода PHILIPS, я выяснил, что привод имеет автоматический регулятор скорости, подбирающий такое значение T, которое соответствовало бы наименьшему количеству ошибок чтения (см. рис. 10.16).

Поскольку две соседние единицы всегда оказываются разделены, по меньшей мере, тремя нулями, приходится прибегать к сложной системе перекодировки, преобразующей всякий 8-битный символ исходных данных в 14– битное слово EFM (Eight to Fourteen Modulation). При этом слова EFM не могут следовать вплотную друг за другом (задумайтесь, что произойдет, если за одним словом EFM, оканчивающимся на единицу, попробовать записать другое слово EFM, которое тоже начинается с единицы). Таким образом, слова EFM должны разделяться тремя объединительными битами (merging bits). Соответственно, на каждые 8 бит исходных данных приходится 9 избыточных данных. Очевидно, что стандартная схема модуляции не является идеальной и оставляет достаточный запас для ее усовершенствования. Более подробно этот вопрос будет рассмотрен далее в этой главе.

Минимальной порцией данных, непосредственно адресуемой на программном уровне, является сектор (или в терминологии Audio CD – блок). Один блок состоит из 98 фреймов, каждый из которых, в свою очередь, содержит:

□ 24 байта полезных данных;

□ 8 байт кодов Рида-Соломона, часто называемых перекрестно-перемежающимися кодами Рида-Соломона (cross-inerleaved Reed-Solomon codes, CIRC codes), хотя с технической точки зрения это и не совсем верно;

□ 3 синхробайта;

□ 8 бит каналов подкода – по одному биту на каждый из восьми каналов, условно обозначаемых латинскими буквами P, Q, R, S, T, U, V и W соответственно. Q-канал хранит служебную информацию о разметке диска, P-канал служит для быстрого поиска пауз, остальные каналы – свободны.

Таким образом, эффективная емкость одного блока составляет 2352 байта, или даже 2400 байт, с учетом каналов подкода (из 98 байт субканальных данных – 34 байта отданы под служебные нужды). Корректирующие коды Рида-Соломона позволяют исправлять до 4 разрушенных байт на каждый фрейм, что составляет 392 байта на целый блок.

Диски с данными (Data CD), ведущие свою родословную от Audio-дисков, поддерживают два основных режима обработки данных: MODE 1 и MODE 2.

В режиме MODE 1 из 2352 байт сырой емкости сектора лишь 2048 байт отданы непосредственно под пользовательские данные. Остальные распределены между заголовком сектора (16 байт), контрольной суммой сектора (4 байта) и дополнительными корректирующими кодами, увеличивающими стойкость диска к физическим повреждениям (276 байт). Оставшиеся 8 байт никак не задействованы и обычно проинициализированы нулями.

В режиме MODE 2 из 2352 байт сырой емкости сектора только 16 байт отданы под служебные структуры (заголовок), а остальные 2336 байт содержат пользовательские данные. Легко видеть, что при записи диска в MODE 2 его эффективная емкость становится на -15% больше, но и надежность хранения данных при этом становится приблизительно на треть ниже. Однако при использовании качественных носителей информации (LG, TDK, Verbatim) и бережном обращении с ними риск невосстановимого разрушения данных достаточно невелик. К тому же, многие форматы данных безболезненно переносят даже множественные искажения средней и высокой степени тяжести. К этой категории относятся DivX, MP3, JPEG и другие типы файлов. С некоторой долей риска можно записывать архивы и исполняемые файлы, потерей которых вы не сильно огорчитесь, или которые возможно восстановить из основного хранилища (например, при переносе файлов между компьютерами, дублировании дисков, взятых напрокат, и т.д.).

Чистый MODE 2 встречается крайне редко, однако с его производными нам приходится сталкиваться буквально на каждом шагу. Это и CD-ROM XA MODE 2 (применяющийся в многосессионных дисках), и Video CD/Super Video CD, и CD-I, и многое многое другое.

Формат CD-ROM XA, возникший на фундаменте MODE 2, выгодно отличается от своего предшественника возможностью динамической смены типа трека на всем его протяжении. Часть трека может быть записана в режиме FORM 1, практически идентичном режиму MODE 1, но задействующем восемь ранее пустующих байт под нужды специального заголовка. Другая часть трека может быть записана в FORM 2 – усовершенствованном MODE 2: 2324 байта пользовательских данных, 16 байт основного и 8 байт вспомогательного заголовков плюс 4 байта контрольной суммы для контроля целостности (но не восстановления!) содержимого сектора.

Режим FORM 1 предполагалось использовать для критических к разрушению данных (исполняемых файлов, архивов и т.д.), a FORM 2 – для аудио/видеоданных. Увы, этим замыслам было не суждено сбыться, и широкого распространения режим FORM 2 так и не получил. Единственным популярным форматом, опирающимся на режим XA MODE 2 FORM 2, стал Video CD/Super Video CD, позволяющий записать на обычном 700-мегабайтном диске до 800 Мбайт информации и 900 Мбайт – на 90-минутном (плюс overburn). Это приблизительно на четыре мегабайта меньше, чем в чистом MODE 2, но такими потерями можно и пренебречь. Зато, в отличие от чистого MODE 2, формат Video CD/Super Video CD поддерживается операционными системами семейств Windows и Linux!

Проблемы

Сам по себе MODE 2 никаких сложностей не вызывает. Это – стандартный режим, штатно поддерживаемый всеми приводами, носителями и драйверами. Проблема состоит в том, что ISO 9660 и все файловые системы на ее основе налагают на размер сектора жесткие ограничения, требуя, чтобы он представлял собой степень двойки (т.е. составлял 512, 1024, 2048, 4096… байт). Размер пользовательской области данных сектора, записанного в MODE 1, удовлетворяет этому требованию (211=2048). О MODE 2 этого сказать нельзя, и в конце сектора остается "хвост" из 288 неиспользуемых байт (211+288=2336).

Программы профессионального "прожига" позволяют записывать диск как в XA MODE 2 FORM 1, так и в XA MODE 2 FORM 2. Однако это ни на йоту не увеличивает его объема, поскольку хвостовая часть секторов, записанных в FORM 2, вынуждена пустовать, что снижает надежность хранения данных, ничего не давая взамен.

Теоретически возможно создать драйвер, транслирующий n секторов MODE 2 в k*n секторов MODE 1, и мне действительно удалось его создать. Однако целесообразность его использования весьма сомнительна, поскольку далеко не каждый пользователь согласится устанавливать в свою систему "кустарный" драйвер. Ошибки драйверов зачастую обходятся непомерно дорого – вплоть до потери всех данных, хранившихся на жестком диске, а программисты, как и все люди в этом мире, склонны ошибаться. Так или иначе, от идеи использования драйвера я отказался, поскольку ею тестирование выглядело слишком масштабным проектом.

Немногим лучше обстоят дела и с Video CD/Super Video CD. На первый взгляд кажется: ну какие тут могут быть проблемы? Берем Ahead Nero Burning ROM, в меню диалогового окна New Compilation выбираем опцию Video CD, а затем записываем диск. Диск действительно записывается, но только в формате MPEG1. Формат Super Video CD, в свою очередь, соответствует MPEG2. Никакого обмана здесь нет – вы получаете 800/900 Мбайт настоящего MPEG1/MPEG2, что на 100 Мбайт превосходит емкость стандартного CD-R (рис. 10.17).

Рис. 10.17. Запись Video CD/Super Video CD средствами Ahead Nero Burning ROM. Емкость одного такого диска составляет порядка 800 Мбайт (900 Мбайт на 90-минутных CD-R), однако исходные данные должны быть представлены в формате MPEG1/MPEG2.

В то же время использование DivX (MPEG4) дает значительно больший выигрыш в емкости, сжимая два Video CD в один CD-ROM. Но что нам мешает записать в формате Video CD тот же самый MPEG4 или MP3? Увы, не все так просто! Большинство программ записи, включая Ahead Nero Burning ROM, осуществляют тщательную проверку всех данных, записываемых на диск. Столкнувшись с MPEG-4, они либо принудительно перекодируют данные в MPEG1/MPEG2, либо вообще отказываются от записи. Мотивация этого поведения такова – Video CD должен соответствовать Стандарту, иначе это не Video CD. Действительно, автономные Video-проигрыватели поддерживают диски строго определенных типов, и на декодирование MPEG4 у них не хватит аппаратной мощности. Персональный компьютер – другое дело. При наличии соответствующих кодеков он воспроизведет любой мультимедийный формат, независимо от того каким способом тот будет записан.

Но даже если волшебным образом "отучить" Ahead Nero Burning ROM задавать лишние вопросы и заставить его записывать MPEG4 как Video CD, это ни к чему не приведет, поскольку операционные системы семейства Windows "поддерживают" Video CD-диски весьма оригинальным образом. "Сырой" видеопоток в формате "настоящего" MPEG1/MPEG2 их не устраивает, и они насильно добавляют к нему свой заголовок в формате файла для обмена ресурсами (Resource Interchange File Format, RIFF), явным образом указывающий формат файла. Очевидно, что после таких вмешательств никакой формат воспроизводиться не будет, и попытка проиграть MPEG4 как MPEG1/MPEG2 успехом не увенчается.

Тупик? Вовсе нет! Из всякой ситуации найдутся выходы, и не один, а несколько.

Решение

Решение проблемы MODE2 сводится к записи диска в режиме, отличном от ISO 9660. Самый простой подход состоит в оформлении каждого файла в виде самостоятельного трека, отказавшись от использования файловой системы вообще. Конечно, штатными средствами операционной системы такой диск не прочесть, однако содержимое такого трека без труда может быть "сграблено" на жесткий диск и нормальным образом прочитано оттуда. Единственный минус такого решения заключается в невозможности воспроизвести записанный файл непосредственно на самом диске, что создает определенные проблемы и нервирует пользователей Windows, привыкших открывать всякий файл простым щелчком мыши, без необходимости выполнения каких-либо дополнительных действий. Правда, UNIX-сообщество, умело владеющее клавиатурой, командными файлами и скриптами, решает эту задачу без проблем. Действительно, "грабеж" трека легко автоматизировать (и позже мы покажем, как это делается), причем перед началом проигрывания файла вовсе не обязательно дожидаться извлечения всего трека целиком. Вспомните, ведь и Windows, и UNIX – это многозадачные системы, поэтому и извлечение, и воспроизведение могут выполняться параллельно.

Как вариант, можно записать диск в формате Video CD. Для этого нам потребуется программа, не слишком педантично относящаяся к требованиям Стандарта и послушно записывающая все, что ей указывают. Естественно, если формат записываемых файлов отличен от MPEG1/MPEG2, при попытке их воспроизведения возникнут серьезные проблемы, поскольку операционная система Windows принудительно снабжает их заголовком MPEG1, что вводит штатный проигрыватель в глубокое заблуждение, зачастую граничащее с зависанием. Существует, по меньшей мере, два выхода из этой ситуации. Самый простой и самый универсальный подход состоит в том, чтобы оснастить систему специальным фильтром DirectShow, поддерживающим разбор RIFF/CDXA (parsing). Примером такого фильтра является XCD DirectShow filter/NSIS installer от Alex Noe и DeXT, который может быть найден по следующему адресу: http://peque.homeftp.org/~dext/xcd/riff-cdxa-filter-test6b-nsis.zip. Другой путь заключается в использовании программного обеспечения, игнорирующего "лишний" заголовок (например, Freecom Beatman CD/MP3 Player, см: http://www.vnunet.com/Print/1129594).


    Ваша оценка произведения:

Популярные книги за неделю