Если у вас есть новый физический диск, подключенный к машине, на которой установлен виртуальный диск виртуальной машины, вы можете преобразовать VDI в физический без промежуточного преобразования, что, вероятно, сэкономит кучу времени и дискового пространства. Это предполагает, что ваш физический диск имеет тот же или больший максимальный размер, что и виртуальный диск. В моем случае целью было преобразовать VDI в ZFS zvol, но подход должен быть одинаковым для любого блочного устройства.
Сначала создайте файл 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
чтобы подключить его к виртуальной машине.