Se ainda não leu a parte 1, pode acessar ela por aqui.

Continuando o tutorial, iremos agora iniciar a clonagem dos discos. A primeira parte da clonagem é de um disco que não contem o sistema operacional. Se quiser ir direto para a clonagem com o sistema inicializável, pode pular esta parte e ir direto para a parte 3.

Hora de iniciar a clonagem. Iniciamos a máquina virtual no modo terminal (para caso tenha ambiente gráfico) e logamos como root ou nos tornamos root com o comando su – para que seja possível executar as instruções de particionamento, formatação e clonagem, respectivamente sem necessidade de sudo a todo comando.

No terminal digite fdisk -l para que sejam listados os discos e as partições:

[root@Address21 ~]# fdisk -l

Disk /dev/sda: 42.9 GB, 42949672960 bytes
255 heads, 63 sectors/track, 5221 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0004f229

...(detalhes das partições do dispositivo /dev/sda)...

Disk /dev/sdb: 221.8 GB, 221807247360 bytes
255 heads, 63 sectors/track, 26966 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdc: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Repare que nossos discos aparecem como sendo /dev/sda, /dev/sdb, /dev/sdc (marquei em vermelho para ficar mais visível) e ao lado o seu tamanho. Essa ordem a, b, c é a ordem de conexão na porta IDE. Como nosso disco foi incluído em Secundário Slave e o Primário Slave está o CDROM (vide imagem na parte 1) ele é o terceiro disco do sistema, ou seja, o /dev/sdc. 
Iremos a partir de agora particionar e formatar a unidade. Digite o comando fdisk /dev/sdc.

[root@Address21 ~]# fdisk /dev/sdc
O dispositivo não contém nem uma tabela de partições DOS válida nem um rótulo de disco Sun, OSF ou SGI
Building a new DOS disklabel with disk identifier 0x80a19bff.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Aviso: a opção inválida 0x0000 da tabela de partições 4 será corrigida por gravação (w)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').

Comando (m para ajuda): n
Comando - ação
e estendida
p partição primária (1-4)
p
Número da partição (1-4): 1
Primeiro cilindro (1-26108, default 1): 1
Last cilindro, +cilindros or +size{K,M,G} (1-26108, default 26108): 26108

Dentro do fdisk, digite n, escolha partição primária com p, escolha 1 como número da partição, inicie no cilindo 1 e termine no último cilindro (basta teclar ENTER).

Depois digite p para que seja exibida a tabela criada que deve ficar mais ou menos assim

Comando (m para ajuda): p

Disk /dev/sdc: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders
Units = cilindros of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x80a19bff

Dispositivo Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       26108   209712478+  83  Linux

Podemos ver que foi criada a partição /dev/sdc1.
Agora digite w para gravar as alterações e sair.

Comando (m para ajuda): w
A tabela de partições foi alterada!

Chamando ioctl() para reler tabela de partições.
Sincronizando discos.
[root@Address21 ~]#

O próximo passo é formatar a partição criada no passo anterior com um sistema de arquivos. No caso utilizarei o ext4 que é o mais rápido para trabalhar com o Banco de Dados em Linux. Para isso use o comando mkfs.ext4 /dev/sdc1 ou mke2fs -T ext4 /dev/sdc1

[root@Address21 ~]# mkfs.ext4 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
...(diversas informações da partição e do sistema de arquivos)...

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 21 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

Pronto, a partição está formatada. Agora é hora de montá-la e iniciar a clonagem.
para montar uma unidade, devemos apontá-la para um diretório vazio para facilitar a cópia dos arquivos. Use o comando mkdir para criar um diretório qualquer e em seguida utilize o comando mount para montá-lo nesse diretório.

[root@Address21 ~]# mkdir /z
[root@Address21 ~]# mount /dev/sdc1 /z

O comando mount sem argumentos mostra os pontos de montagem e deverá exibir a montagem recém criada.

[root@Address21 ~]# mount
/dev/mapper/VolGroup-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
...(outros pontos de montagem)...
/dev/sdb on /database type ext4 (rw)
/dev/sdc1 on /z type ext4 (rw)
[root@Address21 ~]#

Nosso ponto está exibido acima em vermelho.
Hora de clonar o disco. Vou usar o utilitário rsync para clonar dados de um local para outro. No meu caso, os dados estão no diretório /database (visível nos pontos de montagem exibidos no comando mount acima) e ele será o source enquanto o novo disco foi montado em /z que será o dest

[root@Address21 ~]# rsync -avHX /database/ /z/

Repare que ambos os caminhos terminam em /. Isso é importante para evitar problemas com o caminho.
Se quiser detalhes sobre cada argumento utilizado basta dar um rsync –help.
O processo é relativamente rápido como uma cópia. Quanto maior a quantidade e o tamanho dos dados, mais tempo vai levar, mas será exibido o progresso.
Ao final já teremos o disco completamente clonado. Falta agora modificar o fstab para que ele monte o novo disco no lugar do antigo.
Primeiro precisamos saber qual o UUID deste disco e para isso utilizamos o blkid

[root@Address21 ~]# blkid
(...)
/dev/mapper/VolGroup-lv_swap: UUID="b7e866d5-831b-4ee8-b65d-be2589214a35" TYPE="swap"
/dev/sdc1: UUID="ca034463-5421-4e17-ade2-c7fe2c07a461" TYPE="ext4"

Agora copie o UUID da partição (/dev/sdc1) e usando um editor abra o arquivo /etc/fstab e substitua o UUID do ponto de montagem que clonou.
Usando o meu como exemplo:

tmpfs               /dev/shm                tmpfs   defaults        0 0
devpts              /dev/pts                devpts  gid=5,mode=620  0 0
sysfs               /sys                    sysfs   defaults        0 0
proc                /proc                   proc    defaults        0 0

#UUID="d1744a2b-8495-44cd-8196-5d905e3b1926" /database ext4 defaults 0 0
UUID="ca034463-5421-4e17-ade2-c7fe2c07a461" /database ext4 defaults 0 0

Desligue o sistema e veja como ficaram os tamanhos dos discos.
Usando as informações da primeira parte deste tutorial, podemos comparar e perceber que o disco criado ficou com o tamanho real bem menor mesmo possuindo a mesma quantidade de informações.

Tamanho do disco após clonar dados do disco maior
Disco Secundário da Máquina Virtual com as bases de dados do SGBD PostgreSQL

Quando a VM inicializar já estará utilizando o novo disco montado no antigo diretório. Após fazer testes e se certificar que está tudo OK. podemos excluir o disco de tamanho grande dela sem se preocupar em configurar nada no S.O. pois a montagem foi feito a partir do UUID e não de seu caminho como dispositivo.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.

Blog do Regis - Meus aprendizados
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.