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, там же и полезные комментарии.