Ubuntu – Why does Virtualbox’ virtual disk not grow automatically


I use VirtualBox 4.2.6 with Ubuntu 12.04 as a host and Win XP as a guest. I assigned a virtual disk (VDI) that grows with XP to a a maximum of 40 GB. Currently it uses 25 GB.

Within XP it repeatedly tells me that there is not enough space available.

I still have plenty of space on my host's primary disk

df -h
/dev/sda1       143G     48G   89G   35% /

What to do to expand my XP's disk? This question did not help me, btw.

enter image description here

Best Answer

We have no idea why Windows in your case can not handle the dynamically allocated virtual disk. It may be worth to check the filesystem integrity or perform a defragmentation from your Windows guest OS.

Nevertheless we can easily increase the size of a dynamically growing virtual drive reported to the guest OS by issueing the following command run in a terminal:

VBoxManage modifyhd <uuid/name> --resize <newsize in MB>

Replace with the uuid or the filename (full path needed) of your virtual drive. These can be listed with the following command:

VBoxManage list hdds

Note that obviously we can not change the virtual drive size if we had taken snapshots or saved the machine's state instead of power off. Before we change the virtual drive's size we therefore need to delete all snapshots, or work on a clone to makes sure we do not loose a snapshot's content. Shrinking a dynamically growing disk is not possible.

After having resized the virtual drive we will then have to adapt the partition table of the guest to altered drive's size.

In Windows 7 go to Computer Management -> Disk Management to view new unallocated space (shown after resizing with adding 10 GB to the drive):

enter image description here

Right click on this unallocated partition to select "Extend Volume..." to increase the partition size. You may also do this with booting an Ubuntu live .iso on this virtual machine to resize partitions using gparted.

More details here: Virtual Box User Manual

See also: How do I increase the hard disk size of the virtual machine?

To physically shrink/compact a dynamically growing disk see: How do I shrink a dynamically growing VDI disk from VirtualBox?