Clonagem e backup de partições usando o Partimage

Por: Julio Cesar Bessa Monqueiro
Ele é capaz de manipular partições formatadas nos mais diversos sistemas de arquivos, incluindo EXT3, ReiserFS, XFS e outros sistemas de arquivos usados no Linux, além de FAT e NTFS. Você pode inclusive usá-lo para fazer imagens de instalações do Windows, sem problema algum.

Ao fazer a imagem da partição, o partimage verifica seu conteúdo e salva apenas os dados, aproveitando para comprimir tudo usando o sistema de compressão escolhido por você. Isso permite gerar arquivos relativamente pequenos. Se você tiver uma instalação do Kurumin, que está ocupando 3 GB de uma partição com 20 GB, vai acabar com um arquivo de imagem de pouco mais de 1 GB :).

O Partimage também é capaz de quebrar a imagem em vários arquivos (você especifica o tamanho desejado), permitindo que os backups possam ser facilmente gravados em DVD ou múltiplos CDs.

O partimage é um programa relativamente comum, disponível nos repositórios da maioria das distribuições ou na página oficial: http://www.partimage.org. Ele já vem pré-instalado no Kurumin e várias outras distribuições live-cd, onde você só precisa chamá-lo usando o o comando “partimage“, como root.

Assim como ao particionar o HD usando o gparted, você não tem como criar ou restaurar imagens de partições que estão montadas. Por isso, é fortemente recomendável que você sempre execute partimage com o sistema rodando a partir do CD (o Kurumin é ideal para isso ;), já que desta forma todas as partições do HD ficam disponíveis sem restrições.

A primeira tela mostra as partições disponíveis no HD. Lembre-se de que no Linux, as partições primárias são numeradas de 1 a 4 e as partições lógicas de 5 em diante, mesmo que você possua apenas uma ou duas primárias. É fácil identificar as partições dentro do Partimage, pois ele exibe o tamanho e o sistema de arquivos de cada partição:

Aqui temos um HD picotado em várias partições partições. As duas em NTFS correspondem a uma instalação do Windows e uma partição de dados, a hda3 é uma instalação do Kurumin, a hda5 é uma instalação do Debian, enquanto o hda6 é mais uma partição dados, que vou usar para salvar as imagens. O HD tem também uma partição livre, não formatada, e uma partição swap, mas elas não fazem diferença neste caso.

Naturalmente, o backup da partição precisa ser gravado em algum lugar. Você pode usar o espaço livre em uma outra partição disponível no HD (pode ser até uma partição Windows) ou fazer o backup via rede. Por enquanto, vamos fazer as coisas localmente.

No menu com as partições, use as setas para escolher qual partição deseja salvar. Em seguida, use a tecla TAB para selecionar o campo “Image file to create/use” e digite o local onde deseja salvar a imagem.

Eu poderia guardar o backup de qualquer uma das partições em qualquer outra (com exceção da partição swap), desde que houvesse espaço livre disponível. Poderia fazer um backup do Debian Slackware na partição do Windows ou um backup do Windows na partição do Kurumin (desde que houvesse espaço livre suficiente, naturalmente). Mas, no meu caso, usarei a partição hda6, que possui bastante espaço livre.

Para gravar qualquer coisa em uma partição, você precisa primeiro montá-la dentro de alguma pasta. Para isso, usamos o comando “mount”, incluindo o dispositivo da partição e a pasta onde ela será montada (sempre como root), como em:

# mount -t /dev/hda6 /mnt/hda6

O comando mount “genérico” serve para todo tipo de partições, com exceção das partições NTFS do Windows. Como vimos, a única forma de montá-las em modo leitura e escrita é usar o NTFS-3g. Se quisesse salvar a imagem na partição hda2, formatada em NTFS, precisaria usar o comando abaixo para montá-la especificando os parâmetros do NTFS-3g:

# ntfs-3g -o umask=0,silent /dev/hda1 /mnt/hda1

Note que você deve montar apenas a partição destino, onde a imagem será salva. A partição de origem deve sempre permanecer desmontada, pois o partimage precisa de acesso de baixo nível aos dados dentro da partição.

Neste exemplo, estou salvando uma imagem da partição hda3, do Kurumin, dentro do arquivo “kurumin.iso”, na parta /mnt/hda6, que por sua vez, é o ponto de montagem da minha partição de dados. Para isso, uso a opção “Save partition into a new image file”:

Esta interface de texto pode parecer estranha para quem não está acostumado. Mas as funções são simples: a tecla Tab permite navegar entre os campos, as setas alternam entre as opções e a barra de espaço permite marcar e desmarcar opções. Depois de terminar, pressione F5 para ir para a próxima tela, ou F6 para sair.

Na tela seguinte você terá várias opções para a criação da imagem:

As opções selecionadas por default são justamente as que você vai usar na maior parte do tempo. Por isso, você pode perfeitamente pressionar a tecla F5 mais uma vez para continuar. Mas, como o nosso objetivo é aprender como todo o processo funciona, vamos a um detalhamento de cada opção:

  • Compression level:

None: Simplesmente não comprime nada. Se houver 2 GB de arquivos na partição, a imagem terá os mesmos 2 GB.
Gzip: O padrão sistema padrão de compressão. É relativamente rápido e consegue comprimir de 50 a 65%, em média.
Bzip2: Consegue comprimir de 5 a 10% mais que o Gzip, mas em compensação a compressão é bem mais lenta. A criação da imagem demora até 3 vezes mais.

  • Options:

Check before saving: Executa uma verificação na partição, mostrando o tamanho, espaço ocupado e se existe algum tipo de erro no sistema de arquivos.
Enter description: Descrição que aparece na hora de recuperar a imagem, opcional.
Overwrite without prompt: Se houver um arquivo com o mesmo nome, ele é subscrito automaticamente.

  • If finished successfully (Depois de terminar de gerar ou recuperar a imagem):

Wait : Não faz nada, exibe uma janela de relatório e fica esperando você dar ok.
Halt: Desliga a máquina (bom para fazer os backups de madrugada).
Reboot: Reinicia (bom para discos de recuperação automáticos).
Quit: Só fecha o programa.

  • Image split mode (este é um dos recursos mais interessantes do partimage, ele pode quebrar a imagem em vários arquivos pequenos, facilitando o transporte):

Automatic split: Este é o modo default, ele grava a imagem até que o espaço livre na partição destino se esgote. Quando isso acontece, ele para e pede um novo local para gravar o restante da imagem.
Into files whose size is: Quebra em vários arquivos do tamanho especificado, em megabytes. Se você quer gravar a imagem em vários CDs de 700 MB, por exemplo, os arquivos devem ter 699 MB.
Wait after each volume change: Ao marcar essa opção em um backup dividido em várias imagens, ele exibe um aviso e espera a confirmação cada vez que for gerar um novo arquivo. É útil em casos onde é preciso trocar a mídia.

Ao dividir em vários volumes, o partimage adicionará uma extensão “.000”, “001”, “002”, etc. aos arquivos, como em um arquivo .rar dividido em vários volumes. Na hora de restaurar a imagem, você precisa apenas colocá-los todos no mesmo diretório e apontar para o arquivo .000.

Pressionando F5 novamente, você vai para a tela de criação da imagem. Inicialmente ele pede uma descrição para a imagem, onde você pode adicionar um texto que será mostrado ao restaurá-la. O texto é opcional, apenas para seu próprio controle. Pode simplesmente pressionar o “Ok” para continuar:

Esta última confirmação inicia oficialmente a criação da imagem. Agora é só ir tomar um café e voltar depois de alguns minutos.

O principal determinante na velocidade de geração da imagem é o desempenho do processador. No meu caso estou fazendo uma imagem de uma partição com 2 GB ocupados, usando compressão em gzip em um Pentium M de 1.73 GHz e o processo todo demorou pouco menos de 5 minutos:

O tamanho final da imagem varia de acordo com o tipo de arquivos dentro da partição. Se for uma partição de sistema, com um monte de executáveis de programas, então provavelmente o partimage conseguirá reduzir o tamanho do arquivo a aproximadamente um terço do original. O backup da partição com 2 GB de dados do exemplo resultou em um arquivo de 671 MB.

Mas, por outro lado, se a partição estiver cheia de arquivos em .mp3, filmes em divx, imagens em .jpg ou outros tipos de arquivos já compactados, o índice de compressão será mínimo.

Na hora de restaurar uma imagem, o processo é basicamente o mesmo: montar a partição ou CD/DVD onde está o arquivo e apontar a partição que será regravada e a localização do arquivo de imagem na tela principal do partimage. A diferença é que agora você deve marcar a opção “Restore partition from an imagefile”. O nome do arquivo deve ser fornecido exatamente como aparece no gerenciador de arquivos, incluindo o “.000” que o partimage adiciona ao usar a opção “Image split mode > Into files whose size is“.

As opções de restauração, que aparecem na segunda tela são:

  • Simulation of the restoration: É como simular a gravação de um CD. Serve para testar a velocidade e encontrar alguns erros óbvios, mas marcando a opção nada é gravado.
  • Erase Free Blocks with zero values: Imagine que você tenha um monte de dados “confidenciais” na partição que está sendo regravada. Você quer sumir com todos os vestígios deles, de modo que seja impossível recuperar qualquer coisa. Esta opção preenche todo o espaço vago da partição com bits zero, resolvendo o problema.
  • If finished successfully: As mesmas opções que apareceram no menu de gravação: esperar, reiniciar o micro, desligar ou apenas fechar o programa depois de terminar.


O último passo é a gravação da imagem propriamente dita, bem mais rápido do que quando geramos a imagem, já que é mais fácil descompactar um arquivo do que gerar o arquivo compactado.

Uma dica importante é que você também pode salvar as imagens em compartilhamentos de rede e também restaurá-las a partir deles. Isso pode ser muito prático quando você administra uma rede com várias máquinas, pois pode salvar backups de todas as instalações em um servidor central e restaurá-las diretamente via rede. Para restaurar um micro, você precisaria apenas dar boot com o CD do Kurumin, configurar a rede, montar o compartilhamento do servidor e usar o partimage para restaurar o sistema a partir da imagem correspondente.

O sistema mais adequado neste caso é o NFS, que vimos a pouco. Ele oferece um desempenho muito bom em redes locais e é fácil criar e montar os compartilhamentos no Kurumin usando os painéis disponíveis no Iniciar > Redes e acesso remoto > NFS.

Concluindo, o partimage não oferece a opção de fazer uma cópia completa do HD, apenas de partições isoladas. Mas, é possível fazer isso se você utilizar um comando adicional, para copiar também a trilha MBR e a tabela de partição do HD. Com as duas coisas em mãos é possível realmente clonar um HD inteiro.

Para isso, são necessários mais dois comandos. Acesse o diretório onde você está armazenando as imagens e execute:

# dd if=/dev/hda of=hda.mbr count=1 bs=512

Este comando faz uma cópia do setor de boot do HD, aqueles primeiros 512 bytes de extrema importância, que incluem o gerenciador de boot e também a tabela de partição do HD, salvando-o no arquivo “hda.mbr”.

Ao restaurar esta cópia do MBR em um HD limpo, ele ficará particionado exatamente da mesma forma que o primeiro (porém sem os dados). Se depois disto você restaurar também as imagens das partições, ficará com uma cópia idêntica de todo o conteúdo do HD.

O HD destino não precisa necessariamente ser do mesmo tamanho que o primeiro; você pode usar um HD maior sem problemas. Neste caso, o excedente ficará vago e você poderá criar novas partições depois. Naturalmente, o HD destino não pode ser menor que o original, caso contrário você vai ficar com um particionamento inválido e dados faltando; ou seja, uma receita para o desastre.

Na hora de restaurar os backups, acesse a pasta onde está o arquivo e inverta o comando, para que o MBR seja restaurado:

# dd if=hda.mbr of=/dev/hda

Se você tem um HD dividido em duas partições (“hda1” e “hda2”, por exemplo), é necessário fazer imagens das duas partições usando o Partimage e fazer o backup da MBR usando o comando do dd. Na hora de restaurar, comece restaurando o MBR, deixando para regravar as imagens das partições por último.

Sobre o Autor