sábado, 6 de junho de 2009

Gravando um DVD de dados em terminal de texto no Linux

Os aplicativos em modo texto para gravação de CD e DVD no Linux são uma forma muito eficiente de ter seus dados copiados para estes tipos de mídia. São ferramentas que proporcionam um controle total no processo e permitem a escolha de qualquer parâmetro de gravação.

Antes de qualquer gravação é necessária a organização dos arquivos que serão copiados. Uma maneira segura é juntá-los dentro de um diretório, assim tudo o que estiver lá dentro não será esquecido. Uma solução ainda mais eficiente é a geração de uma imagem de DVD, na qual pode-se testar se tudo está como deseja antes de queimar uma mídia.

Para a geração de uma imagem existe uma ferramenta chamada "genisoimage", do pacote de mesmo nome, capaz de criar sistemas de arquivos híbridos com ISO9660/Joliet/HFS e opcionalmente com atributo Rock Ridge. Esta ferramenta possui uma vasta variedade de parâmetros, bem documentada em sua página manual, e permite obter qualquer sistema que desejar. Segue um exemplo de uma linha de comando com os parâmetros comentados:

genisoimage -r -J -joliet-long -iso-level 4 -l -V nome -o imagem.iso diretório/

-r: Adiciona a extensão Rock Ridge para o sistema de arquivos e setando os arquivos e diretórios com permissões e modos em valores mais proveitosos, como dono e grupo setados em zero, permissão de escrita removida etc. Reconhecido no Linux apenas.

-J: Adiciona a extensão Joliet para o sistema de arquivos, permitindo nomes com até 64 caracteres.

-joliet-long: Permite nomes de arquivos Joliet com até 103 caracteres.

-iso-level: Especifica o nível do ISO9660, de 1 a 4, que vai do modo mais compatível, com nomes de no máximo 8.3 caracteres, ao mais relaxado, o nível 4, usando o padrão ISO-9660:1999, onde os nomes dos arquivos podem ter até 207 caracteres e não há mais o limite de 8 níveis para os subdiretórios.

-l: Permite 31 caracteres para o nome dos arquivos, relaxando as restrições do padrão ISO9660.

-V: Especifica um nome para o volume, de até 32 caracteres.

-o: Especifica o arquivo de saída para a imagem gerada.

Neste exemplo será gerado o arquivo "imagem.iso" contendo tudo que estiver dentro do "diretório/", excluindo o próprio, ou seja, na raiz do sistema de arquivo gerado ficarão os arquivos e subdiretórios existentes dentro do diretório especificado.

Uma outra forma de gerar uma imagem é em um processo de cópia de um DVD, onde utiliza-se a ferramenta "dd", do pacote "coreutils", para copiar o conteúdo da mídia e gerar a imagem. Segue um exemplo:

dd if=/dev/dvd of=imagem.iso

Este comando simplesmente faz uma cópia idêntica do sistema de arquivo do DVD para a imagem especificada.

Antes de gravar a imagem em uma mídia vazia convém testar se os arquivos foram copiados corretamente para a imagem, utilizando o comando "mount" como no exemplo abaixo:

mount -o loop -t iso9660 imagem.iso /mnt/iso/

Todo o sistema de arquivo contido na imagem será aberto em modo somente leitura no diretório "/mnt/iso/". Se os arquivos não estiverem corrompidos, tudo estará certo. O comando "umount /mnt/iso/" fechará esta montagem.

Arquivo imagem correto, tudo pronto para gravar na mídia. Um programa muito bom para isso é o "growisofs" do pacote "dvd+rw-tools". Este programa suporta todos os tipos de mídias DVD inclusive mídias Blu-ray.

Para que este comando funcione é necessário saber o nome do dispositivo do gravador, usando o comando abaixo:

wodim --devices

Como retorno aparece uma informação semelhante a que está abaixo:

wodim: Overview of accessible drives (2 found) :
----------------------------------------------------------------
0 dev='/dev/scd0' rwrw-- : 'HL-DT-ST' 'DVD-RAM GSA-H50N'
1 dev='/dev/scd1' rwrw-- : 'HL-DT-ST' 'DVD-ROM GDR8163B'
----------------------------------------------------------------

Neste exemplo percebe-se que o gravador é o dispositivo "/dev/scd0". Então um exemplo de linha de comando para o growisofs fica assim:

growisofs -dvd-compat -speed=4 -Z /dev/scd0=imagem.iso

-dvd-compat: Proporciona o máximo de compatibilidade com o resultado da mídia DVD, necessário para filmes e em DVD de dados faz com que a sessão fique fechada.

-speed: Determina a velocidade de gravação, em x.

-Z: Especifica o dispositivo do gravador, que por sua vez recebe o nome do arquivo da imagem.

Como podem perceber, são comandos simples que fazem muito. Consultem as páginas manuais destas ferramentas e vejam o quanto elas são capazes de fazer.

2 comentários:

  1. Alexandre Penchel (alexandrepenchel@yahoo.com.br)25 de fevereiro de 2010 16:51

    Olá...
    Quero criar um dvd que execute em linux, windows e Mac.
    Como faço para gerar um iso com genisoimage que execute no Mac??? Deixar ele híbrido???
    Agradeço se puder me ajudar.
    Abraços.

    ResponderExcluir
  2. Olá, experimente a opção -hfs com o genisoimage. Esta opção cria uma imagem híbrida ISO9660/HFS. Consulte a página manual do genisoimage para maiores detalhes e faça testes incluindo esta e outras opções demonstradas na página manual. Abraços.

    ResponderExcluir