Convertendo partição DOS para LVM em máquinas virtuais

Publicado por Filipe Binat Gallo em 24/05/2017

[ Hits: 3.665 ]

 


Convertendo partição DOS para LVM em máquinas virtuais



É muito comum o uso de máquinas virtuais, porém, alguns sistemas mais antigos foram instalados com partições do tipo DOS, seja durante uma migração, ou falta de atenção no momento da instalação da máquina.

O LVM facilita muito a expansão dos filesystems, assim, as dicas a seguir podem ser úteis. Mãos à obra.

Passos

Inicialmente, temos apenas um disco:

# fdisk -l
Disk /dev/sda: 12.8 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          19      152586   83  Linux
/dev/sda2              20        1435    11374020   83  Linux
/dev/sda3            1436        1566     1052257+  82  Linux swap / Solaris

No VMWARE, basta incluir um novo disco, um pouco maior claro, e utilizando o fdisk:

# fdisk /dev/sdb

Vamos criar a seguinte estrutura:

# fdisk -l
Disk /dev/sdb: 15.0 GB, 15032385536 bytes
255 heads, 63 sectors/track, 1827 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot   Start     End      Blocks   Id  System
/dev/sdb1            1      19      152586   83  Linux
/dev/sdb2           20    1770    14064907+  8e  Linux LVM
/dev/sdb3         1771    1827      457852+  82  Linux swap / Solaris

Agora que já temos as partições criadas, vamos iniciar o disco físico:

# pvcreate /dev/sdb2

Criar o VG principal:

# vgcreate rootvg /dev/sdb2

Criar o LV:

# lvcreate -L 13G -n lv_root rootvg

Particionar o filesystem:

# mkfs.ext3 /dev/rootvg/lv_root

Vamos criar uma pasta para montar este novo disco:

# mkdir /mnt/NEW_ROOT_PARTITION
# mount /dev/rootvg/lv_root /mnt/NEW_ROOT_PARTITION/

Vamos copiar os dados para dentro do disco que criamos:

# find / -xdev | cpio -pvmd /mnt/NEW_ROOT_PARTITION/
# cp -aux /dev /mnt/NEW_ROOT_PARTITION

Vamos ajustar o fstab para que tenha os locais do novo disco, que agora é um LVM, porém o boot não convertemos para LVM:

# vi /mnt/NEW_ROOT_PARTITION/etc/fstab

/dev/rootvg/lv_root  /                       ext3    defaults        1 1
/dev/sda1            /boot                   ext3    defaults        1 2

Vamos trocar o nível de execução da raiz para realizarmos o ajuste no initrd, que agora precisa iniciar o LVM:

# chroot /mnt/NEW_ROOT_PARTITION
# mount -t proc /proc /proc
# mount -t sysfs /sys /sys
# vgscan
# vgchange -ay
# mkinitrd -v /boot/initrd-`uname -r`.lvm.img `uname -r`
# umount /sys
# umount /proc
# exit

Agora precisamos clonar a partição de boot:

# dd if=/dev/sda1 of=/dev/sdb1

Porém, não temos o MBR de boot, assim, vamos fazer um backup:

# dd if=/dev/sda of=/tmp/mbrsda.bak bs=512 count=1

E iremos copiar apenas a porção inicial, para não alterar a nossa FAT com as partições que já criamos:

# dd if=/tmp/mbrsda.bak of=/dev/sdb bs=446 count=1

Vamos montar o disco de boot:

# mkdir /boot2
# mount /dev/sdb1 /boot2/
# cp initrd-2.6.18-128.el5.lvm.img /boot2/

Precisamos editar o GRUB, alterando o initrd e o parâmetro de localização da raiz de montagem:

# vi /boot2/grub/grub.conf

  kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/rootvg/lv_root rhgb
  initrd /initrd-2.6.18-128.el5.lvm.img

Pronto. Basta desmontar tudo e remover do servidor o disco antigo no vmware:

# umount /boot2
# umount /mnt/NEW_ROOT_PARTITION/

Assim, convertemos para LVM uma partição do tipo DOS. Vale lembrar, faça um backup de seu disco antes de iniciar qualquer procedimento.

Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Keeweb - Gerenciador de senhas Web compatível com KeePass

Deletar kernel antigo para não aparecer no GRUB2

Enviando alertas de e-mail pelo Zabbix usando Gmail, CentOS e Postfix

Acesso via SSH entre servidores sem senha

Escolhendo sua distribuição Linux

  

Comentários
[1] Comentário enviado por removido em 24/05/2017 - 02:47h

Olá. Ideia interessante. Só não entendi muito bem qual é a do cpio. Poderia explicar? Valeu!

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden

[2] Comentário enviado por m@verick em 26/05/2017 - 13:10h

Sim, poderias ter feito a copia com rsync, ou mesmo um cp -p direto excluindo apenas as pasta

cpio -pvmd
-p --pass-through Run in copy-pass mode
In copy-pass mode, cpio copies files from one directory tree to another, combining the copy-out and copy-in steps without actually using an archive. It reads the list of files to copy from the standard input; the directory into which it will copy them is given as a non-option argument.

-v --verbose
-d --make-directories
-m --preserve-modification-time



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts