Итак, возмем самый обычный CD-R/RW привод. Лично я использую Teac CD-W58E, но все сказанное ниже должно работать и с подавляющим большинством CD-R/RW приводов (оговорюсь сразу, что и с CD-R, т.е. просто пишущими CD, без возможности перезаписи, кроме тех случаев, где явным образом идет речь именно о RW).
Для работы с CD-RW нам понадобятся минимум три вещи:
О дополнительных утилитах для записи, а так же о графических интерфейсах мы поговорим чуть позже и в следующих статьях.
Подробнее о настройке ядра в целом можно почитать в одноименной статье и несколько устаревшем Kernel-HOWTO. Свежую информацию о настройке и установке ядра всегда можно почитать в файле /usr/src/linux/README.
А конкретнее о тех пунктах ядра, которые необходыми для записи, а так же замечания для ядер 2.0.x и ранних 2.2.x читайте соответствующий раздел CD-Writing-HOWTO.
Для ядер 2.4.x обычно ничего писать в /etc/modules.conf не нужно (ядро "само" разберется, что ему нужно), а вот для серии 2.2.x нужно добавить следующие строки в вышеуказанный файл:
alias scd0 sr_mod alias scsi_hostadapter ide-scsi options ide-cd ignore=hdc
В любом случае случае ядру нужно сообщить,
какое IDE устройство у нас теперь SCSI. Для LILO нужно добавить следующую
строчку в /etc/lilo.conf:
append=" hdc=ide-scsi "
где hdc √ это /dev/hdc √ т.е. ваше устройство CD-R. Не забудьте перезапустить lilo после этой операции.
Если у вас привод SCSI, а не ATAPI, то ничего писать ни в /etc/modules.conf, ни в /etc/lilo.conf не нужно.
Программы
Сейчас практически в любом
дистрибутиве есть программы cdrecord и mkisofs. Если же их у вас нет или вы
хотите получить более новые версии, то можно обратиться
к официальной странице cdrecord, а за новой версией mkisofs заглянуть на
страницу производителя вашего дистрибутива.
После установки вышеозначенных утилит и перезагрузки системы с новым ядром вы должны получить примерно такой вывод команды cdrecord -scanbus:
Cdrecord release 1.10 Copyright (C) 1995-2001 JЖrg Schilling Linux sg driver version: 3.1.22 Using libscg version 'schily-0.5' scsibus0: 0,0,0 0) 'TEAC ' 'CD-W58E ' '1.0A' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) *
В данном случае цифры 0,0,0 √ это идентификатор вашего привода, ниже я буду заменять их на x,x,x. После всех этих действий, обращение к /dev/hdc уже невозможно, а новое обозначение вашего устройства чаще всего √ /dev/scd0. Так что не пугайтесь если обращение к привычному /dev/cdrom, которое указывало на /dev/hdc даст сбой.
Создание образов:
mkisofs -R -J -jcharset koi8-r -o ourimage.iso /path/our_dir/
Здесь мы создаем образ используя Rock Ridge
(опция -R). Это позволяет обойти некоторые ограничения файловой системы
iso9660, √ такие как ограничение на размер собственно файловой системы
(650 mb), длин имен файлов ("формат 8.3") и ряд других.
Для того, что бы
и под windows можно было комфортно читать диски, используется опция -J,
создающая этот образ и в т.н. Joliet-формате тоже. Если у вас файлы имеют
русские имена в кодировке koi8-r, то это учитывается опцией -jcharset
koi8-r и в дальнейшем можно будет читать записанные диски с корректным
отображением русских названий файлов.
Ну а ourimage.iso - это,
собственно, и есть образ диска, который мы создаем, /path/our_dir/ √
источник файлов для этого образа.
Я предпочитаю проверить образ, перед записью: (ведь неприятно потерять болванку, особенно, какую-нибудь дорогую или редкую √ на 80 или 90 минут, например)
mount -o loop ourimage.iso /mnt/iso
Собственно процесс:
Очистка диска для перезаписываемых (RW):
cdrecord -v blank=fast dev=x,x,x
опция blank=fast указывает на то, что
произойдет быстрая очистака диска (т.е. очистка оглавления) и после этого
можно записывать вновь.
Если вы хотите очистить диск полностью, то вам
поможет опция blank=all.
Команда для записи проста:
cdrecord dev=x,x,x speed=8 -v ourimage.iso
Здесь все предельно ясно √ speed=8 это скорость записи болванки. Я обычно использую максимальную допускаемую моим приводом и болванкой.
можно добавить опцию -eject:
cdrecord -eject dev=x,x,x speed=8 -v ourimage.iso
в этом случае лоток привода выдвинется после записи.
Для мультисессионного диска, необходимо добавить опцию -multi. Тогда для следующей сессии нужно будет узнать, где закончилась предыдущая запись:
cdrecord -msinfo dev=x,x,x
Выводом будет число вида 12345,09876. С него мы и начнем следующую запись:
mkisofs -R -o cd_image2 -C 12345,09876 -M /dev/scd0 /path/our_dir/