Se você tiver o novo disco físico conectado à máquina em que está o disco virtual da VM, poderá converter VDI em físico sem uma conversão intermediária, provavelmente economizando muito tempo e espaço em disco. Isso pressupõe que seu disco físico seja igual ou maior que o tamanho máximo do disco virtual. No meu caso, o objetivo era converter um VDI em um zvol ZFS, mas a abordagem deve ser a mesma para qualquer dispositivo de bloco.
Primeiro, crie um arquivo VMDK apontando para o seu dispositivo de bloco:
VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX
Então (com o desligamento da VM!), Você pode clonar o VDI no VMDK:
VBoxManage clonemedium --existing virtual.vdi physical.vmdk
Isso levará um tempo ... Quando terminar, você poderá excluir o arquivo VMDK, pois ele foi usado apenas como ponteiro para o VirtualBox encontrar o dispositivo físico.
No meu caso, o novo zvol tinha exatamente o mesmo tamanho do disco virtual. Como seu disco físico provavelmente é diferente, você precisará empregar algum tipo de mecanismo de redimensionamento de partição para preencher o disco inteiro. Gparted ou algo assim, talvez. Você deve ser capaz de apontar isso no dispositivo físico / dev / sdX enquanto ainda estiver conectado à máquina da VM, para não precisar recorrer à inicialização do CD do host físico.
Depois que o redimensionamento estiver concluído, coloque a unidade em sua máquina física, cruze os dedos e ligue.
Caso você queira continuar usando a unidade física com o VirtualBox, mantenha o VMDK por perto e use-o VBoxManage storageattach
para conectá-lo à VM.