Если у вас есть новый физический диск, подключенный к машине, на которой находится виртуальный диск виртуальной машины, вы можете преобразовать VDI в физический без промежуточного преобразования, что, вероятно, сэкономит кучу времени и дискового пространства. Предполагается, что ваш физический диск такой же или больше максимального размера виртуального диска. В моем случае целью было преобразовать VDI в ZFS zol, но подход должен быть одинаковым с любым блочным устройством.
Сначала создайте файл VMDK, указывающий на ваше блочное устройство:
VBoxManage internalcommands createrawvmdk -filename physical.vmdk -rawdisk /dev/sdX
Затем (с выключенной виртуальной машиной!) Вы можете клонировать VDI в VMDK:
VBoxManage clonemedium --existing virtual.vdi physical.vmdk
Это займет некоторое время ... Когда это будет сделано, вы можете удалить файл VMDK, поскольку он использовался только в качестве указателя для VirtualBox для поиска физического устройства.
В моем случае новый zvol был точно такого же размера, как и виртуальный диск. Учитывая, что ваш физический диск, вероятно, отличается, вам нужно использовать какой-то механизм изменения размера раздела, чтобы заполнить весь диск. Gparted или что-то, возможно. Вы должны быть в состоянии указать это на физическом устройстве / dev / sdX, пока оно еще подключено к машине с виртуальной машиной, чтобы вам не приходилось прибегать к загрузочным компакт-дискам на физическом хосте.
После изменения размера вставьте диск в физическую машину, скрестите пальцы и включите питание.
В случае , если вы хотите продолжать использовать физический диск с VirtualBox, держать VMDK вокруг, и использовать VBoxManage storageattach
для подключения к виртуальной машине.