Linux Slackware Энциклопедия от А до Я
Сайт посвящен свободно распространяемому ПО и Linux Slackware в частности.
Разделы:
Раздел/Тема
Главная -> Программы -> cdrecord - Нарезаем в консоли.

Сначала оговорюсь. Предполагается что система домашняя, т.е. кроме вас и младшего братишки в ней копаться локально никто не собирается. Исходя из этого все рекомендации, т.е. чтобы было удобно. Сначала описывается работа cdrecord с ядром 2.4 т.е. при эмуляции CDRW как SCSI.
Работать под рутом никогда не рекомендуется, поэтому разрешим записывать диски обычным пользователям. Проблема в том, что для записи необходимы права RW на устройства /dev/sg*. Можно колдовать с группами, а можно просто так:

$ su
# 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
Логично как и все в Линуксе. Проверяем:

$ cd /proc/ide/hdb
$ 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

Продолжение следует...

Gena 23.10.2004