The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Запись CD-R/RW в UDF формате. (udf cdrom linux)


<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: udf, cdrom, linux,  (найти похожие документы)
From: Дмитрий Налдаев Newsgroups: PermLug, http://alpha.linux.perm.ru Date: Mon, 9 Dec 2003 14:31:37 +0000 (UTC) Subject: Запись CD-R/RW в UDF формате. Оригинал: http://alpha.linux.perm.ru/wiki/Doc/writingUDF Оглавление документа Введение Что такое UDF UDF и Linux Немного истории Ядро 2.4.23 Не все так радужно, как хотелось бы И все-таки она работает ! И как оно читается на других компах? Выводы Разборки с UDF. Введение Итак, по просьбам телезрителей, требующих поделиться опытом обуздания UDF, дабы и другие могли ее использовать, решил таки написать маленький отчет. В общем я решил, не писать инструкцию по образу и подобию разных HowTo и FAQов, а просто рассказать что, как и почему делал, и на какие грабли при этом наступил... Сразу предупреждаю, что писака из меня никакой, так что просьба ногами не пинать. Может действительно уже пришло время открыть настоящую охоту на капризную Музу? Что такое UDF С появлением CD-writer приводов стало возможно не только только читать CD диски на компьютере, но и записывать их на специальные CD-R диски, в народе именуемые болванками. А с появлением CD-RW болванок, диски стало можно не только записывать, но и перезаписывать. К сожалению классическая технология записи на CD-R(W) обладает существенным недостатком сначала нужно создать образ диска, который потом будет прошит на болванку. Такой подход имеет ряд существенных недостатков, и в частности требуется место для образа диска, а кроме того данные на диске нельзя оперативно обновлять те CD-RW диск можно стереть за раз и... в лучшем случае можно дописать новые данные в новую сессию... А почему собственно говоря нельзя записывать данные на CD-RW как на обычную дискету? Ведь классическая запись через образ возникла из-за ограничений, налагаемых технологией записи на простой CD-R диск, когда в течении сессии нельзя гасить лазер... В результате была разработана технология произвольной записи на CD-RW диск, получившая название DirectCD (на сколько я понимаю это торговая марка или что-то типа того) и известная среди специалистов, как пакетная запись на CD. А UDF это файловая система, используемая при пакетной записи на CD. По этому UDF диск это Direct CD диск, и работать с таким диском можно как с обычной дискетой только очень большого объема... UDF и Linux При конфигурировании ядра Linux серии 2.4 в разделе файловые системы появились опции для поддержки UDF. Но help к этой опции гласит: Due to lack of support for writing to CDR/CDRW's, this option is only supported for hard discs, DVD-RAM, and loopback files. те поддержка записи на CD отсутствует в принципе :-( но читать UDF диски уже можно и то в перед. В принципе писать на UDF диск тоже можно, но по старинке те через образ, но при этом теряются все преимущества UDF, так что этот метод я не буду рассматривать дальше... У меня даже было желание выбить из начальства DVD-RAM чтобы получить возможность нормально писать на UDF. Немного истории UDF диски я использую довольно давно раньше резак стоял на соседнем компьютере под управлением какой-то там версии Виндовс, и DirectCD к нему прикрутили при первой же возможности, и что самое главное, хозяин этого компа постоянно следил тобы тама все работало (поскольку он сам тоже пользовался UDF дисками). В общем, когда мне нужно было что-нибудь записать на UDF диск, я кидал этот диск к нему в привод, и заливал туда все что мне было нужно через Самбу, а читать такие диски, как я уже отмечал выше, можно было и под линуксом... Но не так давно этот человек уволился, и его привод перекочевал ко мне... Конечно у нас в комнате есть еще один пишущий привод, но он постоянно кочует между разными компьютерами, а поскольку кроме меня похоже больше нет активных пользователей UDF в нашей комнате, то записывать на этом приводе, точно так же как я записывал раньше на другом, получается далеко не всегда... Совсем недавно в списке рассылки debian-russian промелькнул вопрос http://lists.debian.org/debian-russian/2003/debian-russian-200310/msg01026.html и очень любопытный ответ в конце соответствующего треда http://lists.debian.org/debian-russian/2003/debian-russian-200310/msg01153.html Ядро 2.4.23 Так уж получилось, что выход ядра 2.4.23 совпал с сообщением об дыре в более ранних ядрах, через которую поломали сервера Debian. К тому же мне нужно было прикрутить привод, который достался мне после ухода коллеги. В результате я решил обновить ядро, а за компанию посмотреть, на сколько реально получить поддержку записи на UDF диск под линуксом... Я снова нашел письмо в архиве списка рассылки debian-russian, в котором говорилось, что при наличии соответствующего патча UDF диски не только читаются но и пишутся под линуксом и пошел по ссылкам, с начала на http://w1.894.telia.com/~u89404340/patches/packet/2.4/ а потом стал исследовать этот сайт и в результате нашел небольшую страничку, http://w1.894.telia.com/~u89404340/packet.html посвященную пакетной записи на CD под линуксом и небольшое HowTo по этому вопросу http://cvs.linuxfromscratch.org/index.cgi/hints/Attic/cdrw-hint.txt?rev=1.3 После изучения документации я вытащил патч http://w1.894.telia.com/~u89404340/patches/packet/2.4/packet-2.4.23-pre8.patch.bz2 (Бонус для пользователей Perm9 - это патч доступен по адресу ftp://ftp.linux.perm.ru/people/dima/kernel/packet-2.4.23-pre8.patch.bz2 ) который встал на ядро 2.4.23 без лишних вопросов. Я ставил этот патч командой bzcat /home/dima/packet-2.4.23-pre8.patch.bz2 |patch -Np1 из корневого каталога дерева исходников ядра 2.4.23 Дальше, кроме стандартных телодвижений, необходимых для получения поддержки обычной записи на CD, я поставил галочки при конфигурировании ядра напротив опций <<Packet writing on CD/DVD media>> в разделе "Block devices" (эта опция становится доступна после наложения указанного выше патча) и <<UDF file system support (read only)>> <<UDF write support (DANGEROUS)>> в разделе "File systems". После чего я собрал новое ядро, инсталировал его, и перезагрузил компьютер с новым ядром... Не забудьте создать файлы устройств: AirGate:~# for i in 0 1 2 3; do mknod /dev/pktcdvd$i b 97 $i; \ chown root.cdrom /dev/pktcdvd$i; chmod 660 /dev/pktcdvd$i; done Не все так радужно, как хотелось бы Для начала я разобрался с обычной записью на диск, и после того, как скопировал один CD на болванку, вплотную занялся UDF. Для начала я решил примонтировать свой старый UDF диск, который был создан в M$ Windows и до этого прекрасно читался: AirGate:~# mount /dev/cdrom /cdrom -t udf mount: block device /dev/cdrom is write-protected, mounting read-only AirGate:~# ls -l /cdrom ls: /cdrom/XF86: No such file or directory ls: /cdrom/debian: No such file or directory ls: /cdrom/hmm: No such file or directory ls: /cdrom/kernel: No such file or directory ls: /cdrom/unsorted: No such file or directory ls: /cdrom/win-unknown: No such file or directory ls: /cdrom/wine: No such file or directory ls: /cdrom/mmedia: No such file or directory ls: /cdrom/music: No such file or directory ls: /cdrom/debian-2: No such file or directory ls: /cdrom/OOo_1.1rc5_LinuxIntel_ruRU_install_alt1.tar.gz: No such file or directory ls: /cdrom/meetings: No such file or directory итого 0 AirGate:~# Бррр. Странно дело как зовут файл он вроде бы знает, а самого файла нет. С таким я еще по моему не встречался... Но может я чего делаю неправильно? Еще раз перечитываю HowTo, после чего говорю AirGate:~# apt-get install udftools соответствующий пакет на удивление оказался в woody... Если у вас другой дистрибутив, и в него не входят udftools, скачать их исходные тексты можно например здесь: ftp://alpha.linux.perm.ru/people/dima/kernel/udftools_1.0.0b2.orig.tar.gz Читаю документацию к пакету. теперь у меня следующая попытка: AirGate:~# pktsetup /dev/pktcdvd0 /dev/cdrom AirGate:~# mount /dev/pktcdvd0 /cdrom -t udf AirGate:~# ls -l /cdrom ls: /cdrom/XF86: No such file or directory ls: /cdrom/debian: No such file or directory ls: /cdrom/hmm: No such file or directory ls: /cdrom/kernel: No such file or directory ls: /cdrom/unsorted: No such file or directory ls: /cdrom/win-unknown: No such file or directory ls: /cdrom/wine: No such file or directory ls: /cdrom/mmedia: No such file or directory ls: /cdrom/music: No such file or directory ls: /cdrom/debian-2: No such file or directory ls: /cdrom/OOo_1.1rc5_LinuxIntel_ruRU_install_alt1.tar.gz: No such file or directory ls: /cdrom/meetings: No such file or directory итого 0 AirGate:~# Как говорится те же яйца, только в профиль, с той лишь разницей что теперь mount не ругается по поводу read-only media. И что? Выходит Облом? Мы так не договаривались... И все-таки она работает ! К счастью у меня был совершенно новый CD-RW диаметром 85mm (те минидиск) и я решил попробовать, а как оно будет работать с ним. Для начала диск нужно отформатировать: AirGate:~# man cdrwtool Reformatting cdrwtool(1), please wait... AirGate:~# cdrwtool -d /dev/cdrom -q using device /dev/cdrom 4085KB internal buffer setting write speed to 12x Settings for /dev/cdrom: Fixed packets, size 32 Mode-2 disc I'm going to do a quick setup of /dev/cdrom. The disc is going to be blanked and formatted with one big track. All data on the device will be lost!! Press CTR L-C to cancel now. ENTER to continue. Initiating quick disc blank Disc capacity is 89408 blocks (178816KB/174MB) Formatting track start=0, blocks=16, type=RESERVED start=16, blocks=3, type=VRS start=19, blocks=237, type=USPACE start=256, blocks=1, type=ANCHOR start=257, blocks=31, type=USPACE start=288, blocks=32, type=PVDS start=320, blocks=32, type=LVID start=352, blocks=32, type=STABLE start=384, blocks=1024, type=SSPACE start=1408, blocks=87712, type=PSPACE start=89120, blocks=31, type=USPACE start=89151, blocks=1, type=ANCHOR start=89152, blocks=160, type=USPACE start=89312, blocks=32, type=STABLE start=89344, blocks=32, type=RVDS start=89376, blocks=31, type=USPACE start=89407, blocks=1, type=ANCHOR Writing UDF structures to disc Quick setup complete! AirGate:~# Снова пытаюсь подмонтировать теперь уже свежесозданный диск AirGate:~# ls -l /cdrom total 0 drwxr-xr-x 2 root root 40 Dec 9 19:14 lost+found AirGate:~# Ураа! теперь она уже не ругается по поводу того что не может найти файлы, но нормально показывает содержимое диска. А писать-то на диск теперь можно? AirGate:~# mkdir /cdrom/test AirGate:~# ls -l /cdrom total 0 drwxr-xr-x 2 root root 40 Dec 9 19:14 lost+found drwxr-xr-x 2 root root 40 Dec 9 20:31 test AirGate:~# А как шустро происходит запись на диск? AirGate:~# time cp /home/dima/src/kernel-source-2.4.23.tar.bz2 /cdrom; time umount /cdrom real 0m0.258s user 0m0.010s sys 0m0.170s real 1m5.616s user 0m0.000s sys 0m0.040s AirGate:~# Может и не очень шустро, но нужно учитывать, что привод древний и умеет всего только 4x на CD-RW болванки... А как диск читается после того, как его размонтировали и снова примонтировали? AirGate:~# mount /dev/pktcdvd0 /cdrom -t udf AirGate:~# ls -l /cdrom total 29304 -rw-r--r-- 1 root root 30006491 Dec 9 20:37 kernel-source-2.4.23.tar.bz2 drwxr-xr-x 2 root root 40 Dec 9 19:14 lost+found drwxr-xr-x 2 root root 40 Dec 9 20:31 test AirGate:~# time cp /cdrom/kernel-source-2.4.23.tar.bz2 /tmp real 1m3.749s user 0m0.000s sys 0m0.120s AirGate:~# Но не постоянно же работать с cd из под root'а. для этого создаю каталог /mnt/cdrw и добавляю такую строчку в /etc/fstab /dev/pktcdvd0 /mnt/cdrw auto rw,user,noauto,umask=0,noatime 0 0 Теперь интересу для пытаюсь смонтировать обычный iso9660 CD диск: dima@AirGate:~$ mount /mnt/cdrw mount: /dev/pktcdvd0: can't read superblock dima@AirGate:~$ А UDF диск монтируется нормально dima@AirGate:~$ mount /mnt/cdrw dima@AirGate:~$ Странно дело mount /cdrom нормально монтирует как iso9660 так и UDF диски без проблем, но в режиме read-only... в /etc/fstab для него прописано /dev/cdrom /cdrom auto ro,user,noauto,unhide 0 0 Но это не самое важное, просто немного жаль, что нельзя использовать одну и ту же точку монтирования для всех дисков. Ладно сейчас хочу попробовать писать на диск обычным пользователем: dima@AirGate:~$ mkdir /mnt/cdrw/dd mkdir: cannot create directory `/mnt/cdrw/dd': Permission denied dima@AirGate:~$ ls -l /mnt total 1 drwxr-xr-x 4 root root 264 Dec 9 19:14 cdrw drwxr-xr-x 2 root root 1024 Sep 25 20:01 master.mnt dima@AirGate:~$ Опс... а у меня просто не те, ща мы их быстренько... dima@AirGate:~$ umount /mnt/cdrw dima@AirGate:~$ ls -l /mnt total 2 drwxrwxr-x 2 root cdrom 1024 Dec 9 20:36 cdrw drwxr-xr-x 2 root root 1024 Sep 25 20:01 master.mnt dima@AirGate:~$ Опа! а права на точку монтирования уже стоят какие надо. Выходит при монтировании права точки монтирования изменяются... Я как-то не обращал внимания на этот довольно любопытный момент. При монтирование обычных дискет с FATом таких проблем не было... Ну ладно... dima@AirGate:~$ mount /mnt/cdrw dima@AirGate:~$ ls -l /mnt total 1 drwxr-xr-x 4 root root 264 Dec 9 19:14 cdrw drwxr-xr-x 2 root root 1024 Sep 25 20:01 master.mnt dima@AirGate:~$ su Password: AirGate:/home/dima# chown root.cdrom /mnt/cdrw AirGate:/home/dima# chmod g+w /mnt/cdrw AirGate:/home/dima# ls -l /mnt total 1 drwxrwxr-x 4 root cdrom 264 Dec 9 19:14 cdrw drwxr-xr-x 2 root root 1024 Sep 25 20:01 master.mnt AirGate:/home/dima# exit exit dima@AirGate:~$ mkdir /mnt/cdrw/dd dima@AirGate:~$ ls -l /mnt/cdrw/ total 29304 drwxr-xr-x 2 dima dima 40 Dec 10 12:21 dd -rw-r--r-- 1 root root 30006491 Dec 9 20:37 kernel-source-2.4.23.ta r.bz2 drwxr-xr-x 2 root root 40 Dec 9 19:14 lost+found drwxr-xr-x 2 root root 40 Dec 9 20:31 test dima@AirGate:~$ dima@AirGate:~$ umount /mnt/cdrw dima@AirGate:~$ mount /mnt/cdrw dima@AirGate:~$ ls -l /mnt/ total 1 drwxrwxr-x 5 root cdrom 308 Dec 9 19:14 cdrw drwxr-xr-x 2 root root 1024 Sep 25 20:01 master.mnt dima@AirGate:~$ Кажется поборол... ладно хоть после размонтирования права не потерялись... И как оно читается на других компах? Проверял только дома. к сожалению дома есть только читающий CD привод. Дома у меня стоит ядро 2.4.22 с kernel.org без дополнительных патчей. поддержка UDF естественно включена. Оба диска прочитались нормально: как созданный раннее в Windows так и тот что создал только что под Линуксом... Может или нет Windows прочитать UDF диск, созданный и записанный под Linux'ом я не проверял для меня этот вопрос не очень актуален. Выводы Вобщем-то оно работает, но неожиданным стало то, что созданный ранее диск, (который раньше читался нормально) перестал читаться, пробовать записывать на него что-то новое я не стал, так как не хочу терять то что там записано. Разобраться почему этот диск не хочет читаться я планирую в ближайшее время. Понравилось так же, что при записи под линукском на UDF диск файлы получают нормальные права, а не +x как при записи под виндой. Но с другой стороны наличие реальных атрибутов приводит к некоторым неудобствам, и не понятно как быть если у пользователя на разных компьютерах разные UID и GID 85мм CD-RW диск вместе с коробкой имеет почти такие же размеры как и обычная трех дюймовая дискета, а влазит на него 170 метров. Стоимость же такого диска (вместе с коробкой) в районе 25 рублей. Скорость записи и чтения тоже вполне приемлемые. Вобщем ZIP драйв похоже полетает тоже... Да и еще, очень похоже, что UDF диск нельзя сделать загрузочным, но я склонен рассматривать это как достоинство, а не как недостаток.

<< Предыдущая ИНДЕКС Поиск в статьях src Установить закладку Перейти на закладку Следующая >>

 Добавить комментарий
Имя:
E-Mail:
Заголовок:
Текст:




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру