IMPORTANTE: É NECESSÁRIO FAZER UM BACKUP DA IMAGEM ANTES DE REALIZAR ESSE PROCEDIMENTO


Método indicado:
Passo #1: Expandir o disco com o tamanho extra necessário.

qemu-img resize (imagem) +4G


Exemplo:

qemu-img resize /home/data/vm_images/urn:publicid:IDN+ch.fibre.org.br:2f98cb4d+slice+10830630:p1.img +4G


Passo #2: Refazer o particionamento

Após o disco ser expandido, é necessário acessar a máquina e refazer o particionamento da mesma.

Dentro da máquina, será necessário fazer o uso do fdisk.


Liste as partições com o comando 'p':

root@p1:/root# fdisk /dev/xvda

Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.


Command (m for help): p
Disk /dev/xvda: 8 GiB, 8589934592 bytes, 16777216 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: 0x9ba489dc

Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 7813119 7811072 3.7G 83 Linux
/dev/xvda2 7815166 8386559 571394 279M 5 Extended
/dev/xvda5 7815168 8386559 571392 279M 82 Linux swap / Solaris


Delete a partição que deve ser aumenta com o comando 'd':

Command (m for help): d
Partition number (1,2,5, default 5): 1

Partition 1 has been deleted.


Crie uma nova partição com o comando 'n':

Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-16777215, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-16777215, default 16777215): +7G

Created a new partition 1 of type 'Linux' and of size 7 GiB.



Caso seja necessário recriar a partição de SWAP por conta da ordenação dos blocos, o código desta é 82.

Exemplo:

Command (m for help): t
Partition number (1,2,5, default 5): 5
Partition type (type L to list all types): 82


Realizada as configurações necessários no particionamento, é necessário reiniciar a máquina para que as mesmas tomem efeito.


Passo #3: Redimensionamento do filesystem

Refeito o particionamento, é necessário redimensionar o filesystem da seguinte forma.

Comando: 

resize2fs (bloco)


Exemplo:

root@p1:/home/ufg-team# resize2fs /dev/xvda1
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/xvda1 is now 1835008 (4k) blocks long.


Caso não saiba qual é o partição que deve ser aumentada, é possível descobrir usando o comando:

fdisk -l


Exemplo:

root@p1:/home/ufg-team# fdisk -l
Disk /dev/xvda: 8 GiB, 8589934592 bytes, 16777216 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: 0x9ba489dc

Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 14682111 14680064 7G 83 Linux
/dev/xvda2 14682112 15255551 573440 280M 5 Extended
/dev/xvda5 14684160 15255551 571392 279M 82 Linux swap / Solaris


Passo #4: Validando o procedimento

Para validar o redimensionamento é possível fazer isso fazendo uso do comando:

df -h


Exemplo:

root@p1:/home/ufg-team# df -h
Filesystem Size Used Avail Use% Mounted on
udev 945M 4.0K 945M 1% /dev
tmpfs 200M 532K 199M 1% /run
/dev/xvda1 6.9G 3.4G 3.2G 52% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
cgmfs 100K 0 100K 0% /run/cgmanager/fs
none 5.0M 0 5.0M 0% /run/lock
none 997M 0 997M 0% /run/shm
none 100M 0 100M 0% /run/user
tmpfs 100K 0 100K 0% /var/lib/lxd/shmounts
tmpfs 100K 0 100K 0% /var/lib/lxd/devlxd
tmpfs 200M 0 200M 0% /run/user/1000


Fonte: https://sandilands.info/sgordon/increasing-kvm-virtual-machine-disk-using-lvm-ext4