Ключевые слова:dvd, cdrom, udf, cdrecord, linux, (найти похожие документы)
From: Taras Ablamsky <atl at mf ! volsu ! ru>
Newsgroups: http://volgograd.lug.ru
Date: Mon, 18 Jan 2004 14:31:37 +0000 (UTC)
Subject: Запись DVD в linux
Оригинал: http://volgograd.lug.ru/wiki/TarasAblamsky/articles/DVDWriting?v=i6a
Про то как записывать DVD[+-]R[W](всякие там разные dvd) под linux.
Оглавление документа
- Запись dvd c файловой системой ISO9660 (самые обычные dvd)
- Запись dvd с файловой системой UDF
- Способ первый
- Способ второй
- Полезные ссылки
Запись dvd c файловой системой ISO9660 (самые обычные dvd)
1. ставим dvd+rw-tools
sudo apt-get install dvd+rw-tools
Пакет этот занимает 179300 байт
rpm -ql dvd+rw-tools
/etc/control.d/facilities/dvd+rw-booktype
/etc/control.d/facilities/dvd+rw-format
/etc/control.d/facilities/growisofs
/usr/bin/dvd+rw-booktype
/usr/bin/dvd+rw-format
/usr/bin/growisofs
/usr/share/doc/dvd+rw-tools-5.13.4.7.4
/usr/share/doc/dvd+rw-tools-5.13.4.7.4/changelog
/usr/share/doc/dvd+rw-tools-5.13.4.7.4/index.html
Обратите внимание на файлик index.html -- это такое небольшое HOWTO,
которым я и руководствовался, в виду того, что man growisofs
еще не написан.
2. Программа, которая записывает dvd, называется growisofs
по опциям она почти полностью совпадает с mkisofs. То есть запись DVD
это практически тоже самое что и создание iso, в смысле если вы умеете
делать iso, то вы уже умеете писать dvd ;)
Итак, берем наш любимый скрипт для создания iso, меняем в нем слово
'mkisofs' на 'growisofs -Z /mnt/cdrom' и получаем скрипт для записи DVD!
Вот так это выглядит у меня:
t@atl ~/bin $ cat t-dvdcreate
#!/bin/bash
growisofs -Z /dev/cdrom -J -jcharset koi8-r -r -hide-rr-moved -multi $*
t@atl ~/bin $
3. Все! передаем ему в качестве параметра имя директории которую хотим
записать и радуемся ;)
В рассмотренном выше примере мы пишем сразу на dvd, как бы минуя этап
создания iso-образа. Это может быть не всегда удобно, записать уже
подготовленный раньше образ(пусть img.iso) можно так:
growisofs -Z /dev/cdrom=img.iso
Примечание: я так и не понял когда нужно использовать опцию -Z,
а когда -M Если не работает с одной, попробуйте с другой. Сначала
я думал что -Z используется для новых пустых дисков, а -M
для перезаписываемых, но это оказалось не так.
Все получилось настолько просто что я даже не обратил внимания
на версии всяких программ и ядра. Вот они:
t@atl ~ $ uname -a
Linux atl.gcc.office.vng.com.ru 2.4.22-std-up-alt15 #1 Wed Dec 31 10:12:56 MSK 2003 i686 unknown unknown GNU/Linux
t@atl ~ $ rpm -q dvd+rw-tools mkisofs
dvd+rw-tools-5.13.4.7.4-alt2
mkisofs-2.0-alt4
Скорее всего они все из Сизифа.
Запись dvd с файловой системой UDF
Недавно обнаружил что файловая система iso9660 не поддерживает файлы
размером больше 2Gb.
Для записи таких файлов можно использовать файловую систему UDF.
На самом деле в linux можно записывать диски с совершенно любой
поддерживаемой ядром файловой системой (например reiserfs или даже
fat ;) ), но вот только бедные несчастные пользователи windows
не смогут их прочитать. С UDF же есть шанс что и пользователям windows
удастся прочитать записанные нами диски.
Способ первый
Программа mkisofs из состава dvdrtools (http://www.nongnu.org/dvdrtools/)
умеет делать образ с файловой системой udf (ключ -udf).
То есть udf-образ можно создать так:
$ mkisofs -udf -o image.udf dir_with_files
еще раз обращаю внимание что программа mkisofs должна быть из состава
dvdrtools, только она умеет делать файловую систему udf.
Заглянув внутрь growisofs я обнаружил что она не содержит кода
mkisofs, а вызывает ее непосредственно с помощью exec. Притом
не просто вызывает а сначала проверяет переменную среды MKISOFS,
и если та установлена то вызывается программа указанная в этой
переменной. Таким образом можно собрать mkisofs из состава
dvdrtools и использовать ее совместно с уже имеющейся в системе
версией неподдерживающей UDF.
Для этого берем тарбол dvdrtools (например здесь
http://files.generaal.net/dvdrtools/dvdrtools-0.1.6.tar.gz ), распаковываем
его и собираем.
t@atl /tmp $ wget http://files.generaal.net/dvdrtools/dvdrtools-0.1.6.tar.gz
t@atl /tmp $ tar xzvf dvdrtools-0.1.6.tar.gz
t@atl /tmp $ cd dvdrtools-0.1.6
t@atl /tmp/dvdrtools-0.1.6 $ ./configure
t@atl /tmp/dvdrtools-0.1.6 $ make
Получаем бинарный файл mkisofs в каталоге mkisofs, копируем
его куда-нибудь, например в ~/bin/mkisofs_udf,
после чего задаём MKISOFS=$HOME/bin/mkisofs_udf и пишем dvd c UDF
командой:
t@atl /tmp $ export MKISOFS=$HOME/bin/mkisofs_udf
t@atl /tmp $ growisofs -Z /dev/cdrom -J -jcharset koi8-r -r -hide-rr-moved -multi -udf dir_with_files
Кстати, dvdrtools это не только mkisofs, это целый набор утилит
для записи dvd. Это вобщем-то cdrtools, расширенные до возможности
записывать dvd. Так что раз уж мы собрали эти программы можно
ими и пользоваться для записи dvd.
Если по какой либо причине вам не удалось найти или собрать mkisofs
из dvdrtools, то можно воспользоваться другим вариантом.
Способ второй
Для работы с UDF нам потребуется пакет udftools (сайт проекта
http://linux-udf.sourceforge.net/)
Если вы пользуетесь пакетным дистрибутивом, имеет смысл взять пакет
из своего дистрибутива. Я использовал udftools-1.0.0-alt0.1b3,
по-моему из какого-то из срезов Сизифа (http://www.altlinux.ru/index.php?module=sisyphus).
Создать образ диска с файловой системой UDF можно следующим образом:
Создаем пустой файл нужного размера (здесь 4Gb)
t@atl /tmp $ dd if=/dev/zero of=image.udf bs=1000k count=4000
Затем с помошью программы mkudffs из пакета udftools создаем в этом
файле файловую систему UDF
Обратите внимание на параметр -r который указывает версию UDF. Дело
в том, что по умолчанию используется версия 2.01, а мы ведь переживаем
за бедных пользователей поделок от Microsoft в которых она может
не поддерживаться (Проверено, на windows 98 UDF2.01 не читается).
Монтируем теперь этот файл как устройство loopback
t@atl /tmp $ sudo mount -o loop image.udf /mnt/floppy
Не очень приятный момент, так как приходится пользоваться привелегиями
root как для монтирования так и для смены владельца файлов в нашей
новой ФС.
Теперь набиваем наш образ диска файлами которые хотим записать,
то есть просто копируем все что надо в каталог куда смонтирован образ.
И размонтируем образ
t@atl /tmp $ sudo umount /mnt/floppy
Всё. Образ готов. Теперь осталось его залить на dvd, что мы и делаем
так же как и в случае с iso-образом.
growisofs -Z /dev/cdrom=image.udf
Полезные ссылки
http://gazette.linux.ru.net/lg83/stoddard.html -- статья про то как
записывать видео-dvd диски.
PS говорят также что xcdroast и k3b умеют писать dvd, но поскольку
они мне не интересны, я их даже не смотрел.
Еще вы пишете по крону (в не интерактивном режиме) и на диске RW уже записаны даные в формате ISO 9660, то получите сообщение об ошибке FATAL: /dev/hdc already carries isofs!. Так что используйте UDF Господа.