Cópia do Linux para outra máquina

O processo de instalação de uma distribuição Linux consiste em automatizar tarefas para a configuração do sistema operacional no hardware de destino. Embora o processo possa ser feito manualmente, na maioria das vezes as facilidades de um instalador são bem vindas.

Porém quando somente é necessário a troca do hardware de um sistema já instalado, isto é, mover uma instalação para outra máquina, uma nova instalação pode ser muito dispendiosa. Nesse caso, com a simples cópia dos arquivos para a outra máquina e mais alguns poucos ajustes podemos obter um sistema pronto para uso em muito menos tempo.

Os passos sugeridos para a cópia são os seguintes:

1. Parar os serviços de rede

Para evitar corrupção de dados é recomendado o desligamento dos serviços ativos no servidor, como por exemplo Samba, Bancos de dados (MySQL, PostgreSQL), etc.

2. Copiar os arquivos usando o tar

Escolha uma partição que comporte os dados, um disco externo é uma boa opção. Os dados serão compactados então o espaço usado será bem menor que o uso atual:

Aqui vou usar o diretório /backup:

mkdir /backup
cd /backup

Vamos excluir alguns diretórios de sistema que não precisam ser copiados:

cat backup.excl
/proc/*
/dev/*
/sys/*
/mnt/*
/backup

Pode-se acrescentar outros caminhos conforme o caso.

Dica: “/proc/*” vai criar o diretório /proc mais não vai copiar o seu conteúdo, já “/backup” não vai nem copiar o diretório backup.

Copiando o sistema operacional:

tar cvzf backup_linux.tar.gz / -X backup.excl

3. Bootar a nova máquina com um LiveCD

Pode ser um LiveCD como o Ubuntu ou a própria mídia de instalação da distribuição no modo rescue.

Abra um shell como root e continue seguindo os passos.

4. Particionar o novo disco.

Aqui pode ser usado o mesmo esquema de partição existente antes, o que facilita as coisas, ou um novo esquema que pode precisar de ajustes no fstab e no bootloader.

O particionamento é algo muito específico para mostrar algo aqui, estas [1][2] são  duas referências em caso de dúvidas.

Nesse exemplo o esquema usado é o seguinte:

/dev/hda1   /boot   100MB
/dev/hda2   /       10GB
/dev/hda3   swap    1GB

5. Montar e copiar

Montar as partições criadas:

mount /dev/hda2  /mnt
mkdir /mnt/boot
mount /dev/hda1  /mnt/boot

Copiar o arquivo tar para a nova partição e descompactar:

cd /mnt
tar xvzpf backup_linux.tar.gz

Dica: usamos o ‘p‘ somente para descompactar.

6. Chroot (jail):

Essa é a parte dos “ajustes especias” para o sistema “bootar” no novo hardware.

Montar arquivos especiais:

mount -t proc none /mnt/proc
mount -o bind /dev /mnt/dev
mount -o bind /sys /mnt/sys

Entrando no jail:

chroot /mnt /bin/bash

A partir de agora os comandos serão executados dentro do jail.

7. Ajustando o ambiente (jail):

source /etc/profile
grep -v rootfs /proc/mounts > /etc/mtab

Verificar e corrigir o fstab de acordo com as partições criadas anteriormente.

Exemplo (só exemplo mesmo não use isso!):

/dev/hda1        /boot       ext2        noatime     1 2
/dev/hda2        /           ext3        defaults    0 1
/dev/hda3        none        swap        sw          0 0
/dev/hdc        /mnt/cdrom   auto        noauto,ro   0 0
proc            /proc        proc        defaults    0 0

Verificar e corrigir o /boot/grub/device.map do GRUB.

Exemplo:

(hd0)    /dev/hda

No caso de discos SATA:

(hd0)    /dev/sda

Verificar e corrigir as configurações do GRUB em /boot/grub/menu.lst ou /boot/grub/grub.cfg (vai variar de acordo com a distribuição).

Atenção especial para o parâmetro root da entrada kernel. Exemplo:

kernel /boot/kernel-2.6.18 root=/dev/hda2

8. Instalando o bootloader (GRUB):

grub
grub> root (hd0,0)   # (Definir em qual partição está o /boot)
grub> setup (hd0)    # (Instala o GRUB na MBR)
grub> quit           # (Sair do shell do GRUB)

9. Finalizando o jail

exit
umount /mnt/proc
umount /mnt/dev
umount /mnt/sys
umount /mnt/boot
umount /mnt

10. Reiniciar e testar

Reinicie o sistema (reboot) e teste a nova instalação.

Lembrando que esse é um guia genérico e deve ser adaptado conforme a versão do Linux usada. Muitas coisas podem ser diferentes do que foi apresentado aqui, mas essa é a ideia geral para agilizar a migração para o um novo hardware.

 

[1] http://www.mtm.ufsc.br/~krukoski/pub/linux/focalinux2/ch-disc.htm

[2] http://www.hardware.com.br/livros/entendendo-linux/particoes-linux.html

 

Fonte: http://nextsense.com.br/blog/archives/470

.