Neste tutorial vou ensinar o passo a passo de como redimensionar a partição  principal em servidores linux virtualizados, utilizando XenServer como plataforma de virtualização.

Estou utilizando um servidor GNU/Linux Debian com uma única partição, montado no / , o disco virtal reconhecido pelo virtualizador XenServer é o /dev/xvda, e será demonstrado o redimensionamento de 10GB para 30GB, mas este procedimento poderá ser utilizado para qualquer tamanho de partição.

Vamos aos trabalhos:

Primeiramente faça snapshot ou mesmo um backup de todos os arquivos do servidor, para um eventual retorno dos arquivos caso não siga corretamente todos os procedimentos aqui mencionados

Agora vamos conhecer o disco que será redimensionado.

# fdisk /dev/xvda

Command (m for help): p
Disk /dev/xvda: 30 GB, 32212254720 bytes, 62914560 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xb3b23110
Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 499711 497664 243M 83 Linux
/dev/xvda2 499712 20971519 20471808 9.8G 5 Extended
/dev/xvda5 501760 20971519 20469760 9.8G 8e Linux LVM

A partição que será redimensionada será a 5 (/dev/xvda5), para isso devemos remover as partição LVM e Extend.

Command (m for help): d
Partition number (1-5): 5
Command (m for help): d
Partition number (1-5): 2
Command (m for help): p

Disk /dev/xvda: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb3b23110

Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 499711 497664 243M 83 Linux

Após apagar as partições /dev/xvda2 e /dev/xvda5, precisamos recriar-las para possibilitar o devido redimensionamento possibilitando futuras expansões do sistema de arquivos.

Agora execute o comando:

# fdisk /dev/xvda

Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (1-4, default 2): 2
Using default value 2

First sector (499712-62914559, default 499712):
Last sector, +sectors or +size{K,M,G,T,P} (499712-62914559, default 62914n559):

Created a new partition 2 of type ‘Extended’ and of size 29.8 GiB.

Command (m for help): n
Partition type
p primary (1 primary, 1 extended, 2 free)
l logical (numbered from 5)
Select (default p): l

Adding logical partition 5
First sector (501760-62914559, default 501760):
Last sector, +sectors or +size{K,M,G,T,P} (501760-62914559, default 62914559):

Created a new partition 5 of type ‘Linux’ and of size 29.8 GiB.

Command (m for help): p
Disk /dev/xvda: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb3b23110

Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 499711 497664 243M 83 Linux
/dev/xvda2 499712 62914559 62414848 29.8G 5 Extended
/dev/xvda5 501760 62914559 62412800 29.8G 83 Linux

Agora será necessário alterar o sistema de arquivos da partição 5 de Linux para LVM:

Command (m for help): t
Partition number (1,2,5, default 5): 5
Hex code (type L to list all codes): 8e

Changed type of partition ‘Linux’ to ‘Linux LVM’.

Command (m for help): p
Disk /dev/xvda: 30 GiB, 32212254720 bytes, 62914560 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb3b23110

Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 499711 497664 243M 83 Linux
/dev/xvda2 499712 62914559 62414848 29.8G 5 Extended
/dev/xvda5 501760 62914559 62412800 29.8G 8e Linux LVM

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Re-reading the partition table failed.: Device or resource busy

The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8).

A nova partição só poderá ser redimensionada, após o reinício do servidor.

root@debian:~# init 6

Após reiniciar o servidor, vamos agora redimensionar do Logical Volume Manager (LVM):

root@debian:~# pvresize /dev/xvda5
Physical volume “/dev/xvda5” changed
1 physical volume(s) resized / 0 physical volume(s) not resized

root@debian:~# vgdisplay

— Volume group —
VG Name debian-vg
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 10
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 29.76 GiB
PE Size 4.00 MiB
Total PE 7618
Alloc PE / Size 2498 / 9.76 GiB
Free PE / Size 5120 / 20.00 GiB
VG UUID wCQ9TN-elYp-1mVy-p1GL-LNl8-zH9n-j1VOoJ

Verifique que o espaço alocado é menor que o espaço livre, agora vamos redimensionar o espaço livre para a partição alocada.

root@debian:~# lvresize /dev/debian-vg/root -l +100%FREE

Size of logical volume debian-vg/root changed from 9.39 GiB (2404 extents) to 29.39 GiB (7524 extents).
Logical volume root successfully resized

Agora vamos redimensionar o sistema de arquivos:

root@debian:~# resize2fs /dev/debian-vg/root

Filesystem at /dev/debian-vg/root is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/debian-vg/root is now 7704576 (4k) blocks long.

Pronto agora seu sistema já está com o novo espaço na partição.

Compartilhe sempre o conhecimento isso é bom para todo mundo!