VBoxManage

Содержание
Введение
Использование
Основные опции
Команды
list vms: Существующие/Запущенные виртуальные машины
Список доступных ОС
createvm: Создать машину
showvminfo: Информация о машине
Задать размер RAM/CPU/VRAM
dhcpserver
Подключить сетевой адаптер
natnetwork
Отключить сетевой адаптер
createhd: Создать диск
Изучить/Удалить диск
startvm: Запуск виртуальной машины
Остановка виртуальной машины
Create a clone of an existing Oracle VM VirtualBox virtual machine
--delete: Удалить виртуальную машину
GNUmakefile
Похожие статьи

Введение

VBoxManage - это интерфейс командной строки для виртуальной машины Oracle VirtualBox.

С его помощью вы можете полностью управлять Oracle VM VirtualBox из командной строки операционной системы вашего хоста.

VBoxManage поддерживает все функции, к которым предоставляет вам доступ графический пользовательский интерфейс, но он поддерживает гораздо больше.

Он предоставляет все функции механизма виртуализации, даже те, к которым невозможно получить доступ из графического интерфейса.

Применение

VBoxManage [<general option>] <command>

alias

VBoxManage это очень длинная команда, я создаю alias

sudo vi ~/.bashrc

alias vbman="VBoxManage"

Либо с помощью sed

sed -i -e '$aalias vbman="VBoxManage"' ~/.bashrc

Основные опции

[-v|--version] print version number and exit [-q|--nologo] suppress the logo [--settingspw <pw>] provide the settings password [--settingspwfile <file>] provide a file containing the settings password [@<response-file>] load arguments from the given response file (bourne style)

Команды

Полный список доступных команд вы можете изучить в статье VBoxManage man

Список существующих ВМ

Список виртуальных машин можно получить, с помощью команды list с опцией vms

list [--long|-l] [--sorted|-s] vms|runningvms|ostypes|hostdvds|hostfloppies| intnets|bridgedifs|hostonlyifs|natnets|dhcpservers| hostinfo|hostcpuids|hddbackends|hdds|dvds|floppies| usbhost|usbfilters|systemproperties|extpacks| groups|webcams|screenshotformats|cloudproviders| cloudprofiles|cloudnets

VBoxManage list vms

Если вы только начали работу с VirtualBox этот список пуст

Если какие-то виртуальные машины установлены, он будет выглядеть примерно так

"ubuntu" {9ec5b764-4dce-488b-813a-ede712e2eb38} "ubuntu2" {c59d88dc-d203-4c3c-a3da-4fd6b8b22559} "CeOS7-DNS-149" {0ba8f8cf-359c-4362-b523-8452511a8ade} "CeOS7-min-nat2-192-168-15-4" {65b04638-5681-4a3f-8680-2c040e53878b} "CeOS7-net-acc-tgt__ROUTER__181" {cca3202c-2e82-40d9-9332-7b7cf83a45a2} "CeOS7_XRDP_Postgres_master-109" {e8be14a7-7d00-4a11-8417-7dbb15072f2e} "w10pr-115" {47af8e29-ec5f-46f4-8b31-1e55561bee02} "NatNetwork1-Host" {4d186d5c-ab59-48a9-8f87-ff3ad3e7dd25} "server1-186" {8296a18c-432d-46a1-88c4-d5131b5c99e7}

Запущенные машины

vboxmanage list runningvms

Список доступных ОС

Можно получить полный список выполнив

VBoxManage list ostypes

… ID: Debian_64 Description: Debian (64-bit) Family ID: Linux Family Desc: Linux 64 bit: true … ID: RedHat_64 Description: Red Hat (64-bit) Family ID: Linux Family Desc: Linux 64 bit: true … ID: Ubuntu_64 Description: Ubuntu (64-bit) Family ID: Linux Family Desc: Linux 64 bit: true …

Полный список поддерживаемых операционных систем вы можете изучить в статье ostypes

Создать виртуальную машину

Чтобы создать машину под ОС Ubuntu нужно выполнить команду createvm с --ostype Ubuntu_64 и другими аргументами

VBoxManage createvm --name "ubuntu20" --ostype Ubuntu_64 --basefolder /home/andrei/VirtualBox\ VMs/mng --register

Информация о машине

Изучить определённую виртуальную машину можно выполнив команду showvminfo

В качестве аргумента нужно передать имя машины либо её UID. Изучим машину ubuntu из этого списка

Следующие две команды дадут одинаковый результат

VBoxManage showvminfo ubuntu
VBoxManage showvminfo 9ec5b764-4dce-488b-813a-ede712e2eb38

Name: ubuntu Groups: /Other OS Guest OS: Ubuntu (64-bit) UUID: 9ec5b764-4dce-488b-813a-ede712e2eb38 Config file: /home/andrei/VirtualBox VMs/Other OS/ubuntu/ubuntu.vbox Snapshot folder: /home/andrei/VirtualBox VMs/Other OS/ubuntu/Snapshots Log folder: /home/andrei/VirtualBox VMs/Other OS/ubuntu/Logs Hardware UUID: 9ec5b764-4dce-488b-813a-ede712e2eb38 Memory size: 6144MB Page Fusion: disabled VRAM size: 16MB CPU exec cap: 100% HPET: disabled CPUProfile: host Chipset: piix3 Firmware: BIOS Number of CPUs: 1 PAE: disabled Long Mode: enabled Triple Fault Reset: disabled APIC: enabled X2APIC: enabled Nested VT-x/AMD-V: disabled CPUID Portability Level: 0 CPUID overrides: None Boot menu mode: message and menu Boot Device 1: Floppy Boot Device 2: DVD Boot Device 3: HardDisk Boot Device 4: Not Assigned ACPI: enabled IOAPIC: enabled BIOS APIC mode: APIC Time offset: 0ms RTC: UTC Hardware Virtualization: enabled Nested Paging: enabled Large Pages: disabled VT-x VPID: enabled VT-x Unrestricted Exec.: enabled Paravirt. Provider: Default Effective Paravirt. Prov.: KVM State: powered off (since 2022-01-28T13:44:36.817000000) Graphics Controller: VMSVGA Monitor count: 1 3D Acceleration: disabled 2D Video Acceleration: disabled Teleporter Enabled: disabled Teleporter Port: 0 Teleporter Address: Teleporter Password: Tracing Enabled: disabled Allow Tracing to Access VM: disabled Tracing Configuration: Autostart Enabled: disabled Autostart Delay: 0 Default Frontend: VM process priority: default Storage Controller Name (0): IDE Storage Controller Type (0): PIIX4 Storage Controller Instance Number (0): 0 Storage Controller Max Port Count (0): 2 Storage Controller Port Count (0): 2 Storage Controller Bootable (0): on Storage Controller Name (1): SATA Storage Controller Type (1): IntelAhci Storage Controller Instance Number (1): 0 Storage Controller Max Port Count (1): 30 Storage Controller Port Count (1): 1 Storage Controller Bootable (1): on IDE (1, 0): /home/andrei/.config/VirtualBox/VBoxGuestAdditions_6.1.26.iso (UUID: 037c30e4-c49f-490d-a244-51d54c51ad61) SATA (0, 0): /home/andrei/VirtualBox VMs/Other OS/ubuntu/ubuntu.vdi (UUID: 5ce895f5-9bd5-40ac-9214-9950bf50b254) NIC 1: MAC: 0800271F61A9, Attachment: NAT Network 'NatNetwork', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none NIC 2: MAC: 0800271D428E, Attachment: Host-only Interface 'vboxnet0', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0, Promisc Policy: deny, Bandwidth group: none NIC 3: disabled NIC 4: disabled NIC 5: disabled NIC 6: disabled NIC 7: disabled NIC 8: disabled Pointing Device: USB Tablet Keyboard Device: PS/2 Keyboard UART 1: disabled UART 2: disabled UART 3: disabled UART 4: disabled LPT 1: disabled LPT 2: disabled Audio: enabled (Driver: PulseAudio, Controller: AC97, Codec: AD1980) Audio playback: enabled Audio capture: disabled Clipboard Mode: disabled Drag and drop Mode: disabled VRDE: disabled OHCI USB: enabled EHCI USB: disabled xHCI USB: disabled USB Device Filters: <none> Bandwidth groups: <none> Shared folders:<none> Capturing: not active Capture audio: not active Capture screens: 0 Capture file: /home/andrei/VirtualBox VMs/Other OS/ubuntu/ubuntu.webm Capture dimensions: 1024x768 Capture rate: 512kbps Capture FPS: 25kbps Capture options: Guest: Configured memory balloon size: 0MB

Изучить только размер оперативной памяти

VBoxManage showvminfo ubuntu20 | grep Memory

Memory size: 128MB

Изображение баннера

Изменить основные параметры

VBoxManage modifyvm ubuntu20 --memory 8192 --cpus 2 --vram 16 --graphicscontroller vmsvga

Изменить размер оперативной памяти

Чтобы изменить RAM на машине ubuntu20

VBoxManage modifyvm ubuntu20 --memory 8192

VBoxManage showvminfo ubuntu20 | grep Memory

Memory size: 8192MB

System Motherboard VirtualBox изображение с сайта www.eth1.ru
Размер RAM

По пока-что неясным причинам VirtualBox несколько раз принимал значение --memory не в Mb как заявлено в спецификации а в байтах, то есть приходилось задавать --memory 8589934592

Изменить CPU

Чтобы изменить количество CPU на машине ubuntu20

VBoxManage modifyvm ubuntu20 --cpus 2

Проверка

VBoxManage showvminfo ubuntu20 | grep CPUs

Number of CPUs: 2

System Processor VirtualBox изображение с сайта www.eth1.ru
Количество CPU

Изменить VRAM

Чтобы изменить vram на машине ubuntu20

VBoxManage modifyvm ubuntu20 --vram 16

Проверка

VBoxManage showvminfo ubuntu20 | grep RAM

VRAM size: 16MB

Display Screen размер vram VirtualBox изображение с сайта www.eth1.ru
VRAM

Изменить графический контроллер

Чтобы изменить графический контроллер машины ubuntu20 на vmsvga (возможные варианты none|vboxvga|vmsvga|vboxsvga)

VBoxManage modifyvm ubuntu20 --graphicscontroller vmsvga

графический контроллер vmsvga graphicscontroller VirtualBox изображение с сайта www.eth1.ru
VRAM

dhcpserver

Список существующих DHCP серверов

VBoxManage list dhcpservers

Создать новый DHCP сервер для сети NatNetwork1

VBoxManage dhcpserver add --network=NatNetwork1 --server-ip=10.0.2.3 --netmask=255.255.255.0 --lower-ip=10.0.2.4 --upper-ip=10.0.2.254 --enable

Пример вывода ip a для интерфейса nic2 подлкюченного к такому DHCP серверу

… 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether 08:00:27:4c:9e:d7 brd ff:ff:ff:ff:ff:ff inet 10.0.2.4/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s8 valid_lft 404sec preferred_lft 404sec inet6 fe80::2650:3e88:7062:aec6/64 scope link noprefixroute valid_lft forever preferred_lft forever

Подключить сетевой адаптер

Возможные варианты подключения (подробнее о каждом здесь)

none|null|nat|natnetwork|bridged|intnet|hostonly|generic

hostonly

Прежде чем подключать hostonly адаптер нужно проверить включен ли DHCP сервер для HostInterfaceNetworking

VBoxManage list dhcpservers

У меня они обычно в самом верху - над natnetwork и другими

NetworkName: HostInterfaceNetworking-vboxnet0 Dhcpd IP: 192.168.56.100 LowerIPAddress: 192.168.56.101 UpperIPAddress: 192.168.56.254 NetworkMask: 255.255.255.0 Enabled: Yes Global Configuration: minLeaseTime: default defaultLeaseTime: default maxLeaseTime: default Forced options: None Suppressed opts.: None 1/legacy: 255.255.255.0 Groups: None Individual Configs: None …

Создать новый hostonly интерфейс можно командой

VBoxManage hostonlyif create

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Interface 'vboxnet0' was successfully created

Изучить список существующих

VBoxManage list hostonlyifs

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

Чтобы подключить первый сетевой адаптер на машине ubuntu20 в режиме hostonly

VBoxManage modifyvm ubuntu20 --nic1 hostonly

или в случае, когда нужно явно указать hostonly сеть

VBoxManage modifyvm ubuntu20 --nic1 hostonly --hostonlyadapter1 vboxnet0

natnetwork

список|создать|переключить|изменить|удалить

Список существующих natnetwork можно получить командой

VBoxManage natnetwork list

NAT Networks: 0 networks found

Создать новую natnetwork и включить dhcp

VBoxManage natnetwork add --netname NatNetwork1 --network "192.168.56.0/24" --enable --dhcp on

Сменить сеть

Чтобы переключить natnetwork c NatNetwork на NatNetwork1 на втором сетевом адапетере (nic2) машины ubuntu20

VBoxManage modifyvm ubuntu20 --natnetwork2 NatNetwork1

Можно явно указать адаптер

VBoxManage modifyvm ubuntu20 --nic2 natnetwork --natnetwork2 NatNetwork1

Изменить natnetwork

VBoxManage natnetwork modify --netname NatNetwork1 --network 10.0.2.0/24

Удалить natnetwork

VBoxManage natnetwork remove --netname NatNetwork1

Отключить сетевой адаптер

Чтобы отключить первый сетевой адаптер на машине ubuntu20

VBoxManage modifyvm ubuntu20 --nic1 none

Для наглядности демонстрирую как статус none выглядит в UI

Сетевой адаптер nic1 в статусе none VirtualBox изображение с сайта www.eth1.ru
Сетевой адаптер none

Создать диск

Чтобы создать диск для машины ubuntu20 и разместить его в той же директории где находятся другие файлы, связанные с ubuntu20 выполните

VBoxManage createhd --filename /home/andrei/VirtualBox\ VMs/mng/ubuntu20/ubuntu20.vdi \
--size 25600 --variant Standard

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Medium created. UUID: cf68bdfc-f0e9-48c3-8bfc-5973ad0f1917

VBoxManage storagectl ubuntu20 --name "SATA Controller" --add sata --bootable on
VBoxManage storageattach ubuntu20 --storagectl "SATA Controller" --port 0 --device 0 --type hdd --medium /home/andrei/VirtualBox\ VMs/mng/ubuntu20/ubuntu20.vdi
VBoxManage storagectl ubuntu20 --name "IDE Controller" --add ide
VBoxManage storageattach ubuntu20 --storagectl "IDE Controller" --port 0 --device 0 --type dvddrive --medium /home/andrei/Downloads/linux_isos/ubuntu-20.04.3-desktop-amd64.iso

Список дисков

Чтобы изучить зарегистрированные в VirtualBox диски выполните

VBoxManage list hdds

Среди списка всех дисков можно найти созданный в предыдущем параграфе

… UUID: cf68bdfc-f0e9-48c3-8bfc-5973ad0f1917 Parent UUID: base State: created Type: normal (base) Location: /home/andrei/VirtualBox VMs/mng/ubuntu20/ubuntu20.vdi Storage format: VDI Capacity: 25600 MBytes Encryption: disabled …

Удалить диск

Чтобы удалить диск найдите его UUID и выполните closemedium disk с флагом --delete

VBoxManage closemedium disk cf68bdfc-f0e9-48c3-8bfc-5973ad0f1917 --delete

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Запустить установку

Чтобы теперь запустить установку гостевой ОС достаточно запустить виртуальную машину

VBoxManage startvm ubuntu20

Запустит графический режим установки

startvm: Запуск виртуальной машины

Чтобы запустить виртуальную машину ubuntu20 нужно выполнить

VBoxManage startvm ubuntu20

Остановка виртуальной машины

Чтобы остановить виртуальную машину ubuntu20 нужно выполнить

VBoxManage controlvm ubuntu20 poweroff

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

Удалить виртуальную машину

Чтобы удалить виртуальную машину нужно снять её с регистрации с флагом delete

VBoxManage unregistervm ubuntu20 --delete

Изображение баннера

GNUmakefile для установки Linux

Чтобы создать новую виртуальную машину с Host-Only и NatNetwork адаптерами и установить туда CentOS7 скопируте этот GNUmakefile и выполните

make new-linux-vm

Чтобы установить Ubuntu 20.04.3 раскомментируйте блок с Ubuntu и закоментируйте блок с CentOS7

# Choose available name # Uncomment required OS LINUX_VM_NAME=centos7 # CENTOS 7 LINUX_REPO="centos.mirror.far.fi" LINUX_VERSION=7.9.2009 LINUX_ISO=CentOS-7-x86_64-DVD-2009.iso LINUX_URL=http://$(LINUX_REPO)/$(LINUX_VERSION)/isos/x86_64/$(LINUX_ISO) OS_TYPE=RedHat_64 # UBUNTU # LINUX_REPO="mirror.yandex.ru/ubuntu-releases" # LINUX_VERSION=20.04.3 # LINUX_ISO=ubuntu-$(LINUX_VERSION)-desktop-amd64.iso # LINUX_URL=https://$(LINUX_REPO)/$(LINUX_VERSION)/$(LINUX_ISO) # OS_TYPE=Ubuntu_64 ISO_DIR=/home/$$(whoami)/virtualbox/iso/ VM_BASEFOLDER=/home/$$(whoami)/virtualbox/vms/ VDI_DIR=/home/$$(whoami)/virtualbox/vdi/ .PHONY:download-linux download-linux: $(check_iso_dir) @if [ ! -f $(ISO_DIR)$(LINUX_ISO) ]; then \ wget -c "$(LINUX_URL)" \ -O $(ISO_DIR)$(LINUX_ISO); \ else \ echo "INFO: $(ISO_DIR)$(LINUX_ISO) already exists"; \ fi .PHONY:new-linux-vm new-linux-vm: download-linux create-linux-vm mod-linux-vm create-linux-disk start-linux-vm .PHONY:new-linux-vm-nn new-linux-vm-nn: download-linux create-linux-vm create-natnetwork mod-linux-vm create-linux-disk start-linux-vm .PHONY:create-linux-vm create-linux-vm: $(check_vms_dir) @VBoxManage createvm --name $(LINUX_VM_NAME) \ --ostype $(OS_TYPE) --basefolder $(VM_BASEFOLDER) \ --register; .PHONY:mod-linux-vm-old mod-linux-vm-old: HOIFS := $(VBoxManage list hostonlyifs) mod-linux-vm-old: @echo modifying $(LINUX_VM_NAME) @if [ ! $(HOIFS) ]; then \ VBoxManage hostonlyif create; \ else \ echo "INFO: found Host-Only-Interfaces "$(HOIFS); \ fi @VBoxManage natnetwork add --netname NatNetwork1 \ --network "192.168.56.0/24" --enable \ --dhcp on \ @VBoxManage modifyvm $(LINUX_VM_NAME) \ --memory 8192 \ --cpus 2 --vram 16 --graphicscontroller vmsvga \ --nic1 hostonly --hostonlyadapter1 vboxnet0 \ --nic2 natnetwork --natnetwork2 NatNetwork1; .PHONY:mod-linux-vm mod-linux-vm: HOIFS := $(shell VBoxManage list hostonlyifs | grep vboxnet0) mod-linux-vm: @echo "existing Host-Only interfaces:"; @echo $(HOIFS); @echo "------------------------------"; @echo modifying $(LINUX_VM_NAME) @if [ -z $(HOIFS) ]; then \ echo "creating new hostonlyif"; \ VBoxManage hostonlyif create; \ else \ echo "INFO: found Host-Only-Interfaces "$(HOIFS); \ fi @VBoxManage modifyvm $(LINUX_VM_NAME) \ --memory 8192 \ --cpus 2 --vram 16 --graphicscontroller vmsvga \ --nic1 hostonly --hostonlyadapter1 vboxnet0 \ --nic2 natnetwork --natnetwork2 NatNetwork1 \ --nic3 bridged --bridgeadapter3 eno1; .PHONY:create-natnetwork create-natnetwork: NATN1 := $(shell VBoxManage list natnetworks | grep NatNetwork1) create-natnetwork: @echo $(NATN1); @if [ -z $(NATN1) ]; then \ echo "NatNetwork1 not found. Creating..."; \ VBoxManage natnetwork add \ --netname NatNetwork1 \ --network "10.0.2.0/24" --enable \ --dhcp on; \ else \ echo "INFO: NatNetwork1 already exists"; \ fi .PHONY:create-linux-disk create-linux-disk: $(check_vdi_dir) @VBoxManage createhd --filename $(VDI_DIR)$(LINUX_VM_NAME).vdi --size 25600 \ --variant Standard @VBoxManage storagectl $(LINUX_VM_NAME) --name "SATA Controller" \ --add sata --bootable on @VBoxManage storageattach $(LINUX_VM_NAME) --storagectl "SATA Controller" \ --port 0 --device 0 --type hdd --medium $(VDI_DIR)$(LINUX_VM_NAME).vdi @VBoxManage storagectl $(LINUX_VM_NAME) --name "IDE Controller" --add ide @VBoxManage storageattach $(LINUX_VM_NAME) --storagectl "IDE Controller" \ --port 0 --device 0 --type dvddrive --medium $(ISO_DIR)$(LINUX_ISO) .PHONY:start-linux-vm start-linux-vm: @echo "-------------------------------------"; @echo "Starting VM $(LINUX_VM_NAME)"; @VBoxManage startvm $(LINUX_VM_NAME) # for headless start use # @VBoxManage startvm $(LINUX_VM_NAME)--type=headless .PHONY:delete-linux-vm delete-linux-vm: @VBoxManage unregistervm $(LINUX_VM_NAME) --delete .PHONY:delete-linux-disk delete-linux-disk: rm -rf $(VDI_DIR)$(LINUX_VM_NAME).vdi define check_iso_dir @if [ ! -d $(ISO_DIR) ]; then \ echo "INFO: Creating dir "$(ISO_DIR); \ mkdir -p $(ISO_DIR); \ else \ echo "INFO: Directory "$(ISO_DIR)" already exists"; \ fi endef define check_vms_dir @if [ ! -d $(VM_BASEFOLDER) ]; then \ echo "INFO: Creating dir "$(VM_BASEFOLDER); \ mkdir -p $(VM_BASEFOLDER); \ else \ echo "INFO: Directory "$(VM_BASEFOLDER)" already exists"; \ fi endef define check_vdi_dir @if [ ! -d $(VDI_DIR) ]; then \ echo "INFO: Creating dir "$(VDI_DIR); \ mkdir -p $(VDI_DIR); \ else \ echo "INFO: Directory "$(VDI_DIR)" already exists"; \ fi endef

Похожие статьи
VirtualBox
Установка
NAT Network
VBoxManage Manual
Виртуальная CentOS 7 на Ubuntu
Терминал VirtualBox
Windows 7 на VirtualBox Debian
Разбор ошибок

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: