Запись CD-R/RW в формате UDF на ALT Linux Compact 2.3

Статья посвящена пакетной записи на компакт-диски в ОС Linux. В качестве примера используется ALT Linux Compact 2.3

[Jose (www.linux-os.ru)]

Запись CD-R/RW в формате UDF на ALT Linux Compact 2.3

Введение

Точно даже не скажу откуда мне пришла мысль начать прикручивать эту фишку (запись на UDF отформатированные CD-R \CD-RW). До этого имел дело с пакетной записью на CD-RW год назад под Window$. НО. Мысль появилась. Значит будем воплощать в жизнь.

Что такое UDF

UDF это файловая система, которая позволяет пакетную запись на CD-диски.CD-диск в таком случае выглядит как маленький жесткий диск, или как ну очень большая дискета 8-)Вам не нужно создавать образы дисков, Вам можно забывать про открытие\закрытие сессий.

UDF и Linux

Интересно, как это все реализовано в Linux? Или Вы думаете, что в Линуксе этого нет?

Если полезть немного в истрию, то выяснится, что поддержка файловой системы UDF появилась в ядрах серии 2.4. Но для CDR\CDRW только в режиме чтения. Не совсем интересно.Поддержка записи на UDF в ванильное ядро не включена. Патч нужен. Называется нехитро packet-версия_ядра.patch.Ну и как бы нужно начинать старую песню - пересборку ядра с включением этого патча.

А теперь хватит истории и лезем в Sisyphus. У меня срез от 5.02.2004.Есть и исходники. НО. ALT Linux Team собирает несколько версий ядра, каждая со своим набором патчей.Смотрим доступные ядра на предмет наличия данного патча.

Серверные ядра смело пропускаем. Альтовцы трепетно относятся к включению чего-то лишнего в серверные ядра. А вот смотрим в ядре wks:

  Пакет kernel-image-wks-up-2.4.22-alt3
  This package contains the Linux kernel that is used to boot and run
  your system. It contains few device drivers for specific hardware.
  Most hardware is instead supported by modules loaded after booting.
  Patches included:
        kernel-fix-build-2003.04.23-alt8
        kernel-fix-security-owl-2003.08.28-alt1
        kernel-feat-core-win4lin-2.4.22-alt1        =>поддержка эмулятора Win4Lin
        kernel-fix-net-2003.11.09-alt1
        kernel-fix-core-2003.11.09-alt1
        kernel-fix-fs-2003.11.21-alt1
        kernel-fix-lvm-2003.11.06-alt1
        kernel-fix-drivers-ide-2003.11.06-alt7
        kernel-fix-drivers-net-2003.11.18-alt1
        kernel-fix-drivers-pci-2003.11.06-alt1
        kernel-fix-drivers-scsi-2003.11.18-alt1
        kernel-fix-drivers-sound-2003.11.06-alt1
        kernel-fix-drivers-usb-2003.11.09-alt1
        kernel-fix-drivers-cdrom-2003.11.06-alt1
        kernel-fix-drivers-char-2003.11.06-alt1
        kernel-fix-drivers-md-2003.07.08-alt10
        kernel-fix-drivers-mtd-2003.09.16-alt1
        kernel-fix-drivers-video-2003.10.19-alt1
        kernel-fix-drivers-ieee1394-2003.11.06-alt1
        kernel-fix-drivers-atm-2003.10.19-alt1
        kernel-fix-security-2003.11.29-alt1
        kernel-feat-fs-xfs-1.3-alt5
        kernel-feat-acpi-2003.11.21-alt1
        kernel-feat-cpufreq-2003.11.28-alt1
        kernel-feat-i2c-2.8.1-alt1 =>поддержка подсистемы i2c (с помощью этого чуда у меня всегда перед глазами: t процессора и чипсета ..)
        kernel-feat-fs-ntfs-2.1.4c-alt1
        kernel-feat-kconfig-2003.05.22-alt4
        kernel-feat-crypto-2003.10.02-alt1
        kernel-feat-drivers-usb-2003.09.29-alt1
        kernel-feat-drivers-block-enbd-2.4.31-alt5
        kernel-feat-drivers-pktcdvd-2003.08.25-alt1 => ВОТ он он.
        kernel-feat-drivers-video-splash-3.0.7-alt5
        kernel-feat-net-ppp-mppe-20030707-alt1
        kernel-feat-net-ipsec-2.00-alt3
        kernel-feat-drivers-media-v4l2-2003.08.14-alt3
        kernel-feat-drivers-net-sk98lin-6.17-alt1
        kernel-feat-drivers-sound-emu10k1-0.20-alt1.a => поддержка звуковых карточек от Creative
        kernel-feat-drivers-libata-2003.11.28-alt1
        kernel-fix-drivers-media-2003.09.09-alt1
        kernel-feat-core-supermount-1.2.9-alt1     => поддержка supermount
        kernel-feat-core-setcap-2.4.21-alt0.1
        kernel-feat-core-lowlatency-2.4.22-alt2   => почти realtime 8-)

Собственно ставим это ядро. Хоть rpm`ом, хоть apt-get`ом,а еще лучше через Synaptic.Не сколько лучше, сколько красивее и удобнее. Модули к ядру новому ставим.Если кто не понимает об чем речь, то вперед - на atmsk.ru. Там статьи имеются о новой схеме сборки ядер в дистрибутивах от ALT Linux Team.

Далее добавляем в /etc/modules.conf следующие строчки:

  # Packet CD writing
  alias block-major-97 pktcdvd
  alias /dev/pktcdvd[0-9]* pktcdvd

Потом добавляем в /etc/rc.d/rc.local (если такого файла нет, создаем и даем ему права на выполнение):

  #!/bin/sh
  pktsetup /dev/pktcdvd0 /dev/scd0

Использование программы pktsetup.

Данная программа используется для ассоциации пакетного устройства с блочными CD bkb DVD устройствами, после чего пакетное устройство может быть монтировано, как файловая система с возможностью чтения\записи. Это требует поддержки ядром пакетных устройств и файловой системы UDF.

СИНТАКСИС:

  pktsetup пакетное_устройство блочное_устройство

или для удаления ассоциации:

  pktsetup -d пакетное_устройство

Короче говоря, без этого после перезагрузки придется каждый раз делать pktsetup /dev/pktcdvd0 /dev/scd0. У меня CD-ROM работает через эмуляцию SCSI, поэтому /dev/scd0. У Вас может быть по другому.

Еще, чтобы не монтировать врукопашную делаем новую точку монтирования. Создаем каталог /mnt/cdrw и заносим все это в /etc/fstab:

  /dev/pktcdvd0 /mnt/cdrw auto rw,user,noauto,iocharset=koi8-r,umask=0,noatime 0 0

Эх. Проинициализировать все это нужно. Самый легкий путь - перезагрузиться. Ладно, совершаем кощунственное для линуксоидов действо -перезагружаемся.

Перезагрузились. Это хорошо. А теперь пошли дальше. Где же нам взять UDF болванку? Давайте сами сделаем. Берем CDRW диск. Еще нам нужен пакет udftools. Берем его опять же в Сизифе.(Пользователям Альтлинукса вообще редко приходится на сторону ходить 8-)Все из одних рук.)

в udftools входят:

  • cdrwtool
  • mkudffs
  • pktsetup
  • udfsck
  • wrudf

Но нам они все не нужны. Нам нужна только cdrwtool.

Подготавливаем CDRW болванку (стираем и форматируем ее под UDF)

СИНТАКСИС:

  cdrwtool -d устройство -q

Для нашего случая:

  # cdrwtool -d /dev/scd0 -q

Подтверждаем, что мы все-таки хотим отформатировать диск и все данные на нем будут потеряны. И процесс пошел. 4-х скоростную RW`шку у меня долго круговертило.Не стоит на этом заморачиваться - быстрее не сделаете. Лучше кофе\чай\покурить.

Ну а после того как отформатировало пробуем на болванку писать. Я использую оконный менеджер KDE.Соответственно и писать буду в нем же. В настройках KDE у меня прописано отображать устройства на рабочем столе, в частности смонтированые\отмонторованые CD-Writer ,CD-ROM. Поэтому на рабочем столе у меня есть 2 пиктограммы: одна для /mnt/cdrom, другая для /mnt/cdrw. Под последней надпись (pktcdvd0). Просто щелкаем на нем мышкой и открывается содержимое UDF диска. Берем для пробы перетаскиваем нужные нам файлы на диск.Только не эксперементируйте с каталогом Mail. Это было первое, что я попытался записать.А там у меня альтовская рассылка более 7000 писем и каждое в своем файле. Сначала я просто ждал, потом пил чай, потом еще ждал. В общем долго дело было.

После всех вышеперечисленных действий запись на UDF диск должна выглядеть для Вас не сложнее чем запись на любой другой съемный носитель. У меня, например, все работает. Чего и Вам желаю.

Дополнение:

В принципе, можно использовать одну точку монтирования /mnt/cdrom/. Но что-то мне это не понравилось.

Пользователи Mandrake Linux захотят все сделать через supermount. Тогда в /etc/fstab пишем:

  none /mnt/cdrw supermount dev=/dev/pktcdvd0,fs=udf:iso9660,rw,--,iocharset=koi8-r 0 0

Но при этом у меня очень долго открывались файлы и каталоги на диске. И очень часто светился индикатор записи на CD, хотя я всего лишь производил операции чтения. Если у кого получится нормально, то не скромничайте - дополняйте, исправляйте.

С уважением. Jose.

Спасибо за содействие Константину Лепихову aka L.A. Kostis.

Источник: www.linux-os.ru WiKi.

[ опубликовано 23/09/2004 ]

Jose (www.linux-os.ru) - Запись CD-R/RW в формате UDF на ALT Linux Compact 2.3   Версия для печати