En una máquina virtual VirtualBox para pruebas me quedé sin espacio en disco al tratar de copiar unos archivos. Es posible redimensionar rápidamente un disco VDI desde el gestor de medios GUI de VirtualBox (Oracle VM VirtualBox Manager). Sin embargo, también es posible hacerlo rápidamente desde línea de comandos (con le utilitario vboxmanage), lo cual puede ser de ayuda cuando se gestiona un host de máquinas virtuales headless.



El siguiente directorio contiene los archivos de la máquina virtual:

emi@hal9000:/data/VM/Devuan$ ll
total 7248956
-rw------- 1 emi emi       5802 Mar  3 11:09 Devuan.vbox
-rw------- 1 emi emi       5802 Mar  3 11:06 Devuan.vbox-prev
-rw------- 1 emi emi 7424966656 Mar  3 11:09 Devuan.vdi
drwx------ 2 emi emi       4096 Mar  3 11:07 Logs

El disco que deseo redimensionar (el único disco que posee dicha máquina virtual) es el archivo Devuan.vdi:

emi@hal9000:/data/VM/Devuan$ vboxmanage showmediuminfo Devuan.vdi 
UUID:           315b1280-3ed2-43e7-a288-dffc84cb49dc
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /data/VM/Devuan/Devuan.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   7081 MBytes
Encryption:     disabled
In use by VMs:  Devuan (UUID: e8eb875c-3cea-4ddd-a598-fb27cd240058)

Este disco actualmente tiene un tamaño de 8 GB (8096 MB). Deseo redimensionarlo a 20 GB. Es necesario indicar el nuevo tamaño en MB, con lo cual 20 * 1024 = 20480:

emi@hal9000:/data/VM/Devuan$ echo "1024*20" | bc
20480

El utilitario vboxmanage posee el subcomando "modifymedium" para modificar discos:

emi@hal9000:/data/VM/Devuan$ vboxmanage modifymedium
Usage:

VBoxManage modifymedium     [disk|dvd|floppy] <uuid|filename>
                            [--type normal|writethrough|immutable|shareable|
                                    readonly|multiattach]
                            [--autoreset on|off]
                            [--property <name=[value]>]
                            [--compact]
                            [--resize <megabytes>|--resizebyte <bytes>]
                            [--move <path>]
                            [--setlocation <path>]
                            [--description <description string>]

La opción --resize permite establecer un nuevo tamaño expresado en megabytes:

emi@hal9000:/data/VM/Devuan$ vboxmanage modifymedium --resize 20480 Devuan.vdi 
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Eso es todo:

emi@hal9000:/data/VM/Devuan$ vboxmanage showmediuminfo Devuan.vdi 
UUID:           315b1280-3ed2-43e7-a288-dffc84cb49dc
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /data/VM/Devuan/Devuan.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       20480 MBytes
Size on disk:   7081 MBytes
Encryption:     disabled
In use by VMs:  Devuan (UUID: e8eb875c-3cea-4ddd-a598-fb27cd240058)

Cabe destacar que es necesario realizar esta acción (tanto desde GUI como CLI) con la máquina virtual apagada. Luego proceder con el redimensionado de particiones y expansión del sistema de archivos tal como muestra el artículo Cómo redimensionar una partición con fdisk.


Tal vez pueda interesarte


Compartí este artículo