Сегодня рассмотрим пример переноса виртуальной машины с VirtualBox в KVM виртуализацию. Возможно, у вас есть несколько важных гостевых машин на VirtualBox. Вместо создания новых гостей KVM с такой же конфигурацией, вы можете легко перенести существующие виртуалки Virtualbox на KVM, как описано в это мануале.
Перенос виртуальных машин Virtualbox на виртуальные машины KVM на Linux
Отключите все виртуальные машины, размещенные на KVM и VirtualBox.
Далее необходимо зайти на VirtualBox и посмотреть какой диск использовался для хранения нашей виртуальной машины. Если динамический, то надо сделать его копию в статический vdi (я использую этот формат). Это можно сделать либо в графической морде VirtualBox, либо в командной строке:
VBoxManage clonehd dynamic.vdi static.vdi --format VDI --variant Fixed
Формат образа диска по умолчанию у виртуальной машины Virtualbox — VDI.
Мы можем найти список образов виртуальных дисков и их расположение с помощью команды:
vboxmanage list hdds
или,
VBoxManage list hdds
Пример вывода:
UUID: 8345103c-5113-8399-4517-681002110040 Parent UUID: base State: created Type: normal (base) Location: /home/user/VirtualBox VMs/ubnsrv20.04/ubnsrv 20.04.vdi Storage format: VDI Capacity: 10240 MBytes Encryption: disabled
Как видно из вывода у меня она виртуальная машина Virtualbox, расположенная по пути /home/user/VirtualBox VMs/ubnsrv_20.04/ubnsrv_20.04.vdi.
Теперь можно пойти двумя путями. Первый путь актуален для Windows виртуальных машин. Второй в большей степени для Linux:
Готовим систему Windows к переносу.
Выше я описывал как преобразовать диск из динамического в статический, назовем его static.vdi. Примонтируем его вместо динамического и удаляем VirtualBox Guest Tools.
Для успешной работы Windows необходимо иметь в наличии драйвера VirtIO для KVM. Скачиваем нужные с офф. сайта вот ссылка.
Рекомендуется сначала установить драйверы в гостевой системе, а уже после этого подключать или изменять устройства с целью использования паравиртуализированных драйверов. Для блочных устройств, на которых расположены корневые файловые системы или другие блочные устройства, необходимые для загрузки гостя, потребуется установить драйверы, прежде чем приступить к изменению настроек устройства.
Готовим систему Linux к переносу.
Преобразуем образа ubnsrv 20.04.vdi в формат необработанного диска с помощью команды «vboxmanage»:
vboxmanage clonehd --format RAW "/home/user/VirtualBox VMs/ubnsrv_20.04/ubnsrv_20.04.vdi" ubnsrv_20.04.raw
Пример вывода:
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Clone medium created in format 'RAW'. UUID: 8345103c-5113-8399-4517-681002110040
Т.к. образ RAW является необработанным форматом диска (не сжатым), то он занимает много свободного пространства на вашем HDD/SSD.
Давайте преобразуем формат образа RAW в формат диска KVM qcow2 со сжитием , с помощью команды qemu-img:
qemu-img convert -f raw ubnsrv_20.04.raw -O qcow2 ubnsrv_20.04.qcow2
Можете попробовать преобразовать формат VDI сразу в формат qcow2
qemu-img convert -f vdi ubnsrv_20.04.vdi -O qcow2 ubnsrv_20.04.qcow2
Мы конвертировали нашу виртуальную машину из формата VDI, т.е. образа диска Virtualbox в формат образа KVM — qcow2.
Теперь вы можете импортировать образ диска на существующий компьютер KVM или создать новый экземпляр с этим вновь преобразованным образом диска KVM из командной строки или с помощью любых графических приложений управления KVM, таких как Virt-manager или веб-консоль Cockpit.