1. Создание iso-образа для записи
Сначала создадим каталог, куда положим все файлы, которые собираемся записывать. Затем (в общем случае) вызываем команду mkisofs таким образом:
mkisofs [доп. опции] <�путь к каталогу с файлами> -o <�имя выходного файла.iso>
На практике обычно указывают некоторые опции. Их очень много, полный список можно посмотреть в man mkisofs, вот некоторые, самые важные:
-J - включает расширение Joliet, позволяющее читать диски под Windows (точнее, читать длинные имена файлов).
-R или -r - включает расширение Rock Ridge, которое позволяет создавать на диске ФС, почти аналогичную обычным Юниксовым - с правами доступа, символическими связями и длинными именами. -r отличается тем, что выставляет более логичные права доступа (подробности в man).
Таким образом, без -J и -R на диске будут созданы только короткие (8.3) имена файлов (плюс не будет еще многих возможностей), с -J диск будет нормально читаться в Windows (да и в Линуксе, в принципе), а с -R появится поддержка в т.ч. символических связей и прав доступа (само собой, заметно это будет только в Линуксе). Как правило, стоит указывать обе опции, чтобы диск читался везде.
-input-charset - после этой опции надо указать локаль системы (koi8-r, cp1251 или utf8), чтобы на записанном диске нормально читались русские имена.
-f - если при просмотре каталога с записываемыми файлами программе встретится символическая ссылка, записана будет не она сама, а файл, на который она указывает. Это позволяет не копировать все 700 Мб в отдельную папку, а просто разложить в ней ссылки.
-V - после этой опции идет метка создаваемого диска.
-v или -vv - выводить более подробную (с -vv еще подробнее) информацию в процессе работы.
2. Проверка созданного образа
mount -t iso9660 cd_image.iso /mnt/cdrom -o loop
Здесь мы монтируем образ в каталог /mnt/cdrom, чтобы можно было убедиться в правильности создания образа перед его записью на болванку.
Размонтируем командой umount /mnt/cdrom и, если всё в порядке, пишем.
3. Запись iso-образа
Записывать будем программой cdrecord. Сначала надо определиться, как "называется" наш пишущий привод. Для этого выполним команду:
cdrecord -scanbus
В том, что выдала эта команда, ищем свой пишущий привод и запоминаем 3 цифры возле него. При запуске cdrecord необходимо будет указывать обязательный параметр dev=x,x,x (цифры подставляйте свои).
Примечание для пользователей ядер 2.6: список устройств смотрите командой
cdrecord dev=ATAPI -scanbus
а при записи указывайте dev=ATAPI:x,x,x. Это связано с тем, что в 2.6 запись дисков производится не через эмуляцию SCSI (модуль ide-scsi), а через обычный интерфейс ATAPI (модуль ide-cd).
Теперь пишем наш iso-образ командой
cdrecord dev=x,x,x [доп. опции] <�файл образа.iso>
Здесь тоже очень много опций. Вот некоторые:
-dummy - режим симуляции. Ничего не записывается, но все остальные действия производятся. Полезна для предварительной проверки (например, когда неизвестно, сможет ли диск записаться на данной скорости, или не хватит производительности системы).
speed= - указываем скорость записи. Если не указано - программа попытается определить скорость сама.
fs= - размер кэша записи в оперативной памяти. Указывается в байтах, Кб (в виде числа с буквой k) или Мб (с буквой m).
gracetime= - пауза в секундах между запуском программы и началом записи. Меньше 2 сек. не выставляется.
driveropts= - доп. параметры драйвера через запятую. Полный список, как обычно, в man cdrecord, но самым важным является driveropts=burnfree, включающий защиту от переполнения буфера.
-overburn - попытаться записать на диск больше данных, чем его официальный объем. Результат зависит от привода, болванки и объема данных и может не читаться вообще либо читаться только на этом приводе.
-v или -vv - выводить более подробную (с -vv еще подробнее) информацию в процессе работы.
Следующие опции указываются без указания файла образа:
-atip - выводит информацию о болванке, включая ее номинальную скорость, тип красителя, фирму-производителя и др.
-msinfo - выводит информацию о сессиях на многосессионном диске. Полученные числа можно использовать в ключе -C программы mkisofs для создания образа следующей сессии.
blank= - очищает CD-RW. Вариантов очистки (пишутся после знака =) несколько, в т.ч. fast (только оглавление), session, track (последнюю сессиию/дорожку), all (полное форматирование).
4. Запись "на лету"
Если система достаточно быстра, можно записывать диски "на лету". При этом образ предварительно не создается на винчестере, а пишется сразу на CD. для этого надо вызвать mkisofs и cdrecord через конвейер:
mkisofs [опции] <�путь к файлам для записи> | cdrecord dev=x,x,x [опции]
При этом не указывается выходной файл для mkisofs и входной для cdrecord. При записи "на лету" важно указать достаточный размер кэша через опцию fs=, а также убедиться, что система не будет сильно загружена во время записи.