Table of Contents
In this article, we will discuss about VirtualBox CLI tool called VBoxManage which is available for both Windows and Linux OS. This tool is available with the installation of Oracle VirtualBox in your System. As you might be aware, Oracle VirtualBox is a virtualization software which allows us to run multiple operating systems which includes Microsoft Windows, Linux, Oracle Solaris and Mac OS X at the same time. Developers and Professionals usually prefers VirtualBox for development and testing as it saves both time and resources.
VirtualBox VMs can be managed by both GUI as well as Command Line. Those who love using command line will definitely appreciate the usage of Virtualbox CLI tool called VBoxManage. Although you can use this tool in any of the OS you have but here we will see the usage in Windows 10 OS. In Windows, the executable will be found under C:\Program Files\Oracle\VirtualBox
folder so to use this tool you need to change your folder path. More about VBoxManage.
VBoxManage - An Introduction to VirtualBox CLI with Examples
Also Read: How to Share Folder Between Windows 10 Host OS and Ubuntu 20.04 Guest OS
Example 1: Check VBoxManage Version
If you want to check the version of current installed Virtualbox, then you need to run VBoxManage --version
command as shown below.
NOTE:
administrator
access to go inside VirtualBox folder and run all the below given VBoxManage commands.C:\Program Files\Oracle\VirtualBox>VBoxManage --version
6.1.18r142142
Example 2: List All Running VMs
If you want to know about all the running VMs then you need to use VBoxManage list runningvms
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage list runningvms
"Ubuntu 20.04" {591ea63f-5219-4883-bebc-a8d9254435c1}
Example 3: List all VMs
To list all the registered VMs, you need to use VBoxManage list vms
command as shown below. As you can see from the output, we have below VMs currently registered in the VirtualBox.
C:\Program Files\Oracle\VirtualBox>VBoxManage list vms
"CentOS 8" {03336d89-5996-4240-acf1-ca8d923f00b2}
"OpenSUSE" {fad2e2e4-59df-4048-aee2-9d945fc742bd}
"CentOS 7" {e751fa86-ffb2-4c29-8665-d65c1ab53342}
"Rocky Linux" {0d53d384-536c-46ce-a9e5-91351cd1913c}
"Debian" {640d6a5f-ac72-4dde-9777-34e0dfee62ee}
"Ubuntu 20.04" {591ea63f-5219-4883-bebc-a8d9254435c1}
Example 4: Enable Nested VT-x/AMD-v of a VM
If you want to enable Nested VT-x/AMD-V setting of a VM then you need to use VBoxManage modifyvm <vmname | UUID> --nested-hw-virt on
syntax. In this example we are enabling the setting of Ubuntu 20.04
VM using VBoxManage modifyvm "Ubuntu 20.04" --nested-hw-virt on
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyvm "Ubuntu 20.04" --nested-hw-virt on
Example 5: Show VM Info
If you want to check complete information about a VM then you need to use VBoxManage showvminfo <vmname | UUID>
syntax. In this example, we are checking the details of CentOS 7
VM using VBoxManage showvminfo "CentOS 7"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage showvminfo "CentOS 7"
Name: CentOS 7
Groups: /
Guest OS: Red Hat (64-bit)
UUID: e751fa86-ffb2-4c29-8665-d65c1ab53342
Config file: D:\Virtualbox\CentOS 7\CentOS 7\CentOS 7.vbox
Snapshot folder: D:\Virtualbox\CentOS 7\CentOS 7\Snapshots
Log folder: D:\Virtualbox\CentOS 7\CentOS 7\Logs
Hardware UUID: e751fa86-ffb2-4c29-8665-d65c1ab53342
Memory size 10000MB
Page Fusion: disabled
VRAM size: 16MB
CPU exec cap: 100%
......................................................................
Example 6: Modify the amount of RAM assigned to a VM
If you want to modify the amount of RAM assigned to a VM then you need to VBoxManage modifyvm <vmname | UUID> --memory <RAM_in_MB>
syntax. In this example we are modifying the RAM size of CentOS 8
VM to 1024M
by using VBoxManage modifyvm "CentOS 8" --memory 1024
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyvm "CentOS 8" --memory 1024
You can verify the same by checking Memory size from the output of VBoxManage showvminfo "CentOS 8"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage showvminfo "CentOS 8" | findstr "Memory size" Memory size 1024MB VRAM size: 16MB Configured memory balloon size: 0MB
Example 7: Modify the number of Virtual CPUs assigned to a VM
To modify the number of virtual cpus assigned to a VM, you need to use VBoxManage modifyvm <vmname|UUID> --cpus <num_of_cpus>
syntax. In this example, we are modifying the number of Virtual cpus of CentOS 8 VM to 2 by using VBoxManage modifyvm "CentOS 8" --cpus 2
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage modifyvm "CentOS 8" --cpus 2
You can verify the same by querying number of cpus from VBoxManage showvminfo "CentOS 8"
output as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage showvminfo "CentOS 8" | findstr /I "cpus" Number of CPUs: 2
Example 8: Start a VM
To start a VM, you need to use VBoxManage startvm <vmname|UUID>
syntax. In this example, we are starting CentOS 8 VM by using VBoxManage startvm "CentOS 8"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage startvm "CentOS 8"
Waiting for VM "CentOS 8" to power on...
VM "CentOS 8" has been successfully started.
Example 9: Power Off a VM
If you want to quickly poweroff a VM without saving the data beforehand then you can use VBoxManage controlvm <vmname | UUID> poweroff
syntax. In this example we are powering off CentOS 8
VM using VBoxManage controlvm "CentOS 8" poweroff
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage controlvm "CentOS 8" poweroff
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Example 10: Pause a VM
If you want to put a Virtual Machine on hold then you need to use VBoxManage controlvm <vmname | UUID> pause
syntax. In this example, we are putting CentOS 8
VM on temporary hold using VBoxManage controlvm "CentOS 8" pause
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage controlvm "CentOS 8" pause
Example 11: Resume a VM
If you want to resume a Virtual machine which was previously put on hold then you need to use VBoxManage controlvm <vmname | UUID> resume
syntax. In this example we are resuming CentOS 8 VM which was previously kept on pause state. So to resume this VM, you need to use VBoxManage controlvm "CentOS 8" resume
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage controlvm "CentOS 8" resume
Example 12: Save the Current State of a VM
You can use VBoxManage controlvm <vmname | UUID> savestate
syntax to save the current state of the virtual machine to disk and then stop the VM. In this example, we are saving the current state of CentOS 8 VM to disk and then stopping the VM by using VBoxManage controlvm "CentOS 8" savestate
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage controlvm "CentOS 8" savestate
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Example 13: Reset a VM
To reset a VM, you need to use VBoxManage controlvm <vmname|UUID> reset
syntax. In this example, we are resetting CentOS 8
VM by using VBoxManage controlvm "CentOS 8" reset
command as shown below. Please note that this command might not give you time to save your data so always save your work before running this command.
C:\Program Files\Oracle\VirtualBox>VBoxManage controlvm "CentOS 8" reset
Example 14: Check Available OS Types
If you want to see the list of supported OS types then you need to use VBoxManage list ostypes
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage list ostypes
ID: Other
Description: Other/Unknown
Family ID: Other
Family Desc: Other
64 bit: false
ID: Other_64
Description: Other/Unknown (64-bit)
Family ID: Other
Family Desc: Other
64 bit: true
ID: Windows31
Description: Windows 3.1
Family ID: Windows
Family Desc: Microsoft Windows
64 bit: false
Example 15: Take VM Snapshot
If you want to take the snapshot of your VM then you need to use VBoxManage snapshot <vmname|UUID> take <snapshot_name>
syntax. In this example, we are taking the snapshot of CentOS 8 by using VBoxManage snapshot "CentOS 8" take "21st January Snapshot"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage snapshot "CentOS 8" take "21st January Snapshot"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Snapshot taken. UUID: d871098d-07b6-4f62-b624-80fdb9c2d651
Example 16: List VM Snapshot
To list all the taken snapshots of a particular VM, you need to use VBoxManage snapshot <vmname|UUID> list
syntax. In this example, we are checking all the snapshot of CentOS 8 VM by using VBoxManage snapshot "CentOS 8" list
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage snapshot "CentOS 8" list
Name: 21st January Snapshot (UUID: d871098d-07b6-4f62-b624-80fdb9c2d651) *
Example 17: Restore VM from a Snapshot
If you restore VM from a particular snapshot then you need to use VBoxManage snapshot <vmname|UUID> restore <snapshot_name>
syntax. In this example, we are trying to restore CentOS 8 from 21st January Snapshot by using VBoxManage snapshot "CentOS 8" restore "21st January Snapshot"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage snapshot "CentOS 8" restore "21st January Snapshot"
Restoring snapshot '21st January Snapshot' (3fd1cf99-5497-4c44-b862-daa3d8e34a16)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Example 18: Delete a Snapshot
To delete a snapshot of a VM, you need to use VBoxManage snapshot <vmname|UUID> delete <snapshot_name>
syntax. In this example, we are deleting 21st January Snapshot by using VBoxManage snapshot "CentOS 8" delete "21st January Snapshot"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage snapshot "CentOS 8" delete "21st January Snapshot"
Deleting snapshot '21st January Snapshot' (d871098d-07b6-4f62-b624-80fdb9c2d651)
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Example 19: Delete a VM
To unregister and delete a VM, you need to use VBoxManage unregistervm --delete <vmname | UUID>
syntax. In this example, we are deleting CentOS 8 VM using VBoxManage unregistervm --delete "CentOS 8"
command as shown below.
C:\Program Files\Oracle\VirtualBox>VBoxManage unregistervm --delete "CentOS 8"
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Example 20: Check all the Available Options
If you want to check all the options available with VBoxManage
command then you need to simply run this command.
C:\Program Files\Oracle\VirtualBox>VBoxManage
Oracle VM VirtualBox Command Line Management Interface Version 6.1.18
(C) 2005-2021 Oracle Corporation
All rights reserved.
Usage:
VBoxManage [<general option>] <command>
General Options:
[-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)
Commands:
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
............................................................