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