Сначала оговорюсь. Предполагается что система домашняя, т.е. кроме вас и младшего братишки в ней копаться локально никто не собирается. Исходя из этого все рекомендации, т.е. чтобы было удобно. Сначала описывается работа cdrecord с ядром 2.4 т.е. при эмуляции CDRW как SCSI.
Работать под рутом никогда не рекомендуется, поэтому разрешим записывать диски обычным пользователям. Проблема в том, что для записи необходимы права RW на устройства /dev/sg*. Можно колдовать с группами, а можно просто так:
# cd /dev
# chmod -v 666 sg*
права доступа `sg0' изменены на 0666 (rw-rw-rw-)
права доступа `sg1' изменены на 0666 (rw-rw-rw-)
...
права доступа `sgp' изменены на 0666 (rw-rw-rw-)
права доступа `sgq' изменены на 0666 (rw-rw-rw-)
# exit
$
Теперь можем убедиться что все работает и нужные модули присутствуют в ядре.
$ cdrecord -scanbus Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' scsibus0: 0,0,0 0) 'TOSHIBA ' 'DVD-ROM SD-R2312' '1708' 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) *
Что? Не так - Ищем ошибку. Смотрим на наш CDROM. У меня это /dev/hdb. Как определить букву вашего CDROMa? - очень просто:
a - если он подключен как primary master
b - primary slave
c - secondary master
d - secondary slave
Логично как и все в Линуксе. Проверяем:
$ more *
::::::::::::::
capacity
::::::::::::::
2147483647
::::::::::::::
driver
:::::::::::::: ide-scsi version 0.93
identify: Permission denied
::::::::::::::
media
::::::::::::::
cdrom
::::::::::::::
model
::::::::::::::
TOSHIBA DVD-ROM SD-R2312
settings: Permission denied
Так, видим, что модуль ide-scsi загружен, т.е. ядро нормальное (оно и понятно - стандартное bareacpi.i) и мы не забыли прописать в lilo.conf строчку append="hdb=ide-scsi". Значит ошибка в правах. Пробуем из под рута - исправляем если что. Едем дальше.
Итак, мне надо записать свежескаченный установочный образ Gentoo. Чтобы не портить болванки пишем на CD-RW. Для этого сначала очищаем его:
$ cdrecord blank=fast dev=0,0,0 Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling cdrecord: Operation not permitted. WARNING: Cannot do mlockall(2). cdrecord: WARNING: This causes a high risk for buffer underruns. cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler cdrecord: Permission denied. WARNING: Cannot set priority using setpriority(). cdrecord: WARNING: This causes a high risk for buffer underruns. scsidev: '0,0,0' scsibus: 0 target: 0 lun: 0 Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' Device type : Removable CD-ROM Version : 0 Response Format: 2 Capabilities : Vendor_info : 'TOSHIBA ' Identifikation : 'DVD-ROM SD-R2312' Revision : '1708' Device seems to be: Generic mmc2 DVD-ROM. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : MMC-3 SWABAUDIO BURNFREE Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R96R Starting to write CD/DVD at speed 10 in real BLANK mode for single session. Last chance to quit, starting real write 0 seconds. Operation starts.
Ругается он на отсутствие прав - опять же. Но это все ерунда - вы же не будите параллельно фильм кодировать, я надеюсь. Если раздражает - делайте все под рутом.
Теперь записываем. В самом примитивном случае это выглядит так:
$ cd ~/download/ $ cdrecord dev=0,0,0 install-x86-minimal-2004.2.iso Cdrecord 2.00.3 (i686-pc-linux-gnu) Copyright (C) 1995-2002 JЖrg Schilling cdrecord: Operation not permitted. WARNING: Cannot do mlockall(2). cdrecord: WARNING: This causes a high risk for buffer underruns. cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler cdrecord: Permission denied. WARNING: Cannot set priority using setpriority(). cdrecord: WARNING: This causes a high risk for buffer underruns. scsidev: '0,0,0' scsibus: 0 target: 0 lun: 0 Linux sg driver version: 3.1.25 Using libscg version 'schily-0.7' Device type : Removable CD-ROM Version : 0 Response Format: 2 Capabilities : Vendor_info : 'TOSHIBA ' Identifikation : 'DVD-ROM SD-R2312' Revision : '1708' Device seems to be: Generic mmc2 DVD-ROM. Using generic SCSI-3/mmc CD-R driver (mmc_cdr). Driver flags : MMC-3 SWABAUDIO BURNFREE Supported modes: TAO PACKET SAO SAO/R96P SAO/R96R RAW/R96R cdrecord: Operation not permitted. WARNING: Cannot set RR-scheduler cdrecord: Permission denied. WARNING: Cannot set priority using setpriority(). cdrecord: WARNING: This causes a high risk for buffer underruns. Starting to write CD/DVD at speed 10 in real TAO mode for single session. Last chance to quit, starting real write 0 seconds. Operation starts. Turning BURN-Free off Track 01: Total bytes read/written: 82278400/82278400 (40175 sectors).
Вот и все! Несмотря на многочисленные предупреждения диск готов. Проверяем (вот только не помню, нужно диск перезагружать или можно обойтись без этого).
$ mount /mnt/cdrom/ $ cd /mnt/cdrom/ $ ls docs isolinux livecd.squashfs x86-packagelist-2004.2.txt x86-release-notes.txt
Что тут можно улучшить? Полезно посмотреть $ cdrecord --help или $ man cdrecord
Для данного случая, и не только, интересны ключи speed=# и -eject
Продолжение следует...