Não temos idéia de por que o Windows no seu caso não pode lidar com o disco virtual alocado dinamicamente. Pode valer a pena verificar a integridade do sistema de arquivos ou executar uma desfragmentação no sistema operacional convidado do Windows.
No entanto, podemos facilmente aumentar o tamanho de uma unidade virtual em crescimento dinâmico relatada ao sistema operacional convidado, emitindo o seguinte comando executado em um terminal:
VBoxManage modifyhd <uuid/name> --resize <newsize in MB>
Substitua pelo uuid ou pelo nome do arquivo (caminho completo necessário) da sua unidade virtual. Eles podem ser listados com o seguinte comando:
VBoxManage list hdds
Observe que, obviamente, não podemos alterar o tamanho da unidade virtual se tirássemos instantâneos ou salvássemos o estado da máquina em vez de desligar. Antes de alterar o tamanho da unidade virtual, precisamos excluir todos os instantâneos ou trabalhar em um clone para garantir que não perdemos o conteúdo de um instantâneo. Encolher um disco que cresce dinamicamente não é possível.
Depois de redimensionar a unidade virtual, teremos que adaptar a tabela de partição do convidado ao tamanho alterado da unidade.
No Windows 7, vá para Gerenciamento do computador -> Gerenciamento de disco para exibir o novo espaço não alocado (mostrado após o redimensionamento com a adição de 10 GB à unidade):
Clique com o botão direito nessa partição não alocada para selecionar "Estender Volume ..." para aumentar o tamanho da partição. Você também pode fazer isso ao inicializar um .iso do Ubuntu live nesta máquina virtual para redimensionar partições usando o gparted.
Mais detalhes aqui: Manual do usuário do Virtual Box
Consulte também: Como aumento o tamanho do disco rígido da máquina virtual?
Para reduzir / compactar fisicamente um disco em crescimento dinâmico, consulte: Como reduzo um disco VDI em crescimento dinâmico do VirtualBox?