Linux Tux logo

ISO9660 не позволяет писать файлы 4Gb и более. Потому про mkisofs можно забыть.
Используется файловая система UDF. Замечательно читается в более-менее последних версиях Windows.

Для этого нам нужны udftools: http://sourceforge.net/projects/linux-udf

Алгоритм таков: создаем образ на жестком диске, копируем туда файл, записываем образ на DVD.

Берем размер образа (в секторах) по следующей таблице:

	DVD-R/DL = 4,171,712
	DVD+R/DL = 4,173,824
	DVD-R/SL = 2,298,496
	DVD+R/SL = 2,295,104

Размер сектора 2048 байт
Возмем DVD+R/single layer для примера.

Делаем образ:

$ dd if=/dev/zero of=/mnt/data/image.udf bs=2048 count=2295104

Создаем файловую систему:

mkudffs --lvid=Volume\ name /mnt/data/image.udf

Монтируем образ:

sudo mount -o loop /mnt/data/image.udf /mnt/dvdimage

Аналогичная запись в fstab:

/mnt/data/image.udf /mnt/dvdimage udf noauto,rw,users,loop=/dev/loop 0 0 0

Копируем файлы. Размонтируем образ.

Записываем образ на диск:

growisofs -dvd-compat -Z /dev/dvd=/mnt/data/image.udf

Примечания:

  • Если не ошибаюсь, опция -dvd-compat нужна только на DVD-R и не нужна на DVD+R. Но проблем замечено не было, даже когда писалось с -dvd-compat на DVD+R.
  • Образ замечательно пишется каким-нибудь k3b, вот только проверить его не удастся (поскольку это не ISO 9660)
  • UDF поддерживает пользователей, права, хардлинки, и по-моему симлинки. Так что можно использовать для бекапа. Вот только в Windows XP такие вещи интересно читаются: хардлинки – просто файл копируется, а симлинки – создается файл нулевой длины
  • в Линуксе работа с udf (например просмотр директорий) происходит чуть медленнее,
    с ISO9660, особенно если там хардлинки и симлинки.
  • САМОЕ ВАЖНОЕ: В ядрах 2.6.17 и выше, вы не сможете записать на UDF файл более 1Gb.
    Поддержку больших файлов из UDF убрали мотивируя тем, что драйвер как-то портит что-то в памяти в ядре.
    Лично я глюков не заметил. Хоть у меня стоит 2.6.20, я держу 2.6.16.19 именно для того,
    чтобы записывать большие файлы. Поскольку каждый раз перегружаться неудобно,
    смотрю в сторону lguest http://www.opennet.ru/opennews/art.shtml?num=9698 http://lwn.net/Articles/218766/
  • используя UDF вы можете писать на DVD как на обычную дискету. См сюда: http://www.opennet.ru/base/sys/udf_cdrom.txt.html . Сам пробовал – получалось 🙂

Примечание: вообще IMHO замечательная файловая система. И почему разработку udftools прекратили?
Может найдется кто-то из глубокоуважаемого Linux- общества, который продолжит благородное дело?

Оригинал статьи на opennet.ru, там же и полезные комментарии.