InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Грузите апельсины бочками, а данные пакетами...


Константин Лепихов, СофтТерра


Новый, но пока еще мало используемый стандарт записи дисков предоставляет гораздо больше возможностей и существенно легче в использовании. Подробно о том, как записывать диски по-новому под linux и пойдет речь в этой статье. Плюс немного о FreeBSD.

Любой владелец привода CD-ROM - это счастливый владелец, подтвердит любой, у кого этот привод ломался, и кто почувствовал всю прелесть существования в современном компьютерном мире без этого привода =) Но это может и сказать владелец пишущего CD устройства. Особенно, если он никогда не записывал диск под UNIX/Linux. Тому, кто работал с графическими программами в Windows, очень сложно привыкнуть к "спартанской" обстановке в мире *NIX. Да и сама процедура записи на компакт-диск, пришедшая к нам из стародавних времен, больше походит на пляску шамана у костра. Ее главный недостаток (многими расценивается как достоинство) - неудобство создания записей и длительность их создания.

Приход CD-RW (перезаписываемого компакт-диска), не ознаменовал ничего нового для пользователя в смысле удобства записи: по-прежнему приходилось создавать сессию, а до этого еще долго форматировать болванку. В минусе была и низкая скорость записи на CD-RW (2x-4х против 8х-12х). Все начало меняться с приходом DVD. Для него была создана своя файловая система UDF (Universal Disk Format), учитывающая его большую емкость и скорость. Ведь стандарт iso9660 был создан еще в 1987 году, и совершено не годился для нового носителя информации из-за ограничений на объем и размещение данных. Изначально основной задачей UDF была лишь непрерывность видеопотока и совместимость с обычной файловой системой (т.н. Bridged UDF, в которой видеопотоки записывались в двух видах - UDF и ISO9660). В последующих версиях системы добавилась поддержка записи на CD-R и CD-RW диски. Это было большим шагов вперед для обычных пользователей. Появился реальный конкурент ZIP дискам и магнитооптике. Перечислю преимущества нового стандарта записи:

  • низкая стоимость носителей и устройства записи
  • возможность перезаписи/удаления "на лету"
  • удобство записи, сравнимое с пользованием дискеты или любого другого сменного носителя информации
  • более эффективное использование дискового пространства
  • более быстрый доступ к информации
  • надежность сохранности данных, как у обычных CD-R дисков
  • самое главное - возможность чтения таких дисков на обычном CD-ROM приводе (правда он должен быть выпущен не раньше 1998 года)

Новинка была сразу подхвачена фирмами Adaptec и CeQadrat, лидерами на рынке программ для записи CD (теперь их продукты продаются под торговой маркой Roxio). Adaptec разработала свою реализацию UDF, назвав ее DirectCD, а CeQuadrat свою, назвав ее PacketCD. Названия как бы подчеркивали доступность и компактность, "packed" - это от метода записи на диск, в основе которого лежал принцип записи "пакетами" - маленькими (32-64кб) блоками данных. Именно из-за этого обеспечивалась большая гибкость при записи. Пропали проблемы "переполнения буфера" записи. Появилась возможность "лечить" диски, на которых появились плохие сектора: можно было или просто переформатировать диск, или переписать тот участок, на котором возник сбой. Еще одно удобство такой записи - диск можно не "закрывать" (finalize), до тех пор, пока вас не устроит результат (сравните с CD-R, который нередко приходилось перезаписывать по-новой из-за неправильно собранного "образа"). На заре создания этого стандарта лишь малое количество CD рекордеров поддерживало пакетную запись, но скоро ситуация начала выправляться - производители приняли UDF и packed writing. На сегодняшний день все CD рекордеры имеют поддержку пакетной записи.

"А как это реализовано на практике?", спросите вы. Спецификация OSTA UDF подробно затрагивает это, и тут все зависит от разработчиков: под Windows это драйвер, под Linux это модуль ядра. Есть также и драйвер для MacOS 8.1 от Roxio. Реализация UDF под другие платформы мне не известна, но в OSTA UDF заявлена поддержка под OS/2 и Unix(xBSD,VMS,HP-UX). По крайней мере, FreeBSD, начиная с 4.2STABLE, официально поддерживает запись на CD-RW, в 4.3STABLE добавлена поддержка DVD-RAM (см. Приложение C). Наиболее удобно в Windows: поддержка сделана в виде драйвера, который добавляет возможность чтения для CD-ROM привода и записи для рекордера. Еще есть возможность изменения скорости чтения/записи данных (что очень удобно и в обычных условиях, т.к обычно CD-RW диск читается на той же скорости, что и записан). К сожалению, из-за отсутствия у меня CD-RW, приходится говорить "возможно" и "я так думаю". Весь процесс записи под Windows очень прост - вы просто форматируете диск, как дискету (обычно это занимает ~ 20 минут), затем просто в "Проводнике" или вашем любимом файловом менеджере копируете файлы на диск. Если что-то не так, или вы передумали, просто стираете и записываете новый. Как говорится, "доступно даже младенцу" =) DirectCD входит в Easy CD Creator, PackedCD есть в WinOnCD. Из дополнительных возможностей под Windows реализована компрессия данных, что позволяет разместить на диске 700Мб около 1 Гб информации! Конечно, информация должна хорошо сжиматься и сам носитель быть достаточно хорошим, иначе возможны сбои при чтении. Из личного опыта хочу заметить, что DirectCD более стабилен и наиболее близок к "идеальной OSTA UDF", а PackedCD более "наворочен" с точки зрения функциональности, но с ним чаще сбои при записи из-за качества носителей. К тому же PackedCD не совместим с реализацией UDF под Linux и его не читает DirectCD, в общем достаточно закрытый и проблемный продукт получился.

С Linux все сложнее...Здесь нормально реализовано только чтение дисков, файловая система UDF официально входит в ядро, начиная с версии 2.3.7 и доступна для предыдущих версии как дополнительный модуль. Большинство дистрибутивов, кроме ASPLinux и RedHat, имеют поддержку UDF в ядрах 2.2 (это не касается 2.4, куда udf входит официально). util-linux также знают эту файловую систему. Если у вас нет этого модуля (udf.o), то его исходный код можно скачать с сайта linux-udf.sourceforge.net или http://www.csc.calpoly.edu/~bfennema/udf.html (это страница Ben Fennema, одного из разработчиков UDF для Linux) в виде архива, а затем собрать самостоятельно (см. приложение А). В текущей версии драйвера - 0.9.4, доступной через CVS, добавлена опция iocharset, наконец-то позволяющая видеть каталоги в кодировке, отличной от iso8859-1. Как уже говорилось выше, с помощью этого модуля можно успешно читать UDF диски, созданные на базе UDF 2.0 или 1.50 - это DirectCD и InCD.

К сожалению, запись udf дисков "на лету", пока находится в альфа состоянии, но все равно, оптимизм автора (Jens Axboe) патча для поддержки пакетной записи очень вдохновляет: уже сейчас можно свободно записывать на CD-RW, скоро планируется поддержка CD-R, а затем поддержка пакетной записи будет интегрирована в ядро 2.4. И это при том, что версия еще 0.0.2k! Конечно, не все так безоблачно - еще не решен вопрос с записью больших файлов, не до конца отработан алгоритм восстановления после сбоя. Но как говорится, "it's sucks, but it's works". Патчи для поддержки пакетной записи под ядро 2.4.5-pre1 можно скачать с сайта или через SourceForge . На сайте SourceForge есть и CVS репозиторий, через который можно получить самую свежую версию. Т.к вся поддержка предоставляется в виде патчей к ядру, для сборки вам понадобится и само ядро =) Его также можно скачать с ftp.kernel.org/pub/linux/kernel/v2.4 или любых общедоступных зеркал (Chg, например). Я не советую использовать ядра из всевозможных дистрибутивов (RedHat, Mandrake или других): во-первых, их состав и организация довольно сильно отличается от того, что доступно на www.kernel.org. Во-вторых, всевозможные добавления могут конфликтовать с патчами. В-третьих, вам просто не удасться правильно "наложить" патч. Это относится и к версиям от Alan Cox и других kernel maintainers. Используйте только ядро от Linus Torvals, если вам не нужна лишняя головная боль! После того, как вы установили и собрали ядро с поддержкой пакетной записи (см. приложение B), самое время подумать, как и чем записывать CD-RW диски =) К сожаление стандартные программы записи дисков под Linux (cdrecord и mkisofs) здесь бессильны - поддержка udf в них только планируется, так что приходится пользоваться средствами, которые предлагают разработчики проекта linux-udf. В пакете для этого предусмотрены 3 программы:

  • pktsetup, служит для установки связи с packet device (т.е CD-RW приводом),
  • cdrwtool, нужна для начальной разметки/форматирования диска CD-RW.
  • mkudf, служит для создания udf-образов на нестандартные носители (dvd, dvdram, cd-r). Запись таких образов производится cdrecord. Пока данная программа очень нестабильна, и авторы не советуют ей пользоваться.

[Вперед]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua