Subscrever RSS Subscrever RSS
Edição de 29-02-2024
  • Edição Actual
  • Jornal Online

    Arquivo: Edição de 15-04-2007

    SECÇÃO: Tecnologias


    foto

    Como copiar a imagem de um disco rígido para outro usando Linux? (III)

    Imagine que acabou de instalar um Linux, configurou serviços, criou contas de utilizadores, instalou e configurou uma ou outra aplicação adicional por download da internet. Agora, imagine que do seu lado tem outra máquina igualzinha e vai ter que fazer a mesma coisa nela, tudo de novo.

    Provavelmente, no mínimo, vai soltar um suspiro de resignação antes de começar. Agora imagine que não tem só uma, mas cinquenta máquinas à espera do mesmo tratamento... Aí, em vez de suspirar, você vai mas é atrás de alguma aplicação capaz de gerar e copiar imagens de discos rígidos (hd’s), como o Ghost(R) por exemplo. E talvez nem saiba que já possui uma ferramenta que muito provavelmente poderá resolver o seu problema logo na linha de comando do Linux. Essa solução, ou melhor, comando, tem o simples e pequeno nome de dd (igual ao comando para apagar linhas no vi).

    (conclusão dos números anteriores)

    DÁ PARA GUARDAR

    A IMAGEM

    NUM ARQUIVO?

    Lembra-se do exemplo da cópia da disquete? É igual em tudo, mas temos que ter espaço para guardar o arquivo criado, que vai ter o mesmo tamanho que a partição/dispositivo que copiámos. Isso, mesmo que parte do sistema de arquivos a ser copiado esteja vazio. Ou seja, se estamos a copiar uma partição de 7G, mas ali dentro a soma dos arquivos guardados tem só 100K, ainda assim o arquivo que vamos gerar vai ter 7G. O dd não entende sistemas de arquivos, tudo o que ele entende são fluxos de bytes, assim ele lê a partição inteira, até onde não houver nada gravado, e guarda. Posto isto, é só executar:

    # dd if=/dev/hdb4 of=particao4.img.

    E será criado o arquivo particao4.img, que irá conter uma imagem exacta do sistema de arquivos naquela partição. Agora, o dispositivo conectado em /dev/hdb pode até ser desconectado, e se, mais tarde, quisermos restaurar aquela partição noutro hd, é só fazer:

    # dd if=particao4.img of=/dev/hdb4.

    O mesmo vale para cópias de hds inteiros. O problema de disponibilidade de espaço em disco pode ser diminuído com o auxilio do gzip:

    # dd if=/dev/hdb | gzip > imagem_ do_hd.img.gz.

    Esse comando gera a imagem do hd, mas que agora estará compactada pelo gzip. Obviamente para utilizá-la, temos que descompactá-la:

    # gzip -d -c imagem_do_hd.img.gz | dd of=/dev/hdb.

    A flag -c faz o gzip mandar os dados descompactados para a saída padrão ao invés de para um arquivo sem a extensão .gz, como faria normalmente. Não esquecer que o dd, como foi dito no início do artigo, copia normalmente a partir da entrada padrão. Por isso aqui não se especificou o parâmetro if= . O preço que se paga neste último exemplo, claro, é um enorme acréscimo de tempo para a realização da compactação e descompactação. Uma outra aplicação interessante a que isto nos leva, embora não esteja relacionada com a cópia de hds, é poder gerar uma imagem iso a partir de um CD já gravado, para depois ser usada na gravação de um novo CD. Para fazer isso executa-se como no exemplo:

    # dd if=/dev/cdrom of=slackware_cd1.iso.

    Depois, é só passar o arquivo gerado como argumento do cdrecord ou do seu programa de gravação favorito.

    E uma última dica interessante: Sabia que é possível montar esses arquivos que são cópias de sistemas de arquivos, como se fossem um dispositivo? Digamos que, no caso anterior, queremos dar uma olhadela nos arquivos que o CD continha, mas o CD criou pernas e sumiu e nós só ficámos com o arquivo de imagem :).

    Não é preciso gravar o CD para depois montá--lo, pode-se perfeitamente montar o próprio arquivo de imagem como em:

    # mount -t iso9660 slackware_cd1.iso /mnt/cdimg -o loop.

    O segredo está justamente em passar o parâmetro -o loop no final do comando mount. Se não funcionar, verifique se o seu kernel foi compilado com suporte a loopback device. Uma forma de comprovar isso é testar se é possível carregar o módulo loop (embora esse tipo de suporte possa ter sido compilado e embutido no kernel, mas se assim fosse, não teríamos problemas nem teríamos que fazer esse teste). Por fim, para encerrar esse pequeno desvio (e praticamente o artigo), note-se que não estamos limitados a fazer isso só com imagens geradas a partir de CDs. Podemos fazê-lo com qualquer imagem desde que se especifique o sistema de arquivos correcto com -t. Obviamente, essas imagens são montadas sempre como somente de leitura. Não dá para modificar o conteúdo de um arquivo de imagem usando essa técnica.

    Para encerrar, note-se que as técnicas apresentadas aqui resolvem situações simples, mas havendo a necessidade de algo mais “profissional”, realmente é melhor procurar por uma aplicação dedicada a atender esse tipo de necessidade.

    MAS DE ONDE

    TIROU ISSO?

    Acontece que instalo o Linux desde antes dos CDs bootáveis, e nessa época o que os CDs traziam era uma imagem das disquetes de boot, e uma aplicação para DOS chamada rawwrite (ou era rawrite?) que exactamente escrevia a imagem numa disquete. Perguntando-me, na época, como poderia proceder para gravar essas imagens numa disquete se o meu SO já fosse Linux, pesquisei a documentação de texto dentro do CD e lá estava a orientação de como usar o dd para isso. A partir daí, foi só experimentar e expandir o conceito principal ;).

    Por: Germano Barreiro

    * E-mail: [email protected].

    NOTA: Adaptação de “A Voz de Ermesinde”.

     

    Outras Notícias

    · A memória do rato

     

    este espaço pode ser seu Este espaço pode ser seu Este espaço pode ser seu
    © 2005 A Voz de Ermesinde - Produzido por ardina.com, um produto da Dom Digital.
    Comentários sobre o site: [email protected].