« Artigo sobre o Live CD GoblinX | Main | Sun lança nova versão do NetBeans »

dezembro 16, 2004

Queimando CDs de dados na prática

Joel Franco (joel at oryonsystems.com.br) enviou o artigo abaixo, que "mostra como acessar um CD-RW instalado no Linux, e gravar CDs de dados através da linha de comando, com utilitários básicos como o mkisofs e o cdrecord. É mostrada também a gravação de CDs multisession e como setar o arquivo de configuração do cdrecord para facilitar a vida do usuário. Finalmente, algumas dicas interessantes. O processo orienta a configuração de um sistema Debian, mas pode ser aplicado a qualquer distribuição."

QUEIMANDO CDs DE DADOS NA PRÁTICA

Autor: Joel Franco (joel at oryonsystems.com.br)

INTRODUÇÃO


BASE TEÓRICA

O processo envolve basicamente duas partes: a geração de uma imagem com o sistema de arquivos ISO-9660 (que é o formato padrão de gravação de imagem de CD) e a gravação no CD desta imagem.

A primeira é feita utilizando o utilitário "mkisofs" que pode gerar o sistema de arquivos ISO-9660/Joliet tanto em um arquivo ".iso" como jogando a mesma na saída padrão, onde se pode conectar o "cdrecord".

A segunda é feita utilizando o utilitário cdrecord que grava em CD os dados recebidos, utilizando multisession ou não.

Com multisession é possível gravar parcialmente um CD e noutro momento gravar outra parte (e assim sucessivamente), preenchendo o espaço do CD gradualmente. Desse jeito, se aproveita mais a mídia de CD quando não se vai preenchê-la completamente.

No kernel 2.4, usava-se emulação de SCSI para a gravação de CDs, visto que não era possível fazer isto com o módulo ide-cd. No kernel 2.6, se pode tanto gravar CDs usando a emulação SCSI tradicional, como usando o módulo ide-cd, agora com suporte para gravação de CDs. A partir do kernel estável 2.6.8, o cdrecord, mesmo como suid de root, não tem mais permissão completa de manipulação do processo de gravação e portanto o cdrecord deve ser usado somente pelo root (também via sudo ou similar), embora nem todas as operações exigam isto.

Para acesso a gravação de CDs, você deve ser root ou ter acesso rw ao grupo do device no /dev de acesso ao dispositivo de CDs, que pode ser o /dev/hdX (IDE) ou o /dev/scdX (SCSI), onde X = letra ou numero do device. No debian, esse grupo se chama "cdrom". Neste texto, são dados os exemplos com devices /dev/hdX, mas vc pode substituir pelo device SCSI se for o seu caso.

É usado neste texto muito o utilitário sudo para rodar processos como root, mas todo o processo pode ser feito diretamente como root, omitindo o termo "sudo" em todos os comandos. Mas não se acostume a fazer as coisas no Linux como root: esse é um costume que deveria ser evitado para manter a segurança do seu sistema, embora geralmente facilite um pouco as coisas.

DETECTANDO O DEVICE DO CDRW

1) Se estiver usando emulação SCSI, ou device for SCSI mesmo:

$ cdrecord -scanbus

Vc verá algo como o seu gravador de CD e um nro associado, por exemplo "0,0,0".

2) No caso de acesso direto via o device /dev/hdX, faça:

$ dmesg | grep hd

Vc vai achar o device do seu gravador de cd no meio desse conteúdo, geralmente hdb, hdc ou hdd.

GRAVANDO UM DIRETORIO NA ARVORE CORRENTE

Para gravar o diretorio "meu_cd":

$ mkisofs -J -r meu_cd/ | sudo cdrecord -v -eject dev=/dev/hdc -

mkisofs:
-J gera extensões Joliet
-r gera extensões Rock Ridge
meu_cd/ diretório na árvore corrente com o conteúdo a ser gravado.

sudo: roda o processo a seguir como root.

cdrecord:
-v verbose
-eject ejeta o disco no final do processo
dev device onde será gravado o CD.
- indica que a imagem que será gravada será lida do entrada padrão, ou seja, da saída do mkisofs.

ps: o uso do "dev" pode ser omitido se o arquivo de configuração informar o device default de gravação, como é mostrado nas dicas abaixo.

GRAVANDO UM DIRETORIO NA ARVORE CORRENTE, COM MULTISESSION

Para gravar o diretorio "meu_novo_cd" quando a mídia ainda está virgem:

$ mkisofs -J -r meucd/ | sudo cdrecord -v -eject dev=/dev/hdc -multi -

Para gravar as sessões adicionais, coloque a midia já gravada:

$ cdrecord -msinfo
0,234

Isso lerá o indice da ultima sessão gravada num CD (ainda não fechado). Esse número (no caso "0,234") será utilizado para gravar a próxima sessão:

$ mkisofs -J -r -C 0,234 -M /dev/hdc meu_novo_cd/ | sudo cdrecord -v -eject dev=/dev/hdc -multi -

Isso queima a próxima session no CD atual. Isto pode ser feito sucessivamente até terminar o CD com várias sessões.

Quando você gravar a ultima sessão do CD, você deve omitir o "-multi" dos argumentos do cdrecord na gravação da última imagem. Isto fechará o CD.

DICAS

1) Uma opção interessante do mkisofs é a "-graftpoints":

$ mkisofs -J -r -graftpoints nova_imagem/=novo_cd/ novo_arquivo.txt=arquivo.txt

Isso vai gerar uma imagem onde o diretorio corrente novo_cd será gravado como "nova_imagem" no cd e o arquivo corrente arquivo.txt será gravado como novo_arquivo.txt.

2) Para limpar uma mídia de CD-RW antes de regravá-la novamente.

$ sudo cdrecord -v -eject blank=fast dev=/dev/hdc

3) Configurando um arquivo de configuração global do cdrecord.

No Debian Sarge em /etc/default/cdrecord

o Altere o CDR_DEVICE para um nome qualquer, como "custom".
o Insira a linha como
custom= ATAPI:/dev/hdc -1 -1 ""

Autor: Joel Franco (joel at oryonsystems.com.br)

Indicar por e-mail esta notícia | Publicado em dezembro 16, 2004 10:22 AM

Comentários dos leitores

»Comentário de: =welrbraga= () em 16/12 10:48: Ficou legal o seu artigo! A uns do...

»Comentário de: Patola () em 16/12 11:12: Sugestão: Coloque também como grav...

»Comentário de: fl0cker () em 16/12 13:57: muito bom mesmo o artigo, uma opção que po...

»Comentário de: De novo? () em 16/12 14:45: Outro tutorial desse? Qual é a diferença d...

»Comentário de: Augusto Campos () em 16/12 14:49: E você acha ruim?...

»Comentário de: Morvan () em 16/12 15:17: O "DeNovo" me parece um pouco amofinado; d...

»Comentário de: iagheR () em 17/12 02:27: soh n ensina gravar a partir de 1 iso jah ...

»Comentário de: De novo? () em 17/12 08:42: Augusto, não é que eu ache ruim. Mas isso ...

»Comentário de: Marcelo Vivan Borro () em 17/12 09:19: De novo, sua opinião seria mais respeitada...

»Comentário de: pedr0 () em 17/12 09:25: iagheR, para gravar de um iso existe...

»Comentário de: Joel Franco () em 17/12 09:43: Patola: valeu. Tava quebrando a cabeça ten...

»Comentário de: Augusto Campos () em 17/12 10:16: "De Novo", se você quiser lançar uma versã...

»Comentário de: Itamar () em 17/12 10:34: Desculpe perguntar isso aqui e não no foru...

»Comentário de: Augusto Campos () em 17/12 11:06: Itamar, se o CD está com sessão aberta, es...

»Comentário de: Itamar () em 17/12 12:34: Obrigado pela atenção e mais uma vez descu...

»Comentário de: De novo? () em 17/12 15:13: Marcelo Vivan Borro, aqui mesmo tem vários...

»Comentário de: De novo? () em 17/12 19:06: * "texto", não "testo". Me desculpem...

»Comentário de: Eu () em 17/12 19:30: "Me desculpem o erro." "Me desculp...

Envie seu comentário

Após conhecer os Termos de Uso, basta ir ao formulário de comentários desta notícia e enviar a sua opinião.