про UDF в линуксе

May 21, 2007 16:09

Судя по периодическим вопросам о UDF, работа с дисками в этом формате поначалу вызывает определенные затруднения. Как мы увидим ниже, ничего сложного в работе с этим форматом уже давно (где-то начиная с ядра 2.6.10) нет.

Для начала: что же такое формат UDF? За точным определнием отсылаю к википедии, а сам скажу по-простому.

Во-первых, это - тот самый формат, в котором записано абсолютное большинство видео-dvd дисков (т.е. обычных dvd с фильмами).
Во-вторых, это формат, поддерживающий произвольный доступ к содержимому диска как на чтение, так и на запись, и поэтому позволяющий использовать dvd и cd r/w диски как большие дискеты (removable media).

Соответственно, использовать UDF можно двояко:

Прежде всего, в UDF рекомендуется писать статические dvd-видео диски для максимальной совместимости с "железными" плейерами. Более того, если для DVD5 у UDF есть альтернатива в виде формата ISO9660 (тот, который стандартный для CD дисков с данными), то видео DVD9 диски без проблем работают только с UDF. Для создания статических UDF-образов никаких специальных средств не нужно, с этим прекрасно справляется стандартный mkisofs с ключиками -udf и/или -dvd-video (последний рекомендуется для создания образов dvd-видео дисков). Далее созданный образ пишется на болванку обычными тулзами, например, growisofs.
Чтобы читать UDF диски, от ядра всего лишь требуется поддержка файловой системы UDF (CONFIG_UDF_FS и рядом). Тут тоже никаких хитростей нет: монтирование UDF диска ничем не отличается от монтирования дисков с другими файловыми системами.

Немногим более сложно использовать UDF для работы с r/w болванками как с дискетами. Тут от ядра кроме поддержки файловой системы UDF как таковой еще нужна поддержка пакетной записи (CONFIG_CDROM_PKTCDVD и рядом). Далее работа с r/w болванками осуществляется так:
* новые болванки форматируются в формат UDF тулзой mkudffs из пакета udftools;
* отформатированные болванки монтируются из /dev/pktcdvd/? как udf, и их после этого можно пофайлово читать/писать обычным образом. Для примера строка из моего /etc/fstab отвечающая за монтирование UDF дисков на пакетное чтение/запись:
/dev/pktcdvd/0 /mnt/udf udf rw,noatime,user,noauto,gid=disk,umask=0002,iocharset=koi8-r 0 0

Замечу, что пакетную запись можно использовать и для записи cd-r/dvd-r/dvd+r дисков в пофайловом режиме, естественно, без возможности изменения или удаления ранее записанных файлов.
Необходимо также заметить, что "железные" плейеры, как правило, не любят UDF диски записанные в пакетном режиме, поэтому я не рекомендую его использовать для записи dvd-видео дисков.

Вот и все, пожалуй. Удачи в освоении UDF!

UPD. Для создания UDF образа с файлами размером >2GB mkisofs может потребовать дополнительную опцию -allow-limited-size.

UPD. Начиная с версии 2.6.17 для пакетной записи в UDF ввели ограничение размера файла 1GB, в связи с багом (см. [1], [2]). Баг исправлен и ограничение снято в версиях ядра >= 2.6.22.

linux, tech

Previous post Next post
Up