Desaloque o espaço no final do disco no sistema operacional convidado , onde espaço >= tamanho (disco de origem) - tamanho (novo disco). Normalmente diminuindo a última partição . Desfragmente o disco também.
Desligue a máquina virtual.
Crie um novo disco Virtual Box com o tamanho desejado.
Mova o conteúdo do disco antigo para dentro do novo disco:
vboxmanage clonemedium disk "source-disk.vmdk" "new-disk.vmdk" --existing
Ligue a máquina virtual.
Pode ser necessário redimensionar a partição no sistema operacional convidado para preencher o restante do disco, dependendo do espaço desalocado na etapa 1.
https://serverfault.com/questions/779106/how-to-decrease-virtual-size-capacity-of-a-virtualbox-vdi-file