domingo, 2 de setembro de 2007

Gravando cd-r no Linux usando a linha de comando

Este pequeno texto explica de forma rápida como gravar um cd-r no linux usando as ferramentas mkisofs e cdrecord.
Instale a versão mais recente desses programas disponiveis para a sua distribuição.

Identificando o gravador:
Os comandos apresentados aqui devem ser efetuados como root. (1)
Primeiro, descubra onde o gravador esta no barramento ide, para isso use o seguinte comando.

# cdrecord dev=ATAPI -scanbus
ou
# cdrecord dev=ATA -scanbus

será mostrado uma saida como essa:
Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) Copyright (C) 1995-2004 Jörg Schilling
cdrecord: Warning: Running on Linux-2.6.15
cdrecord: There are unsettled issues with Linux-2.5 and newer.
cdrecord: If you have unexpected problems, please try Linux-2.4 or Solaris.
scsidev: 'ATA'
devname: 'ATA'
scsibus: -2 target: -2 lun: -2
Warning: Using badly designed ATAPI via /dev/hd* interface.
Linux sg driver version: 3.5.27
Using libscg version 'schily-0.8'.
scsibus1:
1,0,0 100) 'HL-DT-ST' 'DVDRAM GSA-H42N ' 'RL00' Removable CD-ROM
1,1,0 101) 'HL-DT-ST' 'DVD-ROM GDR8161B' '0100' Removable CD-ROM

Caso use driver ATA o gravador esta no endereço 0,0,0.

Ou olhe a saida do comando dmesg, assim:
# dmesg | grep ATAPI
hdc: HL-DT-ST DVDRAM GSA-H42N, ATAPI CD/DVD-ROM drive
hdd: HL-DT-STDVD-ROM GDR8161B, ATAPI CD/DVD-ROM drive
hdc: ATAPI 48X DVD-ROM DVD-R-RAM CD-R/RW drive, 2048kB Cache, UDMA(33)
hdd: ATAPI 48X DVD-ROM drive, 256kB Cache, UDMA(33)

Usando o driver ATAPI, use o dev correspondente ao gravador, no caso o hdc.

Se ocorrerem erros, possivelmente o cdrecord não foi compilado com
suporte ao ATAPI.

- Criando um arquivo de imagem com os arquivos que serão gravados no cd:

Primeiro copie os arquivos para um diretorio separado, caso esteja fezendo algum tipo de seleção.
Asseguir rode o seguinte comando para criar a imagem iso:

# mkisofs -J -r -v -V "nome do cd" -o nome_da_imagem.iso diretorio/onde/estao/os_arquivos

Queimando o cd-r:
Coloque o cd-r no gravador e use o seguinte comando:

# cdrecord dev=ATA:0,0,0 -v -speed 24 -eject nome_da_imagem.iso
ou
# cdrecord dev=ATAPI:/dev/hdc -v -speed 24 -eject nome_da_imagem.iso
onde o hdc eo device onde se encontra o gravador.

O -speed 24 indica a velocidade de gravação, escolha o valor adequando para o cd-r em uso.
Se desejar fazer um teste antes de gravar de fato, use a opção -dummy.

Para entender o siginificado das opções do mkisofs e do cdrecord consulte a página de manual dos mesmos (man mkisofs e man cdrecord).

Certifique-se de que o canal IDE onde o gravador esta conectado esteja com o acesso por DMA ligado, use o comando hdparm para verificar:
# hdparm /dev/hdc
/dev/hdc:
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
HDIO_GETGEO failed: Invalid argument

Repare na linha using_dma = 1 (on) , que no caso indica que o DMA esta ligado, se estiver iqual a 0 (off) esta desligado, para ligar use o seguinte comando:
# hdparm -d 1 /dev/hdc
Com o DMA desligado a gravação será extremamente lenta.

Para permitir que um usuário normal consiga gravar, e necessário mudar algumas permisões e outros ajustes.
mude o grupo do /dev/hdc para cdrom
# chown root:cdrom /dev/hdc
mude as permissões para que o grupo possa gravar:
# chmod g+w /dev/hdc

Para deixar o uso do cdrecord mais facil, com varios parametros pré configurados, modifique o arquivo /etc/default/cdrecord, existem diversas diretivas como os:
# Define qual o gravador padrão
CDR_DEVICE=GSA-H42N
# tamanho do buffer (FIFO) a ser usando
CDR_FIFOSIZE=32m
# E temos a lista dos gravadores, usado pelo CDR_DEVICE
# drive name device speed fifosize driveropts
GSA-H42N= ATAPI:/dev/hdc -1 32m burnfree

Feito isso, teste se o acesso ao gravador esta liberado para um usuário, coloque um cd-r no drive e use o comando:
# cdrecord -atip
Dentre outros, a sequinte informação será apresentada:
ATIP info from disk:
Indicated writing power: 5
Is not unrestricted
Is not erasable
Disk sub type: Medium Type B, low Beta category (B-) (4)
ATIP start of lead in: -11607 (97:27/18)
ATIP start of lead out: 359849 (79:59/74)
Disk type: Short strategy type (Phthalocyanine or similar)
Manuf. index: 18
Manufacturer: Plasmon Data systems Ltd.
São as informações do fabricante do cd-r.


(1) Usar a conta do root para fazer essas tarefas não e recomendado, ajuste as permissões do usuario para que o mesmo passa realizar as gravações.
Nesta revisão do texto, o drive e um gravador de DVD. Em um futuro texto explico como gravar um DVD.

Nenhum comentário: