Se o seu host for um Windows ou você puder acessar arquivos VHD a partir do Windows, há um truque para MERGE todas as alterações em pai, avô, etc.
Está usando a ferramenta DiskPart e os dois comandos:
select vdisk file="whatever your file is, with full path"
merge vdisk depth=#
Onde # é o número de níveis de hierarquia que você deseja mover, 1 para o pai direto, 2 para o pai principal, etc.
Faz isso no local, consome muito menos tempo que a clonagem, etc.
Lembre-se de que após a mesclagem de todos os VHDs intermediários podem ser excluídos (eles não serão excluídos por você) e não se esqueça de anexar ao VirtualBox o pai onde você mesclou.
Exemplo:
Disk3.vhd é filho de Disk2.vhd, Disk2.vhd é filho de Disk1.vhd
Se você deseja no Disk1.vhd, todas as alterações no Disk3.vhd usam depth=2
e selecione Disk3.vhd. Se você deseja no Disk1.vhd todas as alterações do Disk2.vhd, basta usar depth=1
Disk3.vhd.
Lembre-se também de que não há necessidade de instantâneos feios do VirtualBox, você pode usar o comando DiskPart create vdisk para criar um disco diferencial a partir de um existente (que também pode ser um disco diferencial, etc.), também pode criar uma árvore enorme.
Para todo o resto: o pôster está usando VHD (não VDI) e, portanto, pode usar ferramentas nativas, como DiskPart e Disk Managment, para acessar os discos do convidado (no host, se o host for Windows).
Para você, o pôster: lembre-se de sempre ter um backup completo antes da mesclagem, o clone do VirtualBox não funciona, ele cria um novo arquivo (cópia na gravação), mas a mesclagem do DiskPart funciona no local (modifique o arquivo, não crie um novo).
Espero que isso possa dar outra abordagem diferente, pois o VHD / VHDX está em uso (não é válido para VMDK, VDI, etc., apenas para Windows Host).
Nota: Windows 7 e Up, XP e Vista podem montar VHD com uma ferramenta M $ externa, mas o DiskPart não oferece suporte a VHD no XP e Vista ... tudo isso também funciona nas edições Windows HOME (7 e Up), sem a necessidade de um Edição SERVER.