quinta-feira, 4 de fevereiro de 2010

growisofs: gravando DVDs no linux usando o terminal

O post de hoje é simples. Quem, entre aqueles que estão salvos da danação eterna e usam linux, nunca precisaram gravar um CD ou um DVD e não dispunham de uma interface visual para poder usar o K3B ou qualquer outra GUI de gravação? Eu acreditava que nunca precisaria disso. No entanto, recentemente precisei e esse conhecimento muito me fez falta. Por esse motivo, estou aqui para falar um pouco sobre a gravação de CDs e DVDs no terminal.

Não é uma tarefa difícil, na verdade. Antigamente, você criava sua iso usando o mkisofs e usava o programa cdrecord para fazer a gravação dos dados no disco. Hoje (não tão hoje na verdade hehehe) existe um utilitário que une essas duas tarefas, juntar os arquivos em uma iso e gravar a iso no CD. Esse utilitário é o growisofs.




O growisofs faz parte de um grupo de ferramentas intitulado dvd+rw-tools. Você pode instalá-lo (caso já não tenha) usando o comando:

sudo aptitude install dvd+rw-tools

Aviso: Não instale o pacote dvdrtools. Ele conflita com os pacotes cdrtools e dvd+rw-tools, que são superiores ao primeiro.

Gravando DVDs no terminal

Agora, vamos botar a mão na massa. Primeiramente, os arquivos que vc quiser gravar já deverão estar em uma determinada pasta, já que o growisofs não sai catando arquivos à esmo no sistem. Suponhamos que seus arquivos estejam em ~/gravar. O comando de gravação seria assim:

growisofs -Z /dev/dvd -J ~/gravar

É possível adicionar mais arquivos ao DVD, no caso de vc estar usando Multisessão (comportamento padrão):

growisofs -M /dev/dvd -J ~/gravar_mais_arquivos

Se você quiser gravar uma imagem ISO, a sintaxe muda um pouco:

growisofs -Z /dev/dvd=imagem.iso

Vamos agora mostrar algumas opções extras do growisofs que são de bastante utilidade:

-V Label - Dá um nome ao disco que vc está gravando.

-dry-run - Simula gravação de dados no disco.

-graft-points - Permite alterar o path de uma pasta que será gravada no disco. Útil quando você quer adicionar arquivos à uma multisessão. A sintaxe é:
-graft-points /arquivos/=/path/arquivos/

-speed - Alterar a velocidade de gravação. Ex.: -speed=4

-dvd-compat - Proporciona o máximo de compatibilidade com o formato DVD-ROM/DVD-Video. Entre outras coisas, ele cria um DVD onde não é possível adicionar mais arquivos (disco fechado). Isso acontece pois ele força a gravação do "lead out" do DVD.

-dvd-video - Da mesma forma que o anterior, ele faz com que o disco siga os padrões do formato de mídia DVD-Video. O uso deste parâmetro implica automaticamente no iso da opção -dvd-compat.

-overburn - Normalmente, uma mídia de DVD pode acomodar até aproximadamente 4.700.000.000 bytes (ou 4.7GB), no entanto, esta é a margem de segurança do DVD para uma boa gravação. No entanto, isso não impede que possamos gravar além dessa área. A opção -overburn faz com que o gravador tente gravar nessa área.

Copiando outro DVD

Bom, imaginei que você ia perguntar isso, então deixei o comando para o final. Para gravar “on the fly”, ou seja, directo de dvd para dvd, use da seguinte forma:

growisofs -Z /dev/hdd=/dev/hdb -use-the-force-luke=notray -use-the-force-luke=tty -use-the-force-luke=dao -speed=4 -overburn

Sendo /dev/hdd sua gravadora e /dev/hdb onde está o disco que você quer copiar

Você deve estar se perguntando o que é essa opção -use-the-force-luke. Essa opção serve pra muitas coisas. Entre elas, vou citar as mais importantes:

-use-the-force-luke=tty - Evita que a condição "FATAL: /dev/dvd already carries isofs!" apareça;

-use-the-force-luke=dummy - Outra forma de se testar a gravação de DVDs

-use-the-force-luke=notray - Não permite que a gaveta seja recarregada, em plataformas que a requiram. A gravação pode se corromper enquanto aguarda a gaveta ser recarregada.

-use-the-force-luke=moi - Oculta o indicador de progresso do mkisofs e o substitui pela barra de progresso interna do growisofs. Só pra completar, "moi" é o equivalente em francês de "mim".

-use-the-force-luke=dao[[:|=]tamanho ] Faz a gravação no modo "Disk at Once", permitindo especificar opcionalmente o tamanho da trilha. A opção de determinar o tamanho da trilha pode ser utilizada posteriormente. Este último pode ser necessário para se copiar mídias multi-formatadas ou bootáveis, criados com outro programa de gravação que não seja o mkisofs.

-use-the-force-luke=tracksize[:|=]tamanho - Forma alternativa de especificar o tamanho da trilha para gravação no modo "Disk at Once". Veja abaixo.

-use-the-force-luke=seek[:|=]proxima_sessão - Inicia a gravação a partir do ponto determinado por see. Muito útil para os formatos DVD+RW e DVD-RW e é apropriado para gravar fluxo não formatado de dados em tempo real. Tente usando também a opção -dry-run para você ver como funciona.

-use-the-force-luke=tell-the-firmware-this-really-is-an-8x-disc - Faz a gravadora perceber que ela própria pode gravar DVDs à 8x. Como queria que essa opção existisse e, se existisse, seria a opção padrão para usar no meu notebook.

Finalizando

Bom pessoal, é isso. Apesar de no começo o post ser bem simplório mas no final chegar a configurações obscuras, eu acho que consegui chegar onde queria: mostrar como gravar DVDs (vc ainda grava CDS?) sem depender das GUIs. Claro que elas facilitam dezenas de vezes o trabalho de gravação, mas nem sempre podemos contar com elas.

Espero que esse post tenha novamente lhe sido útil.

Abração, e até um próximo post.

Fontes

Usando growisofs para fazer backups agendados no cron
Montando um DVD de Vídeo na unha, via terminal
growisofs and the option use-the-force-luke