La forma más rápida y sencilla de cambiar el tamaño de un disco duro virtual en VirtualBox es hacer uso de la herramienta de Medios que tiene la propia aplicación. Si el disco fue creado con un formato de tipo dinámico no habrá problemas. Sin embargo, si se creo con un formato estático no será posible cambiar su tamaño y obtendremos el error VBOX_E_NOT_SUPPORTED. Para poder llevar a cabo esta tarea tenemos que utilizar la herramienta de línea de comandos VBoxManage, la cual permite realizar diversas tareas de gestión.

Esta aplicación suele encontrarse en la carpeta de instalación de VirtualBox. En Windows, generalmente en \Program Files\Oracle\VirtualBox. Para poder ejecutarla sin tener que indicar la ruta completa lo más cómodo es añadirla al PATH del sistema.

Para realizar el cambio de tamaño tendremos que realizar una clonación del disco, con la cual obtendremos una nueva imagen del mismo pero en este caso de tipo dinámico. Posteriormente, montaremos el nuevo disco en sustitución del anterior.

Modificar un disco duro virtual

Antes de empezar, obtenemos la información del disco que vamos a clonar:

VBoxManage showhdinfo "<ruta_fichero_vdi>\<nombre_fichero_vdi>.vdi"
Información disco duro virtual

En este caso, podemos ver que el campo Format variant: tiene el valor fixed default, por lo que si ententamos cambiar el tamaño obtendremos un error.

Realizamos la clonación del disco:

VBoxManage clonehd "<ruta_fichero_vdi>\<nombre_nuevo_fichero_vdi>.vdi"

y comprobamos que la nueva imagen creada tiene formato dinámico

Nuevo disco virtual clonado

Con el siguiente comando modificamos su capacidad, indicando el nuevo tamaño en megas:

VBoxManage modifyhd "C:\Virtual\UbuntuServer\UbuntuServer_Clone.vdi" --resize 8192

Una vez creado y configurado el nuevo disco solo nos queda montarlo en la máquina virtual. Podemos hacerlo desde la interfaz gráfica o desde la línea de comandos. En el segundo caso, debemos ejecutar:

VBoxManage storageattach UbuntuServer --storagectl "SATA" --device 0 --port 0 --type hdd --medium "<ruta_fichero_vdi>\<nombre_fichero_vdi>.vdi"

(en la opción --storagectl debemos indicar el nombre del controlador usado en la máquina virtual)

Una vez realizadas todas estas tareas tendremos nuestra máquina virtual con un disco duro cuya capacidad ha sido modificada. Sin embargo, el nuevo espacio creado no está todavía accesible para el sistema operativo instalado en la máquina virtual. Para ello tendremos que modificar las particiones existentes, de forma que el sistema de ficheros pueda hacer uso del nuevo espacio disponible. Las tareas a realizar dependerán del sistema operativo instalado y su configuración.