De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Luís Fernando C. Talora
Data de Publicação: 30 de Dezembro de 2006
Mais de uma vez, me deparei com situações nas quais era preciso duplicar uma instalação já existente de uma máquina com Linux, seja para troca de hardware, seja para substituição do disco rígido em uso por uma maior, seja para testar atualizações sem comprometer um servidor de produção, ou simplesmente para economizar o tempo de instalação, configuração e atualização de uma máquina.
Tentei fazer isso de várias maneiras, entre elas usando o tar (funciona, mas nunca me lembro da sintaxe), dd (requer discos rígido literalmente idênticos e, mesmo assim, nem sempre funciona), entre outros métodos.
A solução que melhor me atendeu foi, provavelmente, a mais simples de
todas: usar o comando cp. Utilizando o cp combinado com os parâmetros
a
e v
, obtemos uma cópia fiel de um sistema de arquivos ext2 ou ext3
(provavelmente funciona com reiserfs também). É um método um pouco "braçal",
já que é preciso prepar o particionamento de disco e utilizar uma outra
distro live-on-cd para executar a cópia, mas utiliza um comando simples,
disponível em qualquer distro e é de fácil compreensão (exceto, talvez,
pelos passos que precedem a cópia, que podem ser simplificados com o uso de
ferramentas gráficas de particionamento, como o qtparted). Seguem os passos
para se "clonar" uma instalação do Linux seguindo esse método.
HD1 (8Gb) Partição Tipo Tam. Aprox. Ponto de Montagem /dev/hda1 ext3 100Mb /boot /dev/hda1 swap 1Gb (nenhum) /dev/hda3 ext3 7Gb /Da mesma forma, o HD2, de 36 Gb, deverá ficar assim:
HD1 (36Gb) Partição Tipo Tam. Aprox. Ponto de Montagem /dev/hdb1 ext3 100Mb /boot /dev/hdb1 swap 1Gb (nenhum) /dev/hdb3 ext3 34Gb /
# fdisk -l /dev/hda Disk /dev/hda: 8455 MB, 8455200768 bytes 255 heads, 63 sectors/track, 1027 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 13 104391 83 Linux /dev/hda2 14 300 2305327+ 82 Linux swap / Solaris /dev/hda3 301 1027 10498414 83 LinuxSe o HD2 contiver dados, utilize o comando fdisk /dev/hdb e a opção
d
quantas vezes forem necessárias para deixá-lo vazio. Salve o particionamento
com a opção w
. A tabela de particionamento do HD2 deverá se parecer com
o exibido abaixo (ou seja, vazia):
# fdisk -l /dev/hdb Disk /dev/hdb: 36.4 GB, 36419584000 bytes 255 heads, 63 sectors/track, 4427 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System
# fdisk /dev/hdb (cuidado para não selecionar do disco errado!!!) Tecle: "n" (para criar uma nova partição), "p" (para primária), "1" (número da partição) e "1" (cilindro inicial) "+xxxM" (onde "xxx" é o tamanho, em Mbytes. Ex.: +100M para 100 Mbytes)Obs: 100Mb é mais que suficiente para nosso exemplo, onde a partição 1 (/dev/hda1) é a
/boot
.
Segunda partição: Está será nossa partição de swap (normalmente, utiliza-se
o dobro da quantidade de memória RAM).
Tecle n
, p
2
, <ENTER> (para aceitar a sugestão do fdisk e usar o próximo
cilindro livre) Depois, digite +xxxM (onde xxx
é o tamanho em Mbytes).
Terceira partição: n
, p
, 3
, <ENTER>, <ENTER> (ocuparemos o restante
do disco com a nova partição - /
)
Teclando p
você verá o novo esquema de particionamentedo:
Disk /dev/hdb: 36.4 GB, 36419584000 bytes 255 heads, 63 sectors/track, 4427 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/hdb1 1 13 104391 83 Linux /dev/hdb2 14 138 1004062+ 83 Linux /dev/hdb3 139 4427 34451392+ 83 LinuxNote que a partição /dev/hdb2 aparece como
Linux
, mas precisamos que ela mude para swap
.
Tecle t
para efetuar essa alteração, 2
(partição 2) e 82
(que é o
código para partição de swap).
Digite p
novamente e você deverá ver o seguinte:
Disk /dev/hdb: 36.4 GB, 36419584000 bytes 255 heads, 63 sectors/track, 4427 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 13 104391 83 Linux /dev/sdb2 14 138 1004062+ 82 Linux swap / Solaris /dev/sdb3 139 4427 34451392+ 83 LinuxTudo OK, tecle
w
para salvar. Se notou algo errado, a opção q
sai sem salvar as alterações.
# mkdir -p /hd1/particao1 # mkdir /hd1/particao3 # mkdir -p /hd2/particao1 # mkdir /hd2/particao3Montando partições:
# mount -t ext3 /dev/hda1 /hd1/particao1 # mount -t ext3 /dev/hda3 /hd1/particao3 # mount -t ext3 /dev/hdb1 /hd2/particao1 # mount -t ext3 /dev/hdb3 /hd2/particao3
# cp -av /hd1/particao1/* /hd2/particao1 # cp -av /hd1/particao3/* /hd2/particao3
# e2label /dev/hda1 (resultado: /boot) # e2label /dev/hda3 (resultado: /)Vamos colocar os mesmos nomes para as partições do HD2
# e2label /dev/hdb1 /boot # e2label /dev/hdb3 /
IÏÌ+D²ùIÏÌIi²ù
). Isso é facilmente solucionável editando-se o arquivo
/etc/fstab do HD2:
# vi /hd2/particao3/etc/fstabAltere a linha semelhante à abaixo:
LABEL=IÏÌ+D²ùIÏÌIi²ù swap swap defaults 0 0Para
/dev/hda2 swap swap defaults 0 0Obs.: Lembre-se: a linha acima começa com
/dev/hda2
, e não com /dev/hdb2
# umount /hd1/particao1 # umount /hd1/particao3 # umount /hd2/particao1 # umount /hd2/particao3
# mkdir /hd_copiado (ponto de montagem para a partição 3) # mkdir /hd_copiado/boot (ponto de montagem para a partição 1)
# mkdir -t ext3 /dev/hda3 /hd_copiado (``/`` é sempre montado antes) # mkdir -t ext3 /dev/hda1 /hd_copiado/boot
chroot
para acessar essa instalação como se a pasta /hd_copiado
fosse a raiz:
# chroot /hd_copiado
# grub-install /dev/hdaSe você usa o LILO, digite:
# lilo
E pronto! Desmonte as partições, reinicialize a máquina, remova o CD do drive e
a inicilização do sistema deverá ocorrer normalmente, utilizando o HD-Clone
.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários