Provavelmente existe um utilitário para fazer isso, mas você pode fazê-lo com bastante facilidade, sem nenhum software especial, o que é sempre um truque útil, já que ele funciona com qualquer tipo de software de virtualização.
Basta inicializar uma imagem ao vivo na máquina virtual com .vdi anexado. Certifique-se de que a rede esteja ativada e que a máquina com o disco de destino e o convidado possam se ver. Em seguida, dd a partição virtual e pipe para o netcat no guest, e receba-o no sistema host com o netcat e grave na partição com dd.
Na execução da máquina de destino:
netcat -l -p 4444 | dd of=/dev/<target partition or disk>
Esperará. Dentro do guest run:
dd if=/dev/<source partition or disk> | netcat <target-machine-ip> 4444
Isto está assumindo que os dispositivos de origem e destino são exatamente do mesmo tamanho, o que eles provavelmente não são.
Observe que a máquina de destino não precisa ser a máquina host de virtualização, pode ser qualquer máquina que a máquina convidada possa acessar pela rede.
Para um software especial para manipular imagens .vdi de várias formas, consulte: Monte um Imagem da unidade do VirtualBox (vdi)?