VBoxManage

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

Введение

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

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

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

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

Применение

vboxmanage [<general option>] <command>

alias

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

В Linux

sudo vi ~/.bashrc

alias vbman="VBoxManage"

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

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

В PowerShell

notepad $profile

Set-Alias -Name VBoxManage -Value "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" Set-Alias -Name vbman -Value "C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"

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

[-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

PowerShell команда с фильтрацией по типу ОС

vboxmanage list runningvms | Select-String -Pattern "Windows11"

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

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

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 …

PowerShell команда для поиска вариантов Windows 7

vboxmanage list ostypes | Select-String -Pattern "Windows7"

ID / Description: Windows7 -- Windows 7 (32-bit) ID / Description: Windows7_64 -- Windows 7 (64-bit)

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

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

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

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

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

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

vboxmanage unregistervm ubuntu20 --delete

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

Изучить определённую виртуальную машину можно выполнив команду 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.devhops.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.devhops.ru
Количество CPU

Изменить VRAM

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

vboxmanage modifyvm ubuntu20 --vram 16

Проверка

vboxmanage showvminfo ubuntu20 | grep RAM

VRAM size: 16MB

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

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

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

vboxmanage modifyvm ubuntu20 --graphicscontroller vmsvga

графический контроллер vmsvga graphicscontroller VirtualBox изображение с сайта www.devhops.ru
VRAM
VBoxManage: Работа с сетью
dhcpserver
Подключить сетевой адаптер
natnetwork
Отключить сетевой адаптер
Работа с дисками
createhd: Создать диск
Изучить диск
Удалить диск

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

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

vboxmanage startvm ubuntu20

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

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

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

vboxmanage startvm ubuntu20

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

Чтобы остановить виртуальную машину vm_name рекомендуется выполнить сигнал плавного выключения acpipowerbutton если он поддерживается.

vboxmanage controlvm vm_name acpipowerbutton

Если acpipowerbutton не работает, тогда нужно использовать poweroff, который вызывает немедленное отключение.

vboxmanage controlvm ubuntu20 poweroff

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

PowerShell скрипт, который пытается остановить виртуальную машину сперва с помощью acpipowerbutton а затем с помощью poweroff

function stop_vms() { param ( [string] $fullname ) if ($PSBoundParameters.ContainsKey('fullname')) { $vms_list = vboxmanage list runningvms | Select-String -Pattern $fullname if ($null -ne $vms_list) { Write-Host "Stopping $fullname" -f Yellow vboxmanage controlvm $fullname acpipowerbutton } else { Write-Host "VM $fullname is not running" } $vms_list = vboxmanage list runningvms | Select-String -Pattern $fullname if ($null -ne $vms_list) { Write-Host "Power Off to $fullname" -f Yellow vboxmanage controlvm $fullname poweroff } } }

РЕКЛАМА хостинга Beget, которым я пользуюсь более десяти лет

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

Конец рекламы хостинга Beget, который я всем рекомендую.

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

Автор статьи: Андрей Олегович

Похожие статьи
VBoxManage
VirtualBox
Диски
guestcontrol
Сеть
man VBoxManage
ostypes: Доступные ОС

РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе

Конец рекламы. Если там пусто считайте это рекламой моей телеги

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

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

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

@aofeed

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

@aofeedchat

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