É 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.