Export и Import виртуальных машин VirtualBox


$ vboxmanage --version
7.0.16r162802


Export виртуальной машины VirtualBox


Подготовка к Export’у виртуальной машины

Делаю:
2024.05.12


Может быть использован как вариант создания резервной копии или для создания копии уже работающей виртуальной машины.


// Получаю список зарегистрированных виртуальных машин
$ vboxmanage list vms
"notes" {0d9127e3-8a53-4ce2-854f-d0501532ba56}


// Выключить виртуальную машину, при необходимости
$ VBoxManage controlvm ${VM} poweroff


$ export VM=notes
$ export VM_HOME=${HOME}/machines
$ export VM_BACKUPS=${VM_HOME}/backups


$ echo ${VM}
$ echo ${VM_HOME}
$ echo ${VM_BACKUPS}


Команды Export’a виртуальной машины

// Создаю каталог для бекапов (при необходимости)
$ mkdir -p ${VM_BACKUPS}/${VM}


// Экспортировать виртуальную машину
$ VBoxManage export ${VM} -o ${VM_BACKUPS}/${VM}/${VM}.ovf


Импорт виртуальной машины VirtualBox


Подготовка к Import виртуальной машины

Делаю:
2023.12.09


// Задаем переменную с именем импортируемой виртуальной машины.
$ export vm=notes

$ export VM_HOME=${HOME}/machines
$ echo ${HOME}/machines


// Создаем каталоги для виртуальной машины и для snapshots
$ mkdir -p ${VM_HOME}/${vm}/snapshots


// Определяем каталог, куда следует выполнить импорт
$ VBoxManage setproperty machinefolder ${VM_HOME}/${vm}


// Посмотреть переменные
// $ vboxmanage list systemproperties | grep folder


Import виртуальной машины

Делаю:
2023.12.09


$ export vm=notes

// Переходим в каталог с бекапами виртуальных машинам
$ cd ${VM_BACKUPS}

// Переходим в каталог с нужной виртуальной машиной
$ cd <machine_name>

$ VBoxManage import ./Notes.ovf


***
    0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Successfully imported the appliance.


// Посмотреть список виртуальных машин
$ vboxmanage list vms
"Notes" {d30e0fc7-4dfc-4f5b-8518-250b9a5cfb03}


// Если нужно переименовать импортированную виртуальную машину
// $ VBoxManage modifyvm Notes --name ${vm}


$ vboxmanage list vms
"notes" {d30e0fc7-4dfc-4f5b-8518-250b9a5cfb03}


// Определяем каталог для снапшотов
$ VBoxManage modifyvm ${vm} --snapshotfolder ${VM_HOME}/${vm}/snapshots


Запустить импортированную виртуальную машину

Делаю:
2023.12.09


ifconfig на хост машине должен выводить vboxnet0.
vboxnet0 - виртуальный адаптер хостовой машины.

$ ifconfig vboxnet0

Если виртуального адаптера нет, нуно его самостоятельно создать.

$ VBoxManage hostonlyif create


$ vboxmanage list hostonlyifs
Name:            vboxnet0
GUID:            786f6276-656e-4074-8000-0a0027000000
DHCP:            Disabled
IPAddress:       192.168.56.1
NetworkMask:     255.255.255.0
IPV6Address:
IPV6NetworkMaskPrefixLength: 0
HardwareAddress: 0a:00:27:00:00:00
MediumType:      Ethernet
Wireless:        No
Status:          Down
VBoxNetworkName: HostInterfaceNetworking-vboxnet0


// Присвоить ip, если у него нет.
$ VBoxManage hostonlyif ipconfig vboxnet0 --ip 192.168.56.1


// Стартовать
$ sudo ifconfig vboxnet0 up


$ ifconfig vboxnet0
vboxnet0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.56.1  netmask 255.255.255.0  broadcast 192.168.56.255
        ether 0a:00:27:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Тоже самое можно сделать в консоли управления VirtualBox.

File -> Network Manager -> Host-only Networks -> Create -> ip 192.168.56.1 -> DHCP Server (Disabled)


$ vm=notes
$ vboxmanage startvm ${vm} -type headless &


// Подключиться
$ ssh -oHostKeyAlgorithms=+ssh-dss 192.168.56.11


Подключиться без консоли VirtubalBox

Делаю:
Когда-то до 2023

Установить Extension Packs (Там присутствуют какие-то лицензионные огранчения).


$ VBoxManage controlvm ${vm} poweroff


$ VBoxManage modifyvm ${vm} \
    --vrde on \
    --vrdemulticon on \
    --vrdeauthtype null \
    --vrdeaddress 192.168.1.101 \
    --vrdeport 3389


192.168.1.101 - хост на котором запущен virtualbox


$ vboxmanage startvm ${vm} -type headless &


$ sudo apt-get install -y rdesktop


$ rdesktop \
-r sound:local \
-k common  \
-g  1600x1024 \
10.20.65.225:3389


Login

$ su - root
# rm /etc/udev/rules.d/70-persistent-net.rules
# reboot