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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
[root@Address21 ~]# fdisk -l <span style="color: #ff0000;">Disk /dev/sda: 42.9 GB</span>, 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)... <span style="color: #ff0000;">Disk /dev/sdb: 221.8 GB</span>, 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 <span style="color: #ff0000;">Disk /dev/sdc: 214.7 GB</span>, 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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[root@Address21 ~]# <span style="color: #ff0000;"><strong>fdisk /dev/sdc</strong></span> 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): <strong><span style="color: #ff0000;">n</span></strong> Comando - ação e estendida p partição primária (1-4) <span style="color: #ff0000;"><strong>p</strong></span> Número da partição (1-4): <span style="color: #ff0000;"><strong>1</strong></span> Primeiro cilindro (1-26108, default 1): <span style="color: #ff0000;"><strong>1</strong></span> Last cilindro, +cilindros or +size{K,M,G} (1-26108, default 26108): <span style="color: #ff0000;"><strong>26108</strong></span> |
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
1 2 3 4 5 6 7 8 9 10 11 |
Comando (m para ajuda): <strong><span style="color: #ff0000;">p</span></strong> 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 <span style="color: #ff0000;">/dev/sdc1 1 26108 209712478+ 83 Linux</span> |
Podemos ver que foi criada a partição /dev/sdc1.
Agora digite w para gravar as alterações e sair.
1 2 3 4 5 6 |
Comando (m para ajuda): <span style="color: #ff0000;">w</span> 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
1 2 3 4 5 6 7 8 9 10 |
[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.
1 2 |
[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.
1 2 3 4 5 6 7 |
[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) <span style="color: #ff0000;">/dev/sdc1 on /z type ext4 (rw)</span> [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
1 |
[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
1 2 3 4 |
[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:
1 2 3 4 5 6 7 |
<span style="color: cyan;">tmpfs</span> /dev/shm tmpfs <span style="color: green;">defaults</span> <span style="color: red;">0 0</span> <span style="color: cyan;">devpts </span> /dev/pts devpts <span style="color: yellow;">gid=</span><span style="color: red;">5</span>,<span style="color: yellow;">mode=</span><span style="color: red;">620 0 0</span> <span style="color: cyan;">sysfs </span> /sys sysfs defaults <span style="color: red;">0 0</span> <span style="color: cyan;">proc </span> /proc proc defaults <span style="color: red;">0 0</span> <span style="color: blue;">#UUID="d1744a2b-8495-44cd-8196-5d905e3b1926" /database ext4 defaults 0 0</span> <span style="color: cyan;">UUID</span><span style="color: yellow;">=</span><span style="color: red;">"ca034463-5421-4e17-ade2-c7fe2c07a461"</span> /database ext4 <span style="color: green;">defaults</span> <span style="color: red;">0 0</span> |
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.
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.