Si vous avez le nouveau disque physique attaché à la machine sur laquelle se trouve le disque virtuel de la machine virtuelle VM, vous pouvez convertir VDI en physique sans conversion intermédiaire, ce qui vous fera probablement gagner beaucoup de temps et d'espace disque. Cela suppose que votre disque physique a la même taille ou est plus grand que la taille maximale du disque virtuel. Dans mon cas, l'objectif était de convertir un VDI en un zvol ZFS, mais l'approche devrait être la même avec tout périphérique bloc.
Tout d'abord, créez un fichier VMDK pointant vers votre périphérique bloc :
VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX
Ensuite (avec la VM arrêtée !), vous pouvez cloner le VDI vers le VMDK :
VBoxManage clonemedium --existing virtual.vdi physical.vmdk
Cela prendra un certain temps... Lorsque c'est fait, vous pouvez supprimer le fichier VMDK car il n'était utilisé que comme pointeur pour que VirtualBox trouve le périphérique physique.
Dans mon cas, le nouveau zvol était exactement de la même taille que le disque virtuel. Étant donné que votre disque physique est probablement différent, vous devriez utiliser un mécanisme de redimensionnement de partition pour remplir tout le disque. Gparted ou quelque chose du genre peut être utilisé. Vous devriez pouvoir le pointer vers le périphérique physique /dev/sdX tout en étant encore attaché à la machine VM pour ne pas avoir à recourir à des CD de démarrage sur l'hôte physique.
Une fois le redimensionnement terminé, insérez le disque dans votre machine physique, croisez les doigts et mettez-la sous tension.
Si vous souhaitez continuer à utiliser le disque physique avec VirtualBox, gardez le VMDK et utilisez VBoxManage storageattach
pour le connecter à la VM.