Clonagem manual de partições com o Partclone

Antes de começar, se você quiser automatização, olhe o post Personalizando o Clonezilla Live.

Neste post explicarei como fazer uma imagem de uma partição EXT4 onde o Fedora está instalado, bem como restaurá-la manualmente.

Esta instalação do Fedora usa apenas uma única partição EXT4 englobando todo o disco. Mais nada. Sem partição swap e usando o particionamento MBR.

Os procedimentos foram executados usando o Parted Magic 64-bit. A versão 64 é requerida se sua instalação for 64-bit (mais sobre isso adiante).

Com o Parted Magic carregado, crio duas pastas em /mnt para acomodar os pontos de montagem:

# mkdir /mnt/{fedora,rede}

Salvarei a minha imagem pela rede num compartilhamento Windows:

# mount.cifs //192.168.1.10/Documents /mnt/rede -o user=Marcos

Com a partição desmontada (/dev/sda1), crio a imagem com o Partclone e comprimo com XZ:

# partclone.extfs -c -s /dev/sda1 | xz -c -2 > /mnt/rede/fedora.pcl.xz

OK. Imagem salva. Para fins de demonstração, ainda dentro do Parted Magic, demolirei todos os dados do HD, zerando os primeiros 300MiB:

# dd if=/dev/zero of=/dev/sda bs=512 count=600k

Bom, agora não temos nada no disco. Nem tabela de partição, nada.

Começamos colocando a casa em pé criando o particionamento novamente com o parted:

# parted -s /dev/sda -- mklabel msdos mkpart primary ext4 0% 100% set 1 boot on

O comando cria uma partição única no disco (particionamento MBR), marcada como ativa (o GRUB não requer isso, mas uso para melhor compatibilidade com BIOS bugados), ocupando todo seu espaço, alinhada em "MiB" e do tipo "Linux" (83). "mkpart" não cria sistema de arquivos nenhum, apenas cria a partição.

OK. Com a partição no lugar, colocamos o sistema de arquivos de volta:

# xzcat /mnt/rede/fedora.pcl.xz | partclone.extfs -r -o /dev/sda1

Agora falta reinstalar o GRUB2 do Fedora:

# mount /dev/sda1 /mnt/fedora
# mount --bind /dev /mnt/fedora/dev
# mount --bind /proc /mnt/fedora/proc
# mount --bind /sys /mnt/fedora/sys
# chroot /mnt/fedora grub2-install --recheck --no-floppy /dev/sda
# umount /mnt/fedora/{dev,proc,sys} /mnt/fedora

Montamos a partição recém restaurada /dev/sda1 em /mnt/fedora. Montamos como "bind" as pastas /dev, /proc e /sys do sistema atual, ou seja, do Parted Magic, dentro do ponto de montagem da partição do Fedora. Isso é necessário para o GRUB2 funcionar dentro do chroot, para ter referência do kernel e demais parâmetros sobre os quais está rodando. Depois executamos grub2-install via chroot, com o nome do dispositivo do HD detectado pelo Parted Magic. Por fim, desmontamos a partição.

Pronto. Reinicie e seu Fedora dará boot normalmente.

PARTIÇÕES COM TAMANHOS DIFERENTES

O Partclone apenas restaura a imagem quando a partição de destino possui tamanho igual ou maior que a partição onde a imagem foi feita. Então se você precisar restaurar para partições de tamanhos variados, crie a imagem numa partição pequena, assim você conseguirá expandi-la posteriormente.

Ao restaurar a imagem, o Partclone não maximiza o sistema de arquivos. Para isso, após ele completar e antes de instalar o GRUB, para sistemas EXT2/3/4, basta rodar com a partição desmontada:

# e2fsck -f /dev/sda1
# resize2fs /dev/sda1

Isso fará o sistema de arquivos ser expandido até o tamanho máximo da partição onde está, que é o comportamento padrão do resize2fs. Outros sistemas de arquivos possuem ferramentas semelhantes, que às vezes funcionam de maneira diferente: o xfs_growfs para XFS requer que o sistema de arquivos esteja montado.

MIÚDOS

- Se o sistema instalado for 64-bit, será necessário usar um live CD que pelo menos tenha um kernel 64-bit (o espaço de usuário pode ser 32-bit, como é o caso do Parted Magic) para o chroot funcionar, afinal os binários executados são os do sistema que está dentro da pasta chrooteada.
- A compressão XZ exige bastante processamento (a decompressão é rápida). Porém vale a pena. Minha instalação com 5,4GiB transformou-se num arquivo de 765MiB! Se quiser uma compressão mais rápida, pode adaptar os comandos para usar GZIP ou outro programa de sua preferência.
- Com /home separado o método é útil também. Só não vá usar o dd ou o parted como publiquei acima, a menos que queira detonar tudo. Não mexa na tabela de partições e apenas use o Partclone para recriar o sistema de arquivos por cima do que existir. A partição não precisa estar vazia antes da restauração.

Relacionado:
Clonagem manual de partições com o Partclone (II)
Clonagem manual de partições com o Partclone (III)

Comentários