As briefly mentioned in Alternative Front Ends, VBoxManage is the CLI to Oracle VirtualBox. With it, you can control Oracle VirtualBox from the command line of your host operating system. VBoxManage supports all the features that the graphical user interface gives you access to, but it supports a lot more than that. It exposes all the features of the virtualization engine, even those that cannot be accessed from the GUI.
You will need to use the command line if you want to do the following:
Use a different user interface than the main GUI such as the VBoxHeadless server.
Control some of the more advanced and experimental configuration settings for a VM.
There are two main things to keep in mind when using VBoxManage. First, VBoxManage must always be used with a specific subcommand, such as list or createvm or startvm. All the subcommands that VBoxManage supports are described in detail in VBoxManage.
Second, most of these subcommands require that you specify a particular virtual machine after the subcommand. There are two ways you can do this:
You can specify the VM name, as it is shown in the Oracle VirtualBox GUI. Note that if that name contains spaces, then you must enclose the entire name in double quotes. This is always required with command line arguments that contain spaces. For example:
VBoxManage startvm "Windows XP"
You can specify the UUID, which is the internal unique identifier that Oracle VirtualBox uses to refer to the virtual machine. Assuming that the VM called "Windows XP" has the UUID shown below, the following command has the same effect as the previous example:
VBoxManage startvm 670e746d-abea-4ba6-ad02-2a3b043810a5
You can enter VBoxManage list vms to have all currently registered VMs listed with their respective names and UUIDs.
Some typical examples of how to control Oracle VirtualBox from the command line are listed below:
To create a new virtual machine from the command line and immediately register it with Oracle VirtualBox, use VBoxManage createvm with the --register option, as follows:
$ VBoxManage createvm --name "SUSE 15.2" --register Virtual machine 'SUSE 15.2' is created. UUID: c89fc351-8ec6-4f02-a048-57f4d25288e5 Settings file: '/home/username/VirtualBox VMs/SUSE 15.2/SUSE 15.2.vbox'
As can be seen from the above output, a new virtual machine has been created with a new UUID and a new XML-formatted settings file.
For more details, see VBoxManage createvm.
To show the configuration of a particular VM, use VBoxManage showvminfo. See VBoxManage showvminfo for details and an example.
To change settings while a VM is powered off, use VBoxManage modifyvm. For example:
VBoxManage modifyvm "Windows XP" --memory 512
See also VBoxManage modifyvm.
To change the storage configuration, such as to add a storage controller and then a virtual disk, use VBoxManage storagectl and VBoxManage storageattach. See VBoxManage storagectl and VBoxManage storageattach.
To start a VM that is currently powered off, use VBoxManage startvm. See VBoxManage startvm.
To change a running VM's setttings or change its state (such as pausing, saving, or powering off the VM) use VBoxManage controlvm See VBoxManage controlvm.
When running VBoxManage without parameters or when supplying an invalid command line, the following command syntax list is shown. Note that the output will be slightly different depending on the host platform. If in doubt, check the output of VBoxManage for the commands available on your particular host.
Each time VBoxManage is invoked, only one command can be executed. However, a command might support several subcommands which then can be invoked in one single call. The following sections provide detailed reference information on the different commands.
-v|--version: Show the version of this tool and exit.
--nologo: Suppress the output of the logo information. This option is useful for scripts.
--settingspw: Specify a settings password.
--settingspwfile: Specify a file containing the settings password.
The settings password is used for certain settings which need to be stored in encrypted form for security reasons. At the moment, the only encrypted setting is the iSCSI initiator secret, see VBoxManage storageattach. As long as no settings password is specified, this information is stored in plain text. After using the --settingspw|--settingspwfile option once, it must be always used. Otherwise, the encrypted setting cannot be unencrypted.
Oracle VirtualBox command-line interface
The VBoxManage command is the command-line interface (CLI) for the Oracle VirtualBox software. The CLI supports all the features that are available with the Oracle VirtualBox graphical user interface (GUI). In addition, you can use the VBoxManage command to manage the features of the virtualization engine that cannot be managed by the GUI.
Each time you invoke the VBoxManage command, only one command is executed. Note that some VBoxManage subcommands invoke several subcommands.
Run the VBoxManage command from the command line of the host operating system (OS) to control Oracle VirtualBox software.
The VBoxManage command is stored in the following locations on the host system:
Linux: /usr/bin/VBoxManage
Mac OS X: /Applications/VirtualBox.app/Contents/MacOS/VBoxManage
Oracle Solaris: /opt/VirtualBox/bin/VBoxManage
Windows: C:\Program Files\Oracle\VirtualBox\VBoxManage.exe
The VBoxManage command performs particular tasks by using subcommands, such as list, createvm, and startvm. See the associated information for each VBoxManage subcommand.
If required, specify the VM by its name or by its Universally Unique Identifier (UUID).
Use the VBoxManage list vms command to obtain information about all currently registered VMs, including the VM names and associated UUIDs.
Note that VM names which contain spaces or special characters must be enclosed in quotes.
Suppresses the output of the logo information, which is useful for scripts.
The short version of this option is -q.
Specifies the settings password. You can optionally specify the password as an argument to this option. If you do not specify the password in this way, the VBoxManage command prompts you for the password.
The settings password is a security feature that encrypts stored settings, which are stored as plain text by default.
Settings which have been encrypted are done so using a one-way encryption algorithm so cannot be decrypted. Thus, if the settings are encrypted you must include the --settingspw or --settingspwfile option every time VBoxManage is used.
Only the iSCSI secret is encrypted at this time.
Specifies the file that contains the settings password.
Shows version information about the VBoxManage command.
The short version of this option is -V.
Loads arguments from the specified Bourne shell response file.
Specifies one of the VBoxManage subcommands, such as controlvm, createvm, list, modifyvm, showvminfo, startvm, storageattach, and storagectl.
Each subcommand is described in its own command topic, some of which are shown in See Also sections.
The following command creates a virtual machine called
Win8
and registers it with Oracle VirtualBox by
using the --register option.
$ VBoxManage createvm --name "Win8" --register Virtual machine 'Win8' is created. UUID: UUID-string Settings file: '/home/username/VirtualBox VMs/Win8/Win8.vbox'
The command output shows that the Win8
VM is
assigned a UUID and an XML machine settings file.
You can use the VBoxManage showvminfo command to view the configuration information of a VM.
The following example uses the VBoxManage
modifyvm command to change the amount of memory for the
Windows XP
VM to be 1024 megabytes:
$ VBoxManage modifyvm "Windows XP" --memory 1024
Note that you can use the VBoxManage modifyvm command only for VMs that are powered off.
You can use the VBoxManage storagectl command
or the VBoxManage storageattach command to
modify the storage configuration for a VM. For example, to create
a SATA storage controller called sata01
and add
it to the ol7
VM:
$ VBoxManage storagectl ol7 --name "sata01" --add sata
Use the VBoxManage startvm command to start a
VM that is currently powered off. For example, to start the
win7
VM:
$ VBoxManage startvm win7
Use the VBoxManage controlvm command to pause
or save a VM that is currently running. You can also use this
command to modify settings for the VM. For example, to enable
audio input for the ol6u9
VM.
$ VBoxManage controlvm ol6u9 audioin on
Change a virtual machine's state based on a saved state file
The VBoxManage adoptstate command enables you to change the state of a virtual machine (VM) to a state described in a saved state file (.sav). This action is referred to as a VM adopting a saved state file. The saved state file must be separate from the VM configuration.
When you start the VM after adopting the saved state, the VM restores its state from the saved state file.
Only use this command for custom deployments.
Specifies the Universally Unique Identifier (UUID) or name of the VM.
Specifies the name of the saved state file.
The following command adopts a saved state file called
mystate.sav by a VM called vm2
.
A subsequent start of the VM called vm2
restores the
state from the saved state file mystate.sav.
$ VBoxManage adoptstate vm2 /home/user/mystate.sav
Manage bandwidth groups
The VBoxManage bandwidthctl command enables you to manage bandwidth groups for virtual machines (VMs). A bandwidth group specifies the bandwidth limit for the disks or for the network adapters of a VM.
Note that a network bandwidth limit applies only to the outbound traffic from the VM. The inbound traffic is unlimited.
The VBoxManage bandwidthctl add command creates a bandwidth group for the specified VM. You must specify whether the bandwidth group is for disks or for networks and specify the bandwidth limit.
Specifies the Universally Unique Identifier (UUID) or the name of the VM.
Specifies the name of the bandwidth group.
Specifies the type of the bandwidth group:
disk
or network
.
For more information, see
Limiting Bandwidth for Disk Images or
Limiting Bandwidth for Network Input/Output.
Specifies the bandwidth limit for a bandwidth group. The default unit is megabytes per second. You can modify this value while the VM is running.
You can change the unit by appending one of the following unit specifiers to the bandwidth limit:
k
– kilobits per second
m
– megabits per second
g
– gigabits per second
K
– kilobytes per second
M
– megabytes per second
G
– gigabytes per second
The VBoxManage bandwidthctl list command lists the all the bandwidth groups that have been defined for the specified VM. Use the --machinereadable option to produce the output in a machine-readable format, which uses name-value pairs.
Specifies the UUID or the name of the VM.
Outputs the information about the bandwidth groups in name-value pairs.
The VBoxManage bandwidthctl remove command removes a bandwidth group.
To successfully remove a bandwidth group, ensure that it is not referenced by any disk or adapter in the running VM.
Specifies the UUID or the name of the VM.
Specifies the name of the bandwidth group.
The VBoxManage bandwidthctl set command modifies the bandwidth limit for a bandwidth group.
Specifies the UUID or the name of the VM.
Specifies the name of the bandwidth group.
Specifies the bandwidth limit for a bandwidth group. The default unit is megabytes per second. You can modify this value while the VM is running.
You can change the unit by appending one of the following unit specifiers to the bandwidth limit:
k
– kilobits per second
m
– megabits per second
g
– gigabits per second
K
– kilobytes per second
M
– megabytes per second
G
– gigabytes per second
The following example shows how to use the VBoxManage
bandwidthctl command to create the
Limit
bandwidth group and set the limit to 20
Mbps. Then use the VBoxManage modifyvm command
to assign this bandwidth group to the first and second adapters of
the vm1
VM.
$ VBoxManage bandwidthctl "vm1" add Limit --type network --limit 20m $ VBoxManage modifyvm "vm1" --nicbandwidthgroup1 Limit $ VBoxManage modifyvm "vm1" --nicbandwidthgroup2 Limit
You can dynamically modify the limit of a bandwidth group while
the VM is running. The following example shows how to modify the
limit for the Limit
bandwidth group from 20
Mbps to 100 kbps:
$ VBoxManage bandwidthctl "vm1" set Limit --limit 100k
The following command disables shaping for all adapters in the
Limit
bandwidth group by specifying a limit of
zero (0
):
$ VBoxManage bandwidthctl "vm1" set Limit --limit 0
Check encryption password on a DEK-encrypted medium or a disk image
The VBoxManage checkmediumpwd command checks the current encryption password on a DEK-encrypted medium or a disk image. See Encrypting Disk Images.
The command response indicates if the specified password is correct.
Specifies the Universally Unique Identifier (UUID) or the absolute path name of the medium or image.
Specifies the password to check. The password
can be the absolute path name of a password file
on the host OS or the dash character (-
)
to prompt you for the password on the command line.
The following example checks the encryption password for the ol7u4-1.vdi disk image. The password is contained in a file called pwfile.
The command returns a message indicating that the specified password is correct.
$ VBoxManage checkmediumpwd "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" /home/user/pwfile The given password is correct
Create a clone of a medium
The VBoxManage clonemedium command enables you to clone an existing medium (virtual disk, DVD, or floppy), which is typically an image file. Only the Universally Unique Identifier (UUID) differs between the original image and the cloned image.
You can use the Virtual Media Manager to transfer the cloned image to another host system or reimport it into Oracle VirtualBox. See The Virtual Media Manager and Cloning Disk Images.
Specifies the UUID or the absolute or relative pathname of the source medium to clone. You can specify the UUID of the medium only if it is registered. Use the VBoxManage list hdds command to list registered images.
Specifies the UUID or the absolute or relative pathname of the target (clone) medium. You can specify the UUID of the target medium only if it is registered. Use the VBoxManage list hdds command to list registered images.
disk
| dvd
| floppy
Specifies the type of the medium to clone. Valid values are
disk
, dvd
, and
floppy
. The default value is
disk
.
Performs the clone operation by overwriting an existing target medium. The result is that only the portion of the source medium that fits into the existing target medium is copied.
If the target medium is smaller than the source, only the portion of the source medium up to the size of the target medium is copied.
If the target medium is larger than the source, the remaining part of the target medium is unchanged.
Specifies the file format of the target medium if it differs
from the format of the source medium. Valid values are
VDI
, VMDK
,
VHD
, RAW
, and
other.
Specifies the file format variant for the target medium, which is a comma-separated list of variants. Following are the valid values:
Standard
is the default disk image
type, which has a dynamically allocated file size.
Fixed
uses a disk image that has a
fixed file size.
Split2G
indicates that the disk image
is split into 2GB segments. This value is for VMDK only.
Stream
optimizes the disk image for
downloading. This value is for VMDK only.
ESX
is used for some VMWare products.
This value is for VMDK only.
Note that not all variant combinations are valid. Specifying incompatible variant values in the list will produce an error message.
For compatibility with earlier versions of Oracle VirtualBox, you can use the clonevdi and clonehd commands instead of the clonemedium command.
The following command creates a clone of the disk01.vdi disk image file. The clone is called disk02.vdi.
$ VBoxManage clonemedium disk01.vdi disk02.vdi
The following command creates a clone of the disk01.vdi disk image file. The clone is in VMDK format and is called disk02.vmdk.
$ VBoxManage clonemedium disk01.vdi disk02.vmdk --format VMDK
Create a clone of an existing virtual machine
The VBoxManage clonevm command creates a clone of an existing virtual machine (VM). The clone can be a full copy of the VM or a linked copy of a VM.
You must specify the name or the universal unique identifier (UUID) of the VM you want to clone.
The following list describes the operand and the options that you can use with the VBoxManage clonevm command:
Specifies the name or UUID of the VM to clone.
Specifies the name of the folder in which to save the configuration for the new VM.
Assigns the clone to the specified group or groups. If you specify more than one group, separate each group name with a comma.
Note that each group is identified by a group ID that starts with a slash character (/) so that groups can be nested. By default, a clone is always assigned membership to the / group.
Specifies which of the following cloning modes to use:
machine mode clones the current state of the existing VM without any snapshots. This is the default mode.
machineandchildren mode clones the snapshot specified by by the --snapshot option and all child snapshots.
all mode clones all snapshots and the current state of the existing VM.
Specifies a new name for the new VM. The default value is original-name Clone where original-name is the original name of the VM.
Specifies how to create the new clone.
The --options argument can be used multiple times to enable multiple options, or the options can be given as a comma separated list. The options are case insensitive.
The following options (case-insensitive) are recognized:
Creates a linked clone from a snapshot only.
Specifies that the new clone reuses the MAC addresses of each virtual network card from the existing VM.
If you do not specify this option or the --options=keepnatmacs option, the default behavior is to reinitialize the MAC addresses of each virtual network card.
Specifies that the new clone reuses the MAC addresses of each virtual network card from the existing VM when the network type is NAT.
If you do not specify this option or the KeepAllMACs option, the default behavior is to reinitialize the MAC addresses of each virtual network card.
Specifies that the new clone reuses the disk image names from the existing VM. By default, disk images are renamed.
Specifies that the new clone reuses the hardware IDs from the existing VM. By default, new UUIDs are used.
Automatically registers the new clone in this Oracle VirtualBox installation. You can manually register the new VM later by using the VBoxManage registervm command. See VBoxManage registervm.
Specifies the snapshot on which to base the new VM. By default, the clone is created from the current state of the specified VM.
Specifies the UUID for the new VM. Ensure that this ID is unique for the Oracle VirtualBox instance if you decide to register this new VM. By default, Oracle VirtualBox provides a new UUID.
The following command creates and registers an exact clone of the ol7 VM. The clone is called ol7-dev-001.
The new clone includes all of the source VM's snapshots. The new VM also reuses all network interface MAC addresses, disk names, and UUIDs from the source VM.
$ VBoxManage clonevm ol7 --name="ol7-dev-001" --register --mode=all \ --options=keepallmacs --options=keepdisknames --options=keephwuuids
The following command creates and registers a clone of the Snapshot 1 snapshot of the ol7 VM. The clone is called ol7-dev-002.
$ VBoxManage clonevm ol7 --name="ol7-dev-002" --register --snapshot="Snapshot 1"
Remove a hard disk, DVD, or floppy image from the media registry
The VBoxManage closemedium command removes a hard disk, DVD, or floppy image from the list of known media used by Oracle VirtualBox. The image is then unavailable for selection in the Virtual Media Manager.
To use this command, the image must not be attached to any VMs.
Optionally, you can request that the image be deleted.
Specifies the type of medium. Valid values are
disk
(hard drive),
dvd
, or floppy
.
Specifies the Universally Unique Identifier (UUID) or absolute path name of the medium or image.
Deletes the image file.
The following command removes the disk image file called disk01.vdi from the registry.
$ VBoxManage closemedium disk01.vdi
The following command removes the disk image file called disk01.vdi from the registry and deletes the image file.
$ VBoxManage closemedium disk01.vdi --delete
Manage the cloud entities
The word cloud
is an umbrella term for all commands related to
intercommunication with the Cloud. The following common options must be placed after
the cloud
argument and before the following sub-commands:
Short cloud provider name.
Cloud profile name.
Displays a list of the cloud instances for a specified compartment.
The state of cloud instance. The possible states are running
,
paused
, and terminated
.
If a state isn't provided a list of instances with all possible states is returned.
A compartment is the logical container used to organize and isolate cloud resources. Different cloud providers may use different names for this entity.
Displays the list of the images for a specified compartment.
The state of the cloud image. The possible states are available
,
disabled
and deleted
.
If a state isn't provided a list of images with all possible states is returned.
A compartment is the logical container used to organize and isolate cloud resources. Different cloud providers may use different names for this entity.
Displays the list of the vnic attachments for a specified compartment.
Filters are used to narrow down the set of Vnic attachments of interest.
This parameter can be specified multiple times.
The possible filter types are instanceId
, vnicId
,
or availabilityDomain
.
Filters have a syntax of type=[value] as seen in the following examples:
instanceId=ocid1.instance.oc1.iad.anuwcl...js6
vnicId=ocid1.vnic.oc1.iad.abuwcl...jsm
domainName=ergw:US-ASHBURN-AD-2
If a filter isn't provided the entire list of vnic attachments for a specified compartment is returned.
A compartment is the logical container used to organize and isolate cloud resources. Different cloud providers may use different names for this entity.
Creates new instance in the Cloud. There are two standard ways to create an instance in the Cloud:
Create an instance from an existing custom image.
Create an instance from an existing bootable volume. This bootable volume shouldn't be attached to any instance.
The first approach requires the following two options: image-id
,
boot-disk-size
.
The second approach requires the following option: boot-volume-id
.
The following options are common to both cases:
display-name
, launch-mode
,
subnet-id
, publicIP
, privateIP
, shape
, domain
.
Cloud domain where the new instance is to be created.
Unique identifier which fully identifies a custom image in the Cloud.
Unique identifier which fully identifies a boot volume in the Cloud.
Name for the new instance in the Cloud.
The shape of the instance which defines the number of CPUs and memory (RAM).
Unique identifier which fully identifies an existing subnet in the Cloud which will be used by the instance.
The size of the bootable image in GB. Default is 50GB.
Public IP address for the created instance.
Private IP address for the created instance.
Public SSH key to use to connect to the instance via SSH.
This parameter may be repeated if using more than one key:
--public-ssh-key=firstSSHKey --public-ssh-key=secondSSHKey
.
Supported values are EMULATED, NATIVE, and PARAVIRTUALIZED.
Absolute path to the cloud-init script.
Display information about a cloud instance with a specified ID.
Unique identifier which fully identifies the instance in the Cloud.
Delete a cloud instance with a specified ID.
Unique identifier which fully identifies the instance in the Cloud.
Start a cloud instance with a specified ID.
Unique identifier which fully identifies the instance in the Cloud.
Pause a cloud instance with a specified ID.
Unique identifier which fully identifies the instance in the Cloud.
Force reset a cloud instance with a specified ID.
Unique identifier which fully identifies the instance in the Cloud.
Clone a cloud instance with the specified ID. Only works for the instances accessible through Oracle VirtualBox, i.e., not every instance in the cloud may be cloned.
Unique identifier which fully identifies the instance in the Cloud.
Name for the clone instance
Displays the list of the available metrics for the instance. The returned names must be used with the command VBoxManage cloud instance metricdata.
Unique identifier which fully identifies the instance in the Cloud.
Displays the metric data with the resolution of 1 minute for the requested cloud instances. The timestamps are returned in the format described in RFC2822.
Unique identifier which fully identifies the instance in the Cloud.
Metric name
Metric points begin at the current time, which has a value of one, and continue
into the past with the values increasing. If only the most recent metric point
is desired supply the value 1
. If the most recent value and
the preceding value are desired then supply a value of 2
.
Creates new image in the Cloud. There are two standard ways to create an image in the Cloud:
Create an image from an object in the Cloud Storage.
Create an image from an existing cloud instance.
For the first approach the following three options are required:
bucket-name
, object-name
, and display-name
.
For the second approach the following two options are required:
instance-id
, display-name
Name for new image in the Cloud.
The name of the Cloud bucket where the image (object) is located..
Name of object in the bucket.
Unique identifier which fully identifies the instance in the Cloud.
Display information about a cloud image with a specified ID.
Unique identifier which fully identifies the image in the Cloud.
Delete an image with a specified ID from the Cloud.
Unique identifier which fully identifies the image in the Cloud.
Import an image with the specified ID from the Cloud to a local host. The result is an object in the local "temp" folder on the local host. There are two possible approaches when importing from the Cloud:
Create an object from an image in the Cloud Storage.
Download the object to the local host.
Unique identifier which fully identifies the image in the Cloud.
The name of the Cloud bucket where the object will be created.
Name of the created object in the bucket or the name of the downloaded object. If no --object-name option is supplied a default image name is used.
Export an existing VBox image with the specified uuid from a local host to the Cloud. The result is new image in the Cloud. There are two possible approaches when exporting to the Cloud:
Upload a VBox image to the Cloud Storage.
Create an image from the uploaded object.
Unique identifier of the image in Oracle VirtualBox.
The name of the new image in the Cloud.
The name of the Cloud bucket where the image (object) will be uploaded.
Name of the object in the bucket.
Set up a cloud network environment for the specified cloud profile.
The name of OS to use for the cloud gateway.
The version of the OS to use for the cloud gateway.
The instance shape to use for the cloud gateway.
The name of the VCN/subnet to use for tunneling.
The IP address range to use for tunneling.
The proxy URL to be used in a local gateway installation.
The compartment to create the tunnel network in.
Create a new cloud network descriptor associated with an existing cloud subnet.
The name to assign to the cloud network descriptor.
The unique identifier of an existing subnet in the cloud.
Whether to enable the network descriptor or disable it. If not specified, the network will be enabled.
Modify an existing cloud network descriptor.
The name of an existing cloud network descriptor.
The unique identifier of an existing subnet in the Cloud.
Whether to enable the network descriptor or disable it.
Delete an existing cloud network descriptor.
The name of an existing cloud network descriptor.
Display information about a cloud network descriptor.
The name of an existing cloud network descriptor.
Manage the cloud profiles
The subcommands of cloudprofile implement the standard Create, Read, Update, and Delete (CRUD) operations for a cloud profile. The following common options must be placed after the cloudprofile argument and before the following sub-commands:
Short cloud provider name.
Cloud profile name.
Add a new cloud profile for the specified cloud provider.
The name which fully identifies the user in the specified cloud provider.
Fingerprint of the key pair being used.
Full path and filename of the private key.
Passphrase used for the key if it is encrypted.
ID of your tenancy.
ID of your compartment.
Region name. Region is where you plan to deploy an application.
Display information about a cloud profile for the specified cloud provider.
Modify a cloud profile for the specified cloud provider.
The name which fully identifies the user in the specified cloud provider.
Fingerprint for the key pair being used.
Full path and filename of the private key.
Passphrase used for the key if it is encrypted.
ID of the tenancy.
ID of the compartment.
Region name. Region is where you plan to deploy an application.
Delete a cloud profile for a specified cloud provider.
Change state and settings for a running virtual machine
The VBoxManage controlvm command enables you to change the state of a running virtual machine (VM). The following sections describe the subcommands that you can use:
The VBoxManage controlvm vmname pause command temporarily stops the execution of a VM. When paused, the VM's state is not permanently changed.
The VM window appears as gray and the title bar of the window indicates that the VM is currently Paused. This action is equivalent to selecting Pause from the Machine menu of the GUI.
The VBoxManage controlvm vmname resume command restarts the execution of a paused VM. This action is equivalent to selecting Resume from the Machine menu of the GUI.
The VBoxManage controlvm vmname reset command performs a cold reset the VM. This command has the same effect on a VM as pressing the Reset button on a physical computer.
A cold reboot immediately restarts and reboots the guest operating system (OS). The state of the VM is not saved prior to the reset, so data might be lost. This action is equivalent to selecting Reset from the Machine menu of the GUI.
The VBoxManage controlvm vmname poweroff command powers off the VM. This command has the same effect on a VM as pulling the power cable on a physical computer.
The state of the VM is not saved prior to poweroff, so data might be lost. This action is equivalent to selecting Close from the Machine menu of the GUI or to clicking the VM window's Close button, and then selecting Power Off the Machine.
The poweroff subcommand places a VM into the Powered Off state from which you can restart the VM using VBoxManage startvm.
The VBoxManage controlvm vmname savestate command saves the current state of the VM to disk and then stops the VM.
This action is equivalent to selecting Close from the Machine menu of the GUI or to clicking the VM window's Close button, and then selecting Save the Machine State.
The savestate subcommand places a VM into the Saved state from which you can restart the VM using VBoxManage startvm. The VM will resume from the exact point at which it was saved.
The VBoxManage controlvm vmname acpipowerbutton command sends an ACPI shutdown signal to the VM. This command has the same effect on a VM as pressing the Power button on a physical computer.
So long as the VM runs a guest OS that provides appropriately configured ACPI support, this command triggers an operating system shutdown from within the VM.
The VBoxManage controlvm vmname acpisleepbutton command sends an ACPI sleep signal to the VM.
So long as the VM runs a guest OS that provides appropriately configured ACPI support, this command triggers a sleep mechanism from within the VM.
The VBoxManage controlvm vmname reboot command asks the guest OS to reboot itself.
This command requires the Oracle VirtualBox Guest Additions to be installed in the VM.
The VBoxManage controlvm vmname shutdown command asks the guest OS to halt + shutdown, optionally forcing the shutdown.
This command requires the Oracle VirtualBox Guest Additions to be installed in the VM.
The VBoxManage controlvm vmname keyboardputscancode command sends keyboard scancode commands to the VM.
For information about keyboard scancodes, see http://www.win.tue.nl/~aeb/linux/kbd/scancodes-1.html.
The VBoxManage controlvm vmname keyboardputstring command sends keyboard strings to the VM.
The VBoxManage controlvm vmname keyboardputfile command sends a file to the VM.
VBoxManage controlvm vmname
setlinkstateN command
enables you to connect or disconnect the virtual network cable
from the network interface instance
(N). Valid values are
on
and off
. The default
value is on
.
The VBoxManage controlvm
vmname
nicN command specifies the
type of networking to use on the specified VM's virtual network
card. N numbering begins with
1
.
The following valid network types are also described in Introduction to Networking Modes:
null
specifies that the VM is is not
connected to the host system.
nat
specifies that the VM uses Network
Address Translation (NAT).
bridged
specifies that the VM uses
bridged networking.
intnet
specifies that the VM communicates
with other VMs by using internal networking.
hostonly
specifies that the VM uses
host-only networking.
natnetwork
specifies that the VM uses NAT
networking.
generic
specifies that the VM has access
to rarely used submodes
The VBoxManage controlvm
vmname
nictraceN command enables
you to trace the network traffic on the specified virtual
network card (N).
N numbering begins with
1
. Valid values are on
and
off
. The default value is
off
.
If you do not configure a file name for the trace file then a default one is used, placing it in the VM subdirectory.
The VBoxManage controlvm
vmname
nictracefileN command
enables you to specify the name of the network traffic trace log
file for the specified virtual network card
(N). N
numbering begins with 1
.
The VBoxManage controlvm
vmname
nicpromiscN command enables
you to specify how to handle promiscuous mode for a bridged
network. The default value of deny
hides any
traffic that is not intended for this VM. The
allow-vms
value hides all host traffic from
this VM but enables the VM to see traffic to and from other VMs.
The allow-all
value removes this restriction
completely.
The VBoxManage controlvm
vmname
nicpropertyN
prop-name=prop-value
command, in combination with nicgenericdrv
,
enables you to pass property values to rarely-used network
backends.
Those properties are backend engine-specific and are different between UDP Tunnel and the Virtual Distributed Ethernet (VDE) backend drivers. See UDP Tunnel Networking.
The VBoxManage controlvm vmname natpfN command specifies a NAT port-forwarding rule. See Configuring Port Forwarding with NAT.
The VBoxManage controlvm vmname natpfN delete command deletes the specified NAT port-forwarding rule. See Configuring Port Forwarding with NAT.
The VBoxManage controlvm vmname guestmemoryballoon command changes the size of the guest memory balloon. The guest memory balloon is the memory allocated by the Oracle VirtualBox Guest Additions from the guest OS and returned to the hypervisor for reuse by other VMs. The value you specify is in megabytes. See Memory Ballooning.
The VBoxManage controlvm vmname usbattach command dynamically attaches a host USB device to the VM, which makes it visible. You do not need to create a filter.
Specify a USB device by its Universally Unique Identifier (UUID) or by its address on the host system. Use the VBoxManage list usbhost command to obtain information about USB devices on the host system.
Use the --capturefile option to specify the absolute path of a file in which to write logging data.
The VBoxManage controlvm vmname usbdetach command dynamically detaches a host USB device from the VM, which makes it invisible. You do not need to create a filter.
Specify a USB device by its UUID or by its address on the host system. Use the VBoxManage list usbhost command to obtain information about USB devices on the host system.
The VBoxManage controlvm
vmname audioin command
specifies whether to enable or disable audio capture from the
host system. Valid values are on
, which
enables audio capture and off
, which disables
audio capture. The default value is off
.
The VBoxManage controlvm
vmname audioout command
specifies whether to enable or disable audio playback from the
guest VM. Valid values are on
, which enables
audio playback and off
, which disables audio
playback. The default value is off
.
The VBoxManage controlvm
vmname clipboard mode command
specifies how to share the guest or host OS's clipboard with the
host system or VM. Valid values are disabled
,
hosttoguest
, guesttohost
,
and bidirectional
. The default value is
disabled
. See
General Settings.
This feature requires the Oracle VirtualBox Guest Additions to be installed in the VM.
The VBoxManage controlvm
vmname clipboard filetransfers
command specifies if it is possible to transfer files through the
clipboard between the host and VM in the direction(s) configured for
the clipboard mode. Valid values are
off
and on
. The default value
is off
.
This feature requires the Oracle VirtualBox Guest Additions to be installed in the VM.
The VBoxManage controlvm
vmname draganddrop command
specifies the current drag and drop mode to use between the host
system and the VM. Valid values are disabled
,
hosttoguest
, guesttohost
,
and bidirectional
. The default value is
disabled
. See
Drag and Drop.
This feature requires the Oracle VirtualBox Guest Additions to be installed in the VM.
The VBoxManage controlvm
vmname vrde command enables
or disables the VirtualBox Remote Desktop Extension (VRDE)
server, if installed. Valid values are on
and
off
. The default value is
off
.
The VBoxManage controlvm
vmname vrdeport command
specifies the port or range of ports to which the VRDE server
can bind. The default value is default
or
0
, which uses the standard RDP port,
3389
.
See also the --vrde-port option description in Remote Machine Settings.
The VBoxManage controlvm vmname vrdeproperty command specifies the port numbers and IP address on the VM to which the VRDE server can bind.
TCP/Ports
specifies a port or a range of
ports to which the VRDE server can bind. The default value
is default
or 0
, which
is the standard RDP port, 3389
.
See also the --vrde-port option description in Remote Machine Settings.
TCP/Address
specifies the IP address of
the host network interface to which the VRDE server binds.
When specified, the server accepts connections only on the
specified host network interface.
See also the --vrde-address option description in Remote Machine Settings.
VideoChannel/Enabled
specifies whether to
enable the VirtualBox Remote Desktop Protocol (VRDP) video
channel. Valid values are 1
to enable the
video channel and 0
to disable the video
channel. The default value is 0
. See
VRDP Video Redirection.
VideoChannel/Quality
specifies the JPEG
compression level on the VRDE server video channel. Valid
values are between 10% and 100%, inclusive. Lower values
mean lower quality but higher compression. The default value
is 100
. See
VRDP Video Redirection.
VideoChannel/DownscaleProtection
specifies whether to enable the video channel downscale
protection feature. Specify 1
to enable
the feature. This feature is disabled by default.
When enabled, if the video's size equals the shadow buffer size, the video is shown in full-screen mode. If the video's size is between full-screen mode and the downscale threshold, the video is not shown as it might be an application window that is unreadable when downscaled. When disabled, the downscale protection feature always attempts to show videos.
Client/DisableDisplay
specifies whether
to disable the VRDE server display feature. Valid values are
1
to disable the feature and an empty
string (""
) to enable the feature.
The default value is an empty string. See
VRDP Customization.
Client/DisableInput
specifies whether to
disable the VRDE server input feature. Valid values are
1
to disable the feature and an empty
string (""
) to enable the feature.
The default value is 1
. See
VRDP Customization.
Client/DisableAudio
specifies whether to
disable the VRDE server audio feature. Valid values are
1
to disable the feature and an empty
string (""
) to enable the feature.
The default value is 1
. See
VRDP Customization.
Client/DisableUSB
specifies whether to
disable the VRDE server USB feature. Valid values are
1
to disable the feature and an empty
string (""
) to enable the feature.
The default value is 1
. See
VRDP Customization.
Client/DisableClipboard
specifies whether
to disable the VRDE clipboard feature. Valid values are
1
to disable the feature and an empty
string (""
) to enable the feature.
To re-enable the feature, use
Client/DisableClipboard=
. The default
value is 1
. See
VRDP Customization.
Client/DisableUpstreamAudio
specifies
whether to disable the VRDE upstream audio feature. Valid
values are 1
to disable the feature and
an empty string (""
) to enable the
feature. To re-enable the feature, use
Client/DisableUpstreamAudio=
. The default
value is 1
. See
VRDP Customization.
Client/DisableRDPDR
specifies whether to
disable the RDP Device Redirection For Smart Cards feature
on the VRDE server. Valid values are 1
to
disable the feature and an empty string
(""
) to enable the feature.
The default value is 1
. See
VRDP Customization.
H3DRedirect/Enabled
specifies whether to
enable the VRDE server 3D redirection feature. Valid values
are 1
to enable the feature and an empty
string (""
) to disable the feature.
See VRDP Customization.
Security/Method
specifies the security
method to use for a connection. See
RDP Encryption.
Negotiate
accepts both enhanced (TLS)
and standard RDP security connections. The security
method is negotiated with the client. This is the
default value.
RDP
accepts only standard RDP
security connections.
TLS
accepts only enhanced RDP
security connections. The client must support TLS.
Security/ServerCertificate
specifies the
absolute path of the server certificate to use for a
connection. See RDP Encryption.
Security/ServerPrivateKey
specifies the
absolute path of the server private key. See
RDP Encryption.
Security/CACertificate
specifies the
absolute path of the CA self-signed certificate. See
RDP Encryption.
Audio/RateCorrectionMode
specifies the
rate correction mode to use.
VRDP_AUDIO_MODE_VOID
indicates that
no mode is specified. Use this value to unset any audio
mode that is already set.
VRDP_AUDIO_MODE_RC
specifies to use
the rate correction mode.
VRDP_AUDIO_MODE_LPF
specifies to use
the low pass filter mode.
VRDP_AUDIO_MODE_CS
specifies to use
the client sync mode to prevent underflow or overflow of
the client queue.
Audio/LogPath
specifies the absolute path
of the audio log file.
The VBoxManage controlvm vmname vrdevideochannelquality command sets the image quality, as a JPEG compression level value, for video redirection. Valid values are between 10% and 100%, inclusive. Lower values mean lower quality but higher compression. See VRDP Video Redirection.
The VBoxManage controlvm vmname setvideomodehint command specifies the video mode for the guest VM to use. You must have the Oracle VirtualBox Guest Additions installed. Note that this feature does not work for all guest systems.
The VBoxManage controlvm vmname setscreenlayout command can be used to configure multiscreen displays. The specified screen on the guest VM can be enabled or disabled, or a custom screen layout can be configured.
The VBoxManage controlvm vmname screenshotpng command takes a screenshot of the guest display and saves it as PNG in the specified file.
filename specifies the name of the PNG file to create.
display specifies the display
number for the screen shot. For a single monitor guest
display, this is 0
.
The VBoxManage controlvm
vmname recording command
enables or disables the recording of a VM session into a
WebM/VP8 file. Valid values are on
, which
begins recording when the VM session starts and
off
, which disables recording. The default
value is off
.
The VBoxManage controlvm vmname recording start command starts the recording of a VM session into a WebM/VP8 file.
The VBoxManage controlvm vmname recording stop command stops the recording of a VM session.
The VBoxManage controlvm vmname recording attach command attaches to a running recording of a VM session.
The VBoxManage controlvm vmname recording screens command enables you to specify which VM screens to record. The recording for each screen that you specify is saved to its own file in the machine folder. You cannot modify this setting while a screen recording is in progress.
all
specifies that you record all VM
screens.
none
specifies that you do not record any
VM screens.
screen-ID specifies one or more VM screens to record.
The VBoxManage controlvm vmname recording filename command specifies the file in which to save the recording. You cannot modify this setting while a screen recording is in progress.
The default setting is to store a recording in the machine folder, using the VM name as the file name, with a webm file name extension.
The VBoxManage controlvm vmname recording videores command specifies the resolution of the recorded video in pixels. You cannot modify this setting while a screen recording is in progress.
The Recording settings in the GUI which are located in the Display page show the current video recording settings which are based on the resolution (frame size). The Frame Size field shows the default value for the recording video resolution.
Specify the resolution as
widthx
height:
width specifies the width in pixels.
height specifies the height in pixels.
The VBoxManage controlvm vmname recording videorate command specifies the bit-rate, of the video in kilobits per second. Increasing this value improves the appearance of the video at the cost of an increased file size. You cannot modify this setting while a VM is running with recording enabled.
The Recording settings in the GUI which are located in the Display page show the current video recording settings which are based on the resolution (frame size). The Video Quality field shows the default value for the recording video quality.
The VBoxManage controlvm vmname recording videofps command specifies the maximum frequency of the video to record. Video frequency is measured in frames per second (FPS). The recording skips any frames that have a frequency higher than the specified maximum. Increasing the frequency reduces the number of skipped frames and increases the file size. You cannot modify this setting while a VM is running with recording enabled.
The Recording settings in the GUI which are located in the Display page show the current video recording settings which are based on the resolution (frame size). The Frame Rate field shows the default value for the recording frame rate.
The VBoxManage controlvm vmname recording maxtime command specifies the maximum amount time to record in seconds. The recording stops after the specified number of seconds elapses. If this value is zero, the recording continues until you stop the VM or stop the recording.
The VBoxManage controlvm vmname recording maxfilesize command specifies the maximum size of the recorded video file in megabytes. The recording stops when the file reaches the specified size. If this value is zero, the recording continues until you stop the VM or stop the recording. You cannot modify this setting while a screen recording is in progress.
The VBoxManage controlvm vmname recording opts command specifies additional recording options in a comma-separated keyword-value format. For example, foo=bar,a=b. You cannot modify this setting while a screen recording is in progress.
Use this option if you are an advanced user only. For information about keywords, see Oracle VirtualBox Programming Guide and Reference.
The setcredentials command enables you to specify the credentials for remotely logging in to Windows VMs. See Automated Guest Logins.
username specifies the user name with which to log in to the Windows VM.
--passwordfile=filename specifies the file from which to obtain the password for username.
The --passwordfile option is mutually exclusive with the --password option.
--password=password specifies the password for username.
The --password option is mutually exclusive with the --passwordfile option.
--allowlocallogon specifies whether to
enable or disable local logins. Valid values are
on
to enable local logins and
off
to disable local logins.
The VBoxManage controlvm vmname teleport command initiates a teleporting operation between the specified VM and the specified host system. See Teleporting.
If you specify a password, it must match the password you specified when you issued the VBoxManage modifyvm command for the target machine.
Specifies the name of the VM.
Specifies the port on the VM that should listen for a
teleporting request from other VMs. The port number can be
any free TCP/IP port number, such as
6000
.
Specifies the maximum downtime, in milliseconds, for the teleporting target VM.
Specifies the password that the source machine uses for the teleporting request. The request succeeds only if the source machine specifies the same password.
The --password option is mutually exclusive with the --passwordfile option.
Specifies the file from which to obtain the password that the source machine uses for the teleporting request. The request succeeds only if the source machine specifies the same password.
When you specify a file name of stdin
,
you can read the password from standard input.
The --passwordfile option is mutually exclusive with the --password option.
The VBoxManage controlvm vmname plugcpu command adds a virtual CPU to the specified VM if CPU hot-plugging is enabled. ID specifies the index of the virtual CPU to be added and must be a number from 0 to the maximum number of CPUs configured.
The VBoxManage controlvm vmname unplugcpu command removes a virtual CPU from the specified VM if CPU hot-plugging is enabled. ID specifies the index of the virtual CPU to be removed and must be a number from 0 to the maximum number of CPUs configured. You cannot remove CPU 0.
The VBoxManage controlvm
vmname cpuexecutioncap
command specifies the maximum amount of physical CPU time
used by a virtual CPU. Valid values are a percentage between
1
and 100
. A value of
50
specifies that a single virtual CPU can
use up to 50% of a physical CPU. The default value is
100
.
Use this feature with caution, it can have unexpected results including timekeeping problems and lower performance than specified. If you want to limit the resource usage of a VM it is more reliable to pick an appropriate number of VCPUs.
The VBoxManage controlvm vmname vm-process-priority command specifies the priority scheme of the VM process to use when starting the specified VM and while the VM runs.
Valid values are:
default
– Default process
priority determined by the OS.
flat
– Uses a scheduling
policy which puts the process at the default priority
and with all threads at the same priority.
low
– Uses a scheduling
policy which puts the process mostly below the default
priority of the host OS.
normal
– Uses a scheduling
policy which shares the CPU resources fairly with
other processes running with the default priority of
the host OS.
high
– Uses a scheduling
policy which puts the task above the default priority of
the host OS. This policy might easily cause other tasks
in the system to starve.
The VBoxManage controlvm vmname webcam attach command attaches a webcam to a running VM. Specify the webcam as the absolute path of the webcam on the host OS or as an alias. Use the VBoxManage list webcams command to obtain the webcam alias.
Note that the .0
alias is the default video
input device on the host OS. .1
is the first
video input device, .2
is the second video
input device, and so on. The order of the devices is specific to
the host system.
You can specify optional settings in the form of
semicolon-separated (;
) name-value pairs.
These properties enable you to configure the emulated webcam
device.
The following settings are supported:
MaxFramerate
Specifies the highest rate at which to send video frames
to the VM. The rate is in frames per second. Higher frame
rates increase CPU load, so you can use this setting to
reduce CPU load. The default value is no maximum
limit
. This value enables the VM to use any
frame rate supported by the webcam.
MaxPayloadTransferSize
Specifies the maximum number of bytes that the VM receives
from the emulated webcam in one buffer. The default
setting is 3060
bytes, which is used by
some webcams. If the VM is able to use larger buffers,
higher values might reduce CPU load slightly. Note that
some guest OSes might not support higher
MaxPayloadTransferSize
values.
The VBoxManage controlvm vmname webcam detach command detaches a webcam from a running VM. Specify the webcam as the absolute path of the webcam on the host OS or as an alias. Use the VBoxManage list webcams command to obtain the webcam alias.
When a webcam device is detached from the host, the host OS determines how the emulated webcam behaves.
Windows hosts: The emulated webcam device is detached from the VM automatically.
Mac OS X hosts that run at least OS X 10.7: The emulated webcam device remains attached to the VM and you must detach it manually by using the VBoxManage controlvm webcam detach command.
Linux hosts: The emulated webcam device is detached from the VM automatically only if the webcam is actively streaming video. If the emulated webcam is inactive, manually detach it by using the VBoxManage controlvm vmname webcam detach command.
The VBoxManage controlvm vmname webcam list command lists webcams that are attached to the running VM. The output shows a list of absolute paths or aliases of the webcams which were attached to the VM using the VBoxManage controlvm vmname webcam attach command.
You can encrypt the data stored in the hard disk images used by the VM. Oracle VirtualBox uses the AES algorithm in XTS mode and supports 128-bit or 256-bit data encryption keys (DEK). The encrypted DEK is stored in the medium properties and is decrypted during VM startup when you provide the encryption password.
Use the VBoxManage encryptmedium command to create a DEK encrypted medium. See Encrypting Disk Images.
When a VM which contains one or more encrypted disk images is started using the Oracle VirtualBox GUI a dialog will open to prompt the user for the password of each encrypted disk attached to the VM. If the VBoxHeadless frontend is used, the VM will be paused as soon as the guest tries to access an encrypted disk. The user needs to provide the passwords by using addencpassword subcommand.
The VBoxManage controlvm
vmname addencpassword
command provides the encryption password to the VM named
vmname which contains encrypted disks
that has been started using the VBoxHeadless
frontend. Specify the absolute path of a password file on the
host system. If filename is
-
, VBoxManage prompts for
the encryption password.
Use the --removeonsuspend option to specify whether to save the passsword or clear it from VM memory when the VM is suspended.
If the VM is suspended and the password is cleared, use the VBoxManage controlvm vmname addencpassword to provide the password to resume execution on the VM. Use this feature when you do not want to store the password in VM memory when the VM is suspended by a host suspend event.
The following is one way to perform a headless start of VM which contains encrypted disk images:
$ VBoxManage startvm vmname --type headless
The following command provides the encryption password to the VM so that it can resume starting up:
$ VBoxManage vmname controlvm addencpassword vmname - Password: encryption-password
The VBoxManage controlvm vmname removeencpassword command disables a specific encryption password for all encrypted media attached to the VM.
ID is the password identifier for the encryption password that you want to disable.
The VBoxManage controlvm vmname removeallencpasswords command disables all encryption passwords for all encrypted media attached to the VM.
The VBoxManage controlvm
vmname changeuartmode
command changes the connection mode for the specified virtual
serial port. Valid serial port values are integers that start
from 1
.
Disconnects the device.
Specifies the pipe name of the server.
Specifies the pipe name of the client.
Specifies the port number of the TCP server.
Specifies the host name and port number of the TCP client.
Specifies the name of the file.
Specifies the name of the device.
The VBoxManage controlvm
vmname autostart-enabled
command specifies whether to enable or disable automatically
starting of the VM at host system boot-up. You must do some host
system configuration before you can use this feature.
See Starting Virtual Machines During System Boot. Valid values are
on
, which enables the autostart feature for
the VM and off
, which disables it. The
default value is off
.
The VBoxManage controlvm vmname autostart-delay command specifies the delay in seconds before the VM starts on host system boot-up. See Starting Virtual Machines During System Boot.
The following command temporarily stops the execution of the ol7 VM.
$ VBoxManage controlvm ol7 pause
The following command configures shared clipboard operation for the ol7 VM. Copying of clipboard data is allowed in both directions between the host and guest.
$ VBoxManage controlvm ol7 clipboard mode bidirectional
Convert a raw disk image to a virtual disk image
The VBoxManage convertfromraw command enables you to convert a raw disk image to an Oracle VirtualBox virtual disk image (VDI).
For compatibility with earlier versions of Oracle VirtualBox, you can use the VBoxManage convertdd command instead of the VBoxManage convertfromraw command.
The VBoxManage convertfromraw command converts the specified raw disk image input file to an Oracle VirtualBox VDI file.
Specifies the name of the raw disk image file to convert.
Specifies the name of the file in which to write the VDI output.
Specifies the format of the disk image to create. Valid
values are VDI
,
VMDK
, and VHD
. The
default format is VDI
.
Specifies the Universally Unique Identifier (UUID) of the output file.
Specifies any required file format variants for the output file. This is a comma-separated list of variant values. Following are the valid values:
Standard
is the default disk image
type, which has a dynamically allocated file size.
Fixed
uses a disk image that has a
fixed file size.
Split2G
indicates that the disk
image is split into 2GB segments. This value is for
VMDK only.
Stream
optimizes the disk image for
downloading. This value is for VMDK only.
ESX
is used for some VMWare
products. This value is for VMDK only.
Note that not all variant combinations are valid. Specifying incompatible variant values in the list will produce an error message.
The VBoxManage convertfromraw stdin command reads the content of the disk image from standard input. Consider using this form of the command in a pipe sequence.
Specifies the name of the file in which to write the disk image output.
Specifies the capacity of the target image name. This needs to be given explicitly, because generally pipes do not support querying the overall size of the data stream.
Specifies the format of the disk image to create. Valid
values are VDI
,
VMDK
, and VHD
. The
default format is VDI
.
Specifies the UUID of the output file.
Specifies any required file format variants for the output file. This is a comma-separated list of variant values. The list of valid values is:
Standard
is the default disk image
type, which has a dynamically allocated file size.
Fixed
uses a disk image that has a
fixed file size.
Split2G
indicates that the disk
image is split into 2GB segments. This value is for
VMDK only.
Stream
optimizes the disk image for
downloading. This value is for VMDK only.
ESX
is used for some VMWare
products. This value is for VMDK only.
Note that not all variant combinations are valid. Specifying incompatible variant values in the list will produce an error message.
The following command converts the raw disk image input file disk01.raw. The output file is a VDI disk image called disk02.vdi.
$ VBoxManage convertfromraw disk01.raw disk02.vdi
The following command converts the raw disk image input file disk01.raw. The output file is a VMDK disk image called disk02.vmdk.
$ VBoxManage convertfromraw disk01.raw disk02.vmdk --format VMDK
The following command reads from disk /dev/sda
using a pipe and therefore needs the exact disk size in bytes as an
additional parameter, which is assumed to be 10737418240
.
The output file is a VDI disk image called disk.vdi.
$ dd if=/dev/sda bs=512 | VBoxManage convertfromraw stdin disk.vdi 10737418240
Create a new medium
The VBoxManage createmedium command creates a new medium, such as a disk image file.
For compatibility with earlier versions of Oracle VirtualBox, you can use the createvdi and createhd commands instead of the createmedium command.
Specifies the media type. The default value is
disk
.
Specifies the absolute path name to a file on the host file system.
Specifies the image capacity in one megabyte units.
Specifies the image capacity in one byte units.
Specifies the Universally Unique Identifier (UUID) or absolute path name of a differencing image parent file on the host file system.
Use this file to share a base box disk image among VMs.
Specifies the file format of the output file. Valid formats
are VDI
, VMDK
, and
VHD
. The default format is
VDI
.
Specifies the file format variant for the target medium, which is a comma-separated list of variants. Following are the valid values:
Standard
is the default disk image
type, which has a dynamically allocated file size.
Fixed
uses a disk image that has a
fixed file size.
Split2G
indicates that the disk image
is split into 2GB segments. This value is valid for VMDK
disk images only.
Stream
optimizes the disk image for
downloading. This value is valid for VMDK disk images
only.
ESX
is used for some VMWare products.
This value is valid for VMDK disk images only.
Formatted
formats the medium automatically.
This value is valid for floppy images only.
RawDisk
is used for creating a VMDK
image which provides direct access to the hard disk on
the host using its raw interface. This value is valid for
VMDK disk images only. For detailed information about raw
disk access, see Advanced Storage Configuration.
Note that not all variant combinations are valid. Specifying incompatible variant values in the list will produce an error message.
Specifies any required file format dependent parameters in
key=value
form. Optional.
Specifies any required file format dependent parameters in
key=file/with/value
form. The value is
taken from the file. Optional.
The following command creates a new disk image file named disk01.vdi. The file size is 1024 megabytes.
$ VBoxManage createmedium --filename disk01.vdi --size 1024
The following command creates a new floppy disk image file named floppy01.vdi. The file size is 1 megabyte.
$ VBoxManage createmedium floppy --filename floppy01.img --size 1
The following command creates a raw disk image of an entire physical disk on a Linux host.
$ VBoxManage createmedium disk --filename=/path/to/rawdisk.vmdk --variant=RawDisk --format=VMDK --property RawDrive=/dev/sda
Create a new virtual machine
The VBoxManage createvm command creates a new XML virtual machine (VM) definition file.
You must specify the name of the VM by using --name name. This name is used by default as the name of the settings file that has the .vbox extension and the machine folder, which is a subfolder of the $HOME/VirtualBox VMs directory.
The actual file name may not correspond directly to the VM name if it violates the host OS file name requirements (such as using the path separator or other reserved characters, they will be substituted with a placeholder). If you later rename the VM, the file and folder names will be updated to match the new name automatically.
Also, the intended platform architecture for the VM must be specified by using --platform-architecturearchitecture .
In addition to specifying the name or UUID of the VM and the platform architecture, which is required, you can specify any of the following options:
Specifies the name of the folder in which to save the machine configuration file for the new VM.
Note that the names of the file and the folder do not change if you rename the VM.
Applies a default hardware configuration for the specified guest OS. By default, the VM is created with minimal hardware.
Assigns the VM to the specified groups. If you specify more than one group, separate each group name with a comma.
Note that each group is identified by a group ID that starts
with a slash character (/
) so that groups
can be nested. By default, a VM is always assigned
membership to the /
group.
Specifies the guest OS to run in the VM. Run the VBoxManage list ostypes command to see the available OS types.
Registers the VM with your Oracle VirtualBox installation. By default, the VBoxManage createvm command creates only the XML configuration for the VM but does not register the VM. If you do not register the VM at creation, you can run the VBoxManage registervm command after you create the VM.
Specifies the Universally Unique Identifier (UUID) of the VM. Ensure that this UUID is unique within the Oracle VirtualBox namespace of the host or of its VM group memberships if you decide to register the VM. By default, Oracle VirtualBox provides the UUID.
Specifies the cipher to use for encryption. Valid values are
AES-128
or
AES-256
.
This option enables you to set up encryption on VM.
Specifies a new password identifier that is used for correct identification when supplying multiple passwords for the VM.
This option enables you to set up encryption on VM.
Use the --password to supply the encryption
password of the VM. Either specify the absolute pathname of a
password file on the host operating system, or -
to prompt you for the password on the command line.
This option enables you to set up encryption on VM.
The following command creates a VM called vm2
where you plan to run a 64-bit version of Oracle Linux.
$ VBoxManage createvm --name "vm2" --ostype "Oracle_64"
The following command creates and registers a VM called
vm3
.
$ VBoxManage createvm --name "vm3" --register
Introspection and guest debugging
The "debugvm" commands are for experts who want to tinker with the exact details of virtual machine execution. Like the VM debugger described in The Built-In VM Debugger, these commands are only useful if you are very familiar with the details of the PC architecture and how to debug software.
The subcommands of debugvm all operate on a running virtual machine:
Either the UUID or the name (case sensitive) of a VM.
Creates a system dump file of the specified VM. This file will have the standard ELF core format (with custom sections); see VM Core Format.
This corresponds to the writecore command in the debugger.
The name of the output file. This option is required.
Displays info items relating to the VMM, device emulations and associated drivers.
This corresponds to the info command in the debugger.
Name of the info item to display. The special name help will list all the available info items and hints about optional arguments.
Optional argument string for the info item handler. Most info items do not take any extra arguments. Arguments not recognized are generally ignored.
Causes a non-maskable interrupt (NMI) to be injected into the guest. This might be useful for certain debugging scenarios. What happens exactly is dependent on the guest operating system, but an NMI can crash the whole guest operating system. Do not use unless you know what you're doing.
Changes the group settings for either the debug (--debug) or release (--release) logger of the VM process.
The group-settings are typically strings of the form em.e.f.l, hm=~0 and -em.f. Basic wildcards are supported for group matching. The all group is an alias for all the groups.
Please keep in mind that the group settings are applied as modifications to the current values.
This corresponds to the log command in the debugger.
Changes the destination settings for either the debug (--debug) or release (--release) logger of the VM process. For details on the destination format, the best source is src/VBox/Runtime/common/log/log.cpp.
The destinations argument is one or more mnemonics, optionally prefixed by "no" to disable them. Some of these take values after a ":" or "=" separator. Multiple mnemonics can be separated by whitespace or given as separate arguments on the command line.
List of available destinations:
Specifies a log file. If no filename is given, one will be generated based on the current UTC time and VM process name and placed in the current directory of the VM process. Note that this will not have any effect if the log file has already been opened.
Specifies the output directory for log files. Note that this will not have any effect if the log file has already been opened.
A non-zero value enables log rotation, with the value specifying how many old log files to keep.
The max size of a log file before it is rotated. Default is infinite.
The max age (in seconds) of a log file before it is rotated. Default is infinite.
Only log to the log buffer until an explicit flush (e.g. via an assertion) occurs. This is fast and saves diskspace.
Write the log content to standard output.
Write the log content to standard error.
Write the log content to the debugger, if supported by the host OS.
Writes logging to the COM port. This is only applicable for raw-mode and ring-0 logging.
Custom destination which has no meaning to VM processes.
This corresponds to the logdest command in the debugger.
Changes the flags for either the debug (--debug) or release (--release) logger of the VM process. Please note that the modifications are applied to the existing values, they do not replace them.
The flags are a list of flag mnemonics, optionally prefixed by a "no", "!", "~" or "-" to negate their meaning. The "+" prefix can be used to undo a previous negation or as a separator, although it is better to use whitespace or separate arguments for that.
List of log flag mnemonics, with their opposite value where applicable (an asterisk indicates the default value):
Enables or disables logging.
Enables buffering of log output before it hits the destinations.
Whether to open the destination file with writethru buffering settings or not.
Enables flushing of the output file (to disk) after each log statement.
Prefix each log line with lock counts for the current thread.
Prefix each log line with the ID of the current CPU.
Prefix each log line with the current process ID.
Prefix each log line with the numeric flags corresponding to the log statement.
Prefix each log line with the flag mnemonics corresponding to the log statement.
Prefix each log line with the log group number for the log statement producing it.
Prefix each log line with the log group name for the log statement producing it.
Prefix each log line with the current thread identifier.
Prefix each log line with the current thread name.
Prefix each log line with the current UTC wall time.
Prefix each log line with the current monotonic time since the start of the program.
Prefix each log line with the current monotonic timestamp value in milliseconds since the start of the program.
Prefix each log line with the current monotonic timestamp value in nanoseconds.
Prefix each log line with the current CPU timestamp counter (TSC) value.
Selects whether the ts and tsc prefixes should be displayed as relative to the previous log line or as absolute time.
Selects whether the ts and tsc prefixes should be formatted as hexadecimal or decimal.
Custom log prefix, has by default no meaning for VM processes.
Output with DOS style (CRLF) or just UNIX style (LF) line endings.
Overwrite the destination file or append to it.
This corresponds to the logflags command in the debugger.
Make the VMM's debugger facility (re)-detect the guest operating system (OS). This will first load all debugger plug-ins.
This corresponds to the detect command in the debugger.
Displays information about the guest operating system (OS) previously detected by the VMM's debugger facility.
Displays the guest OS kernel log, if detected and supported.
Number of lines of the log to display, counting from the end. The default is infinite.
Retrieves register values for guest CPUs and emulated devices.
One or more registers, each having one of the following forms:
register-set.register-name.sub-field
register-set.register-name
cpu-register-name.sub-field
cpu-register-name
all
The all form will cause all registers to be shown (no sub-fields). The registers names are case-insensitive.
Selects the CPU register set when specifying just a CPU register (3rd and 4th form). The default is 0.
Changes register values for guest CPUs and emulated devices.
One or more register assignment, each having one of the following forms:
register-set.register-name.sub-field=value
register-set.register-name=value
cpu-register-name.sub-field=value
cpu-register-name=value
The value format should be in the same style as what getregisters displays, with the exception that both octal and decimal can be used instead of hexadecimal.
Selects the CPU register set when specifying just a CPU register (3rd and 4th form). The default is 0.
Shows logging settings for the VM.
Selects human readable output.
Selects output format as bourne shell style export commands.
Selects output format as bourne shell style eval command input.
Selects output format as DOS style SET commands.
What to display. One or more of the following:
logdbg-settings - debug log settings.
logrel-settings - release log settings.
log-settings - alias for both debug and release log settings.
Unwinds the guest CPU stacks to the best of our ability. It is recommended to first run the osdetect command, as this gives both symbols and perhaps unwind information.
Selects a single guest CPU to display the stack for. The default is all CPUs.
Displays or resets VMM statistics.
Retrieves register values for guest CPUs and emulated devices.
DOS/NT-style wildcards patterns for selecting statistics. Multiple patterns can be specified by using the '|' (pipe) character as separator.
Select reset instead of display mode.
Creates a sample report of the guest activity.
Retrieves the filename to dump the report to.
The filename to dump the sample report to.
The interval in microseconds between guest samples.
The amount of microseconds to take guest samples.
DHCP server management
The dhcpserver commands enable you to control the DHCP server that is built into Oracle VirtualBox. You may find this useful when using internal or host-only networking. Theoretically, you can also enable it for a bridged network, but that may cause conflicts with other DHCP servers in your physical network.
The subcommands of dhcpserver all operate on an internal network that can be identified via its name or in the host-only case via the host-only interface name:
The internal network name. This is the same name you would supply to the VBoxManage modifyvm --intnet option when configuring a VM for internal networking. The internal network name can be found labelled as VBoxNetworkName in the output of the following commands: VBoxManage list intnets, VBoxManage list natnets, or VBoxManage list hostonlyifs.
The host only interface name. This is the same value would supply to the VBoxManage modifyvm --host-only-adapter option when configuring a VM to use a host-only network. The value can also be found labelled as Name in the output of the VBoxManage list hostonlyifs command.
Adds a new DHCP server to a network or host-only interface.
Options configuring the DHCP server core:
The IP address the DHCP server should use.
The IP address range for the DHCP server to manage. This should not include the address of the DHCP server itself, but it must be in the same network. The boundaries are inclusive, so both the lower and upper addresses will be handed out to clients.
The network mask. Typically 255.255.255.0.
Whether to enable the DHCP server or disable it. If not specified, the server will be created in a disabled state and no IP addresses will be handed out.
Options selecting the scope:
Set the configuration scope to global. Any subsequent --set-opt options will be applied to all the DHCP clients.
Set the configuration scope to the first NIC of the specified VM. Any subsequent --set-opt options will apply just to that interface, nothing else.
Set the configuration scope to a NIC other than the first NIC of the VM specified in the --vm option.
Set the configuration scope to the specified MAC address.
Set the configuration scope to the specified group.
Options configuring the currently selected scope:
Adds the specified DHCP option number (0-255) and value. The value format is option specific (typically human readable) and will be validated by the API and the DHCP server.
Adds the specified DHCP option number (0-255) and value. The option value is specified as a raw series of hex bytes optionally separated by colons. No validation is performed on these by the API or the DHCP server, they will be passed as specified to the client.
Forces the specified DHCP option number (0-255) to be sent to the client whether it requested it or not (provided the option is configured with a value at some level).
Prevents the specified DHCP option number (0-255) from being sent to the client when present in this or a higher configuration scope.
Sets the minimum lease time for the current scope in seconds. Zero means taking the value from a higher option level or use the default value.
Sets the default lease time for the current scope in seconds. Zero means taking the value from a higher option level or use the default value.
Sets the maximum lease time for the current scope in seconds. Zero means taking the value from a higher option level or use default.
Fixed address assignment for a --vm or --mac-address configuration scope. Any empty address turns it back to dynamic address assignment.
Options configuring group membership conditions (excludes overrides includes):
Include the specific MAC address in the group.
Exclude the specific MAC address from the group.
Include the specific MAC address pattern in the group.
Exclude the specific MAC address pattern from the group.
Include the specific vendor class ID in the group.
Exclude the specific vendor class ID from the group.
Include the specific vendor class ID pattern in the group.
Exclude the specific vendor class ID pattern from the group.
Include the specific user class ID in the group.
Exclude the specific user class ID from the group.
Include the specific user class ID pattern in the group.
Exclude the specific user class ID pattern from the group.
The dhcpserver modify command modifies an existing DHCP server configuration. It takes the same options as the add command with the addition of the following options which have variable configuration scope:
Counterpart to --set-opt that will cause the specified DHCP option number (0-255) to be deleted from the server settings. Similar to --set-opt the scope of the deletion is governed by the --global, --vm, --mac-address and --group options.
Removes the specified DHCP option number (0-255) from the forced option list (i.e. the reverse of --force-opt). Similar to --set-opt the scope of the deletion is governed by the --global, --vm, --mac-address and --group options.
Removes the specified DHCP option number (0-255) from the suppressed option list (i.e. the reverse of --suppress-opt). Similar to --set-opt the scope of the deletion is governed by the --global, --vm, --mac-address and --group options.
Removes the configuration currently being scoped. The --global scope is not removable. The configuration scope will change to --global after this option.
And the addition of these group membership condition options:
Delete the specific MAC address from the group conditions.
Delete the specific MAC address pattern from the group conditions.
Delete the specific vendor class ID from the group conditions.
Delete the specific vendor class ID pattern from the group conditions.
Delete the specific user class ID from the group conditions.
Delete the specific user class ID pattern from the group conditions.
Deletes all the group conditions.
Removes the specified DHCP server.
Start the specified DHCP server.
Restarts the specified DHCP server. The DHCP server must be running.
Stops the specified DHCP server.
Performs a lease database lookup. This is mainly for getting the IP address of a running VM.
The MAC address to lookup in the lease database.
IPv4 netmask. Set to the value of the --netmask option by default.
UTC offset in seconds (32-bit decimal value).
Space separated list of IPv4 router addresses.
Space separated list of IPv4 time server (RFC 868) addresses.
Space separated list of IPv4 name server (IEN 116) addresses.
Space separated list of IPv4 DNS addresses.
Space separated list of IPv4 log server addresses.
Space separated list of IPv4 cookie server (RFC 865) addresses.
Space separated list of IPv4 line printer server (RFC 1179) addresses.
Space separated list of IPv4 imagen impress server addresses.
Space separated list of IPv4 resource location (RFC 887) addresses.
The client name. See RFC 1035 for character limits.
Number of 512 byte blocks making up the boot file (16-bit decimal value).
Client core file.
Domain name for the client.
IPv4 address of the swap server that the client should use.
The path to the root disk the client should use.
Path to a file containing additional DHCP options (RFC2123).
Whether IP forwarding should be enabled by the client (boolean).
Whether non-local datagrams should be forwarded by the client (boolean)
List of IPv4 addresses and masks pairs controlling non-local source routing.
The maximum datagram size the client should reassemble (16-bit decimal value).
The default time-to-leave on outgoing (IP) datagrams (8-bit decimal value).
RFC1191 path MTU discovery timeout value in seconds (32-bit decimal value).
RFC1191 path MTU discovery size table, sorted in ascending order (list of 16-bit decimal values).
The MTU size for the interface (16-bit decimal value).
Indicates whether the MTU size is the same for all subnets (boolean).
Broadcast address (RFC1122) for the client to use (IPv4 address).
Whether to perform subnet mask discovery via ICMP (boolean).
Whether to respond to subnet mask requests via ICMP (boolean).
Whether to perform router discovery (RFC1256) (boolean).
Where to send router solicitation requests (RFC1256) (IPv4 address).
List of network and router address pairs addresses.
Whether to negotiate the use of trailers for ARP (RTF893) (boolean).
The timeout in seconds for ARP cache entries (32-bit decimal value).
Whether to use IEEE 802.3 (RTF1042) rather than of v2 (RFC894) ethernet encapsulation (boolean).
Default time-to-live for TCP sends (non-zero 8-bit decimal value).
The interface in seconds between TCP keepalive messages (32-bit decimal value).
Whether to include a byte of garbage in TCP keepalive messages for backward compatibility (boolean).
The NIS (Sun Network Information Services) domain name (string).
Space separated list of IPv4 NIS server addresses.
Space separated list of IPv4 NTP (RFC1035) server addresses.
Vendor specific information. Only accessible using --set-opt-hex.
Space separated list of IPv4 NetBIOS name server (NBNS) addresses (RFC1001,RFC1002).
Space separated list of IPv4 NetBIOS datagram distribution server (NBDD) addresses (RFC1001,RFC1002).
NetBIOS node type (RFC1001,RFC1002): 1=B-node, 2=P-node, 4=M-node, and 8=H-node (8-bit decimal value).
NetBIOS scope (RFC1001,RFC1002). Only accessible using --set-opt-hex.
Space separated list of IPv4 X windows font server addresses.
Space separated list of IPv4 X windows display manager addresses.
Netware IP domain name (RFC2242) (string).
Netware IP information (RFC2242). Only accessible using --set-opt-hex.
The NIS+ domain name (string).
Space separated list of IPv4 NIS+ server addresses.
TFTP server name (string).
Bootfile name (string).
Space separated list of IPv4 mobile IP agent addresses.
Space separated list of IPv4 simple mail transport protocol (SMTP) server addresses.
Space separated list of IPv4 post office protocol 3 (POP3) server addresses.
Space separated list of IPv4 network news transport protocol (NTTP) server addresses.
Space separated list of default IPv4 world wide web (WWW) server addresses.
Space separated list of default IPv4 finger server addresses.
Space separated list of default IPv4 internet relay chat (IRC) server addresses.
Space separated list of IPv4 StreetTalk server addresses.
Space separated list of IPv4 StreetTalk directory assistance (STDA) server addresses.
Address of one or more service location protocol (SLP) directory agents, and an indicator of whether their use is mandatory. Only accessible using --set-opt-hex.
List of service scopes for the service location protocol (SLP) and whether using the list is mandatory. Only accessible using --set-opt-hex.
Domain search list, see RFC3397 and section 4.1.4 in RFC1035 for encoding. Only accessible using --set-opt-hex.
Discard the saved state of a virtual machine
The VBoxManage discardstate command discards the saved state of a virtual machine (VM) that is not currently running. This command causes the VM's operating system to restart the next time you start the VM.
Where possible, avoid performing this action. The effects of this command are equivalent to unplugging the power cable on a physical machine.
Specifies the Universally Unique Identifier (UUID) or name of the VM.
The following command discards the saved state file for the VM called vm2. When you next start the VM, the VM's operating system is restarted.
$ VBoxManage discardstate vm2
Manage a DEK-encrypted medium or image
The VBoxManage encryptmedium command enables you to create and manage a DEK-encrypted medium or image. You can encrypt an image, decrypt an image, and change the encryption password of an image. See Encrypting Disk Images.
Specifies the Universally Unique Identifier (UUID) or the absolute path name of the medium or image to encrypt.
Specifies the new encryption password.
password is either the absolute
path name of a password file on the host operating system or
-
, which prompts you for the password.
You must use the --newpasswordid option with this --newpassword option.
Specifies the original encryption password.
password is either the absolute
path name of a password file on the host operating system or
-
, which prompts you for the original
password.
This option enables you to gain access to an encrypted medium or image to do the following:
Decrypt an encrypted image by using this option by itself.
Change the password of the encrypted image by using the --newpassword option.
Change the encryption cipher of the image by using the --cipher option.
Specifies the cipher to use for encryption. Valid values are
AES-XTS128-PLAIN64
or
AES-XTS256-PLAIN64
.
This option enables you to set up or change encryption on the medium or image.
Specifies a new password identifier that is used for correct identification when supplying multiple passwords during VM startup.
If you use the same password and password identifier when encrypting multiple images, you need to supply the password only one time during VM startup.
The following example shows how to encrypt the
ol7u4-1.vdi image by using the
AES-XTS128-PLAIN64
cipher, specifying a
password identifier of 1001
, and using the
$HOME/pwfile password file:
$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-1.vdi" \ --cipher="AES-XTS128-PLAIN64" --newpasswordid="1001" --newpassword=$HOME/pwfile
The following example shows how to decrypt an encrypted image called ol7u4-2.vdi:
$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-2.vdi" \
--oldpassword=-
Password: original-password
The following example shows how to change the password for an
encrypted image called ol7u4-3.vdi. The
command reads the original password from the
$HOME/pwfile.orig file, reads the new
password from the $HOME/pwfile file, and
assigns a password identifier of 1001
.
$ VBoxManage encryptmedium "$HOME/VirtualBox VMs/ol7u4/ol7u4-3.vdi" \ --oldpassword=$HOME/pwfile.orig --newpassword=$HOME/pwfile --newpasswordid="1001"
Change encryption and passwords of the VM
The VBoxManage encryptvm command enables you to change the encryption or add and remove user passwords for the virtual machine (VM). The following sections describe the subcommands that you can use:
The VBoxManage encryptvm vmname setencryption command changes encryption of a VM.
Use the --old-password to supply old encryption
password. Either specify the absolute pathname of a password file
on the host operating system, or -
to prompt
you for the old password.
Use the --cipher option to specify the
new cipher for encryption of the VM. Only AES-128
and AES-256
are supported. Appropriate mode
GCM, CTR or XTS will be selected by VM depending on encrypting
component.
Use the --new-password option to specify the
new password for encryption of the VM. Either specify the absolute
pathname of a password file on the host operating system, or
-
to prompt you for the new password.
Use the --new-password-id option to specify the new id for the password for encryption of the VM.
Use the --force option to make the system to reencrypt the VM instead of simple changing the password.
The VBoxManage encryptvm vmname checkpassword command checks the correctness of the supplied password.
The password can be supplied from file. Specify the absolute
pathname of a password file on the host operating system. Also,
you can specify -
to prompt you for the password.
The VBoxManage encryptvm vmname addpassword command adds a password for decrypting the VM.
Use the --password to supply the encryption
password. Either specify the absolute pathname of a password file
on the host operating system, or -
to prompt
you for the password.
Use the --password-id option to specify the id the password is supplied for.
The VBoxManage encryptvm vmname removepassword command removes a password used for decrypting the VM.
Specify the password identifier for removing. The password becomes unknown and the VM can not be decrypted.
The following command encrypts the ol7 VM using AES-256 giving password via command prompt:
$ VBoxManage encryptvm ol7 setencryption --cipher=AES-256 --new-password - --new-password-id vmid
Export one or more virtual machines to a virtual appliance or to a cloud service
The VBoxManage export command enables you to export one or more virtual machines (VMs) from Oracle VirtualBox into to one of the following formats:
A virtual appliance in OVF format. This includes copying the VM's virtual disk images to compressed VMDK.
A cloud service such as Oracle Cloud Infrastructure. Exports a single VM.
For more information about exporting VMs from Oracle VirtualBox, see Importing and Exporting Virtual Machines.
The VBoxManage export command enables you to export a VM as a virtual appliance in OVF format.
Specifies a comma-separated list of one or more machines to export to the same OVF file.
Specifies the target OVF file. The file can be OVF, OVA, or a ZIP file compressed with the gzip command. Because the directory that contains the target OVF file will also store the exported disk images in the compressed VMDK format, ensure that this directory has sufficient disk space in which to store the images.
The short form of this option is -o.
Exports in OVF 0.9 legacy mode if the virtualization product is not fully compatible with the OVF 1.0 standard.
Exports in OVF 0.9 format.
Exports in OVF 1.0 format.
Exports in OVF 2.0 format.
Creates a manifest of the exported files.
Specifies information to control the exact content of the appliance file. Specify one or more comma-separated arguments:
manifest
Produces a manifest file that detects corrupted appliances on import.
iso
Exports DVD images in an ISO file.
nomacs
Excludes all MAC addresses.
nomacsbutnat
Excludes all MAC addresses except for those in a NAT network.
Specifies a description of the VM.
Specifies an end-user license text.
Specifies an end-user license file.
Specifies a product name.
Specifies a product URL.
Specifies a vendor name.
Specifies a vendor URL.
Specifies version information.
Specifies the name of the VM to export.
Specifies the number of the virtual system.
The VBoxManage export command enables you to export a VM to a cloud service provider such as Oracle Cloud Infrastructure. By default, the exported disk image is converted into compressed VMDK format. This minimizes the amount of data to transfer to the cloud service.
Some of the following options are configuration settings for the VM instance. As a result, specify an Oracle Cloud Identifier (OCID) for a resource. Use the Oracle Cloud Infrastructure Console to view OCIDs.
Specifies the short name of the cloud service provider to
which you export the VM. For Oracle Cloud Infrastructure, specify
OCI://
.
The short form of this option is -o.
Exports in Oracle Cloud Infrastructure format.
Specifies a number that identifies the VM to export.
Numbering starts at 0
for the first VM.
Specifies the name of the exported VM, which is used as the VM instance name in Oracle Cloud Infrastructure.
Specifies the cloud profile to use to connect to the cloud service provider. The cloud profile contains your Oracle Cloud Infrastructure account details, such as your user OCID and the fingerprint for your public key.
To use a cloud profile, you must have the required permissions on Oracle Cloud Infrastructure.
Specifies the shape used by the VM instance. The shape defines the number of CPUs and the amount of memory that is allocated to the VM instance. Ensure that the shape is compatible with the exported image.
Specifies the availability domain to use for the VM instance. Enter the full name of the availability domain.
Specifies the amount of disk space, in gigabytes, to use for the exported disk image. Valid values are from 50 GB to 300 GB.
Specifies the bucket in which to store uploaded files. In Oracle Cloud Infrastructure, a bucket is a logical container for storing objects.
Specifies the OCID of the virtual cloud network (VCN) to use for the VM instance.
Specifies the OCID of the VCN subnet to use for the VM instance.
Specifies whether to store the exported disk image in Oracle Object Storage.
Specifies whether to start the VM instance after the export to Oracle Cloud Infrastructure completes.
Specifies the launch mode used for the instance. Paravirtualized mode gives improved performance.
Specifies whether to enable a public IP address for the VM instance.
The following example shows how to export the
myVM
VM to Oracle Cloud Infrastructure. The command's option
arguments describe the configuration of the
myVM_Cloud
VM in Oracle Cloud Infrastructure.
# VBoxManage export myVM --output=OCI:// --cloud=0 --vmname=myVM_Cloud \ --cloudprofile="standard user" --cloudbucket=myBucket \ --cloudshape=VM.Standard2.1 --clouddomain=US-ASHBURN-AD-1 --clouddisksize=50 \ --cloudocivcn=ocid1.vcn.oc1.iad.aaaa... --cloudocisubnet=ocid1.subnet.oc1.iad.aaaa... \ --cloudkeepobject=true --cloudlaunchinstance=true --cloudpublicip=true
Extension package management
Installs a new extension pack on the system. This command will fail if an older version of the same extension pack type is already installed and the --replace isn't supplied. The --replace option uninstalls any previously installed extension packs of the same type being installed before the new extension pack is installed.
Uninstall existing extension pack before installing the specified extension pack.
Accept the license text with the given SHA-256 hash value.
VBoxManage will display the SHA-256 value when performing a manual installation. The hash can be calculated manually by extracting the license file from the extension pack using tar(1) and running sha256sum or similar to generate the hash value.
The file containing the extension pack to be installed.
Uninstalls an extension pack from the system. The subcommand will also succeed in the case where the specified extension pack is not present on the system. You can use VBoxManage list extpacks to list the names of the extension packs which are currently installed.
Overrides most refusals to uninstall an extension pack
The name of the extension pack to be uninstalled.
Used to remove temporary files and directories that may have been left behind if a previous install or uninstall command failed.
$ VBoxManage list extpacks Extension Packs: 1 Pack no. 0: Oracle VirtualBox Extension Pack Version: 4.1.12 Revision: 77218 Edition: Description: USB 2.0 Host Controller, VirtualBox RDP, PXE ROM with E1000 support. VRDE Module: VBoxVRDP Usable: true Why unusable:
$ VBoxManage extpack uninstall "Oracle VirtualBox Extension Pack" 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Successfully uninstalled "Oracle VirtualBox Extension Pack".
View keyword values that are associated with a virtual machine or configuration
The VBoxManage getextradata command enables you to retrieve keyword data that is associated with a virtual machine (VM) or with an Oracle VirtualBox configuration.
global
Specifies to retrieve information about the configuration rather than a VM.
Specifies the Universally Unique Identifier (UUID) or name of the VM.
enumerate
Shows all keyword values for the specified VM or configuration.
Specifies the keyword for which to retrieve its value.
The following command retrieves the installdate
keyword value for the Fedora5
VM:
$ VBoxManage getextradata Fedora5 installdate
VirtualBox Command Line Management Interface Version version-number
Copyright (C) 2005-2024 Oracle and/or its affiliates
Value: 2006.01.01
The following command retrieves the information for all keywords
of the OracleLinux7u4
VM:
$ VBoxManage getextradata OracleLinux7u4 enumerate Key: GUI/LastCloseAction, Value: PowerOff Key: GUI/LastGuestSizeHint, Value: 1048,696 Key: GUI/LastNormalWindowPosition, Value: 851,286,1048,738
The following command retrieves the information for all keywords in the configuration:
$ VBoxManage getextradata global enumerate Key: GUI/LastItemSelected, Value: m=OracleLinux7u4 Key: GUI/LastWindowPosition, Value: 951,510,960,520 Key: GUI/SplitterSizes, Value: 318,637 Key: GUI/Toolbar/MachineTools/Order, Value: Details Key: GUI/Tools/LastItemsSelected, Value: Welcome,Details Key: GUI/UpdateCheckCount, Value: 71 Key: GUI/UpdateDate, Value: 1 d, 2022-10-10, stable, 7.0.0 Key: GUI/VirtualMediaManager/Details/Expanded, Value: true
Control a virtual machine from the host system
The VBoxManage guestcontrol command enables you to control a guest (VM) from the host system. See Guest Control of Applications.
The following options can be used by any of the VBoxManage guestcontrol subcommands:
Specifies the Universally Unique Identifier (UUID) or name of the VM.
Specifies that the command produce quieter output.
The short form of this option is -q.
Specifies that the command produce more detailed output.
The short form of this option is -v.
Some of the VBoxManage guestcontrol subcommands require that you provide guest credentials for authentication. The subcommands are: copyfrom, copyto, fsinfo, mkdir, mktemp, mount, mv, rmdir, rm, run, start, and stat.
While you cannot perform anonymous executions, a user account password is optional and depends on the guest's OS security policy. If a user account does not have an associated password, specify an empty password. On OSes such as Windows, you might need to adjust the security policy to permit user accounts with an empty password. In addition, global domain rules might apply and therefore cannot be changed.
The following options are used for authentication on the guest VM:
Specifies the user domain for Windows guest VMs.
Specifies the password for the specified user. If you do not specify a password on the command line or if the password is empty, the specified user needs to have an empty password.
Specifies the absolute path to a file on the host system that contains the password for the specified user. If the password file is empty or if you do not specify a password on the command line, the specified user needs to have an empty password.
Specifies an existing user in the guest OS that runs the process. If unspecified, the name of the user on the host invoking the VBoxManage command will be used as the username for the guest OS login.
By default, you can run up to 255 guest processes simultaneously. If attempting to start a new guest process would exceed this limit and there are inactive guest processes then the the oldest inactive guest process is discarded to run the new process. You cannot retrieve the output from a discarded guest process. If all 255 guest processes are active and running, attempting to start a new guest process fails.
The VBoxManage guestcontrol vmname run command enables you to execute a program in the guest VM. Standard input, standard output, and standard error are redirected from the VM to the host system until the program completes.
Microsoft Windows imposes certain limitations when running graphical user interface applications launched using VBoxManage guestcontrol run. See Known Limitations.
Specifies the absolute path of the executable program to run in the guest VM. For example: C:\Windows\System32\calc.exe.
Specifies an alternate name (i.e. arg0 or argv[0]) for the executable being run in the guest.
Specifies the absolute path of a directory in which to start the program. Optional. The directory must exist and be accessible to the guest user. For example: C:\Users\production\work_area.
The short form of this option is -C.
Specifies the maximum amount of time, in milliseconds, that the program can run. While the program runs, VBoxManage receives its output.
If you do not specify a timeout value, VBoxManage waits indefinitely for the process to end, or for an error to occur.
Sets, modifies, and unsets environment variables in the guest VM environment.
When you create a guest process, it runs with the default standard guest OS environment. Use this option to modify environment variables in that default environment.
Use the --putenv=NAME=[value] option to set or modify the environment variable specified by NAME.
Use the --putenv=NAME= option to unset the environment variable specified by NAME.
Ensure that any environment variable name or value that includes spaces is enclosed by quotes.
Specify a --putenv option for each environment variable that you want to modify.
The short form of this option is -E.
Disables the escaped double quoting of arguments that you
pass to the program. For example,
\"fred\"
.
Ignores orphaned processes. Not yet implemented.
Uses a shell profile to specify the environment to use. Not yet implemented.
Does not wait for the guest process to end or receive its exit code and any failure explanation.
Waits for the guest process to end to receive its exit code and any failure explanation. The VBoxManage command receives the standard output of the guest process while the process runs.
Does not wait for the guest process to end to receive its exit code, error messages, and flags.
Waits for the guest process to end to receive its exit code, error messages, and flags. The VBoxManage command receives the standard error of the guest process while the process runs.
Transform DOS or Windows guest output to UNIX or Linux output. This transformation changes CR + LF line endings to LF. Not yet implemented.
Transform UNIX or Linux guest output to DOS or Windows output. This transformation changes LF line endings to CR + LF.
Specifies one or more arguments to pass to the program being run in the guest.
Ensure that any command argument that includes spaces is enclosed by quotes.
The VBoxManage guestcontrol vmname start command enables you to execute a guest program and returns after the command has been successfully started. The invoked command doesn't wait until all data from stdout or stderr has been read before returning.
Microsoft Windows imposes certain limitations when running graphical user interface applications launched using VBoxManage guestcontrol start. See Known Limitations.
The VBoxManage guestcontrol vmname copyfrom command enables you to copy a file from the guest VM to the host system.
Enables following of symbolic links on the guest file system.
Only copies a file if it does not exist on the host yet.
The short form of this option is -n.
Recursively copies files and directories from the specified guest directory to the host.
The short form of this option is -R.
Specifies the absolute path of the destination directory on the host system. For example, C:\Temp.
Only copies a file if the guest file is newer than on the host.
The short form of this option is -u.
Specifies the absolute path of one or more files to copy from the guest VM. For example, C:\Windows\System32\calc.exe. You can use wildcards to specify multiple files. For example, C:\Windows\System*\*.dll.
The VBoxManage guestcontrol vmname copyto command enables you to copy a file from the host system to the guest VM.
Enables following of symbolic links on the host system.
Only copies a file if it does not exist on the guest yet.
The short form of this option is -n.
Recursively copies files and directories from the specified host directory to the guest.
The short form of this option is -R.
Specifies the absolute path of the destination directory on the guest. For example, /home/myuser/fromhost.
Only copies a file if the host file is newer than on the guest.
The short form of this option is -u.
Specifies the absolute path of a file to copy from the host system. For example, C:\Windows\System32\calc.exe. You can use wildcards to specify multiple files. For example, C:\Windows\System*\*.dll.
The VBoxManage guestcontrol vmname fsinfo command enables you to show filesystem information of the guest VM.
An alternate form of this subcommand is df.
Shows the disk sizes in a human readable form.
Produces a grand total of all disk sizes.
Specifies an absolute path to show guest filesystem information for.
The VBoxManage guestcontrol vmname mkdir command enables you to create one or more directories on the guest VM.
Alternate forms of this subcommand are md, createdir, and createdirectory.
Creates any of the missing parent directories of the specified directory.
For example, if you attempt to create the D:\Foo\Bar directory and the D:\Foo directory does not exist, using the --parents creates the missing D:\Foo directory. However, if you attempt to create the D:\Foo\Bar and do not specify the --parents option, the command fails.
Specifies the permission mode to use for the specified
directory. If you specify the --parents
option, the mode is used for the associated parent
directories, as well. mode is a
four-digit octal mode such as 0755
.
Specifies an absolute path of one or more directories to create on the guest VM. For example, D:\Foo\Bar.
If all of the associated parent directories do not exist on the guest VM, you must specify the --parents option.
You must have sufficient rights on the guest VM to create the specified directory and its parent directories.
The VBoxManage guestcontrol vmname rmdir command enables you to delete the specified directory from the guest VM.
Alternate forms of this subcommand are removedir and removedirectory.
Recursively removes directories from the specified from the guest VM.
The short form of this option is -R.
Specifies an absolute path of one or more directories to remove from the guest VM. You can use wildcards to specify the directory names. For example, D:\Foo\*Bar.
You must have sufficient rights on the guest VM to remove the specified directory and its parent directories.
The VBoxManage guestcontrol vmname rm command enables you to delete the specified files from the guest VM.
The alternate form of this subcommand is removefile.
Forces the operation and overrides any confirmation requests.
The short form of this option is -f.
Specifies an absolute path of one or more files to remove from the guest VM. You can use wildcards to specify the file names. For example, D:\Foo\Bar\text*.txt.
You must have sufficient rights on the guest VM to remove the specified file.
The VBoxManage guestcontrol vmname mv command enables you to rename files and directories on the guest VM.
Alternate forms of this subcommand are move, ren, and rename.
Specifies an absolute path of a file or a single directory to move or rename on the guest VM. You can use wildcards to specify the file names.
You must have sufficient rights on the guest VM to access the specified file or directory.
Specifies the absolute path of the renamed file or directory, or the destination directory to which to move the files. If you move only one file, dest can be a file or a directory, otherwise dest must be a directory.
You must have sufficient rights on the guest VM to access the destination file or directory.
The VBoxManage guestcontrol vmname mktemp command enables you to create a temporary file or temporary directory on the guest VM. You can use this command to assist with the subsequent copying of files from the host system to the guest VM. By default, this command creates the file or directory in the guest VM's platform-specific temp directory.
Alternate forms of this subcommand are createtemp and createtemporary.
Creates a temporary directory that is specified by the template operand.
Enforces secure file and directory creation by setting the
permission mode to 0755
. Any operation
that cannot be performed securely fails.
Specifies the permission mode to use for the specified
directory. mode is a four-digit
octal mode such as 0755
.
Specifies the absolute path of the directory on the guest VM in which to create the specified file or directory. If unspecified, directory is the platform-specific temp directory.
Specifies a template file name for the temporary file, without a directory path. The template file name must contain at least one sequence of three consecutive X characters, or must end in X.
The VBoxManage guestcontrol vmname mount command enables you to the current mount points on the guest VM. For Windows guests this shows the mapped drives.
The VBoxManage guestcontrol vmname stat command enables you to show the status of files or file systems on the guest VM.
Specifies an absolute path of a file or file system on the guest VM. For example, /home/foo/a.out.
You must have sufficient rights on the guest VM to access the specified files or file systems.
The VBoxManage guestcontrol vmname list command enables you to list guest control configuration and status information. For example, the output shows open guest sessions, guest processes, and files.
all
|sessions
|processes
|files
Indicates the type of information to show.
all
shows all available data,
sessions
shows guest sessions,
processes
shows processes, and
files
shows files.
The VBoxManage guestcontrol vmname closeprocess command enables you to terminate a guest process that runs in a guest session. Specify the process by using a process identifier (PID) and the session by using the session ID or name.
Specifies the ID of the guest session.
Specifies the name of the guest session. Use a pattern that contains wildcards to specify multiple sessions.
Specifies the list of PIDs of guest processes to terminate.
The VBoxManage guestcontrol vmname closesession command enables you to close a guest session. Specify the guest session either by session ID or by name.
Specifies the ID of the guest session.
Specifies the name of the guest session. Use a pattern that contains wildcards to specify multiple sessions.
Closes all guest sessions.
The VBoxManage guestcontrol vmname updatega command enables you to update the Guest Additions software installed in the specified guest VM.
Alternate forms of this subcommand are updateadditions and updateguestadditions.
Specifies the absolute path of the Guest Additions update .ISO file on the guest VM.
Automatically reboots the guest after a successful Guest Additions update.
Sets the timeout (in ms) to wait for the overall Guest Additions update to complete. By default no timeout is being used.
Verifies whether the Guest Additions were updated successfully after a successful installation. A guest reboot is mandatory.
Waits for the current Guest Additions being ready to handle the Guest Additions update.
Starts the VBoxManage update process on the guest VM and then waits for the Guest Additions update to begin before terminating the VBoxManage process.
By default, the VBoxManage command waits for the Guest Additions update to complete before it terminates. Use this option when a running VBoxManage process affects the interaction between the installer and the guest OS.
Specifies optional command-line arguments to pass to the Guest Additions updater. You might use the -- option to pass the appropriate updater arguments to retrofit features that are not yet installed.
Ensure that any command argument that includes spaces is enclosed by quotes.
The VBoxManage guestcontrol vmname waitrunlevel command enables you to wait for a guest run level being reached.
Sets the timeout (in ms) to wait for reaching the run level. By default no timeout is being used.
Specifies the run level to wait for.
The VBoxManage guestcontrol vmname watch command enables you to show current guest control activity.
The following VBoxManage guestcontrol run
command executes the ls -l /usr command on the
My OL VM
Oracle Linux VM as the
user1
user.
$ VBoxManage --nologo guestcontrol "My OL VM" run --exe "/bin/ls" \ --username user1 --passwordfile pw.txt --wait-stdout -- -l /usr
The --exe option specifies the absolute path of the command to run in the guest VM, /bin/ls. Use the -- option to pass any arguments that follow it to the ls command.
Use the --username option to specify the user
name, user1
and use the
--passwordfile option to specify the name of a
file that includes the password for the user1
user, pw.txt.
The --wait-stdout option waits for the ls guest process to complete before providing the exit code and the command output. The --nologo option suppresses the output of the logo information.
The following VBoxManage guestcontrol run
command executes the ipconfig command on the
My Win VM
Windows VM as the
user1
user. Standard input, standard output,
and standard error are redirected from the VM to the host system
until the program completes.
$ VBoxManage --nologo guestcontrol "My Win VM" run \ --exe "c:\\windows\\system32\\ipconfig.exe" \ --username user1 --passwordfile pw.txt --wait-stdout
The --exe specifies the absolute path of command to run in the guest VM, c:\windows\system32\ipconfig.exe. The double backslashes shown in this example are required only on UNIX host systems.
Use the --username option to specify the user
name, user1
and use the
--passwordfile option to specify the name of a
file that includes the password for the user1
user, pw.txt.
The --wait-stdout option waits for the ls guest process to complete before providing the exit code and the command output. The --nologo option to suppress the output of the logo information.
The following VBoxManage guestcontrol start
command executes the ls -l /usr command on the
My OL VM
Oracle Linux VM until the program
completes.
$ VBoxManage --nologo guestcontrol "My Win VM" start \ --exe "c:\\windows\\system32\\ipconfig.exe" \ --username user1 --passwordfile pw.txt
The following VBoxManage guestcontrol run
command executes a /usr/bin/busybox -l /usr
command on the My OL VM
Oracle Linux VM as the
user1
user, explicitly using ls
as argument 0.
$ VBoxManage --nologo guestcontrol "My OL VM" run --exe "/usr/bin/busybox" \ --username user1 --passwordfile pw.txt --wait-stdout --arg0 ls -- -l /usr
The --exe option specifies the absolute path of the command to run in the guest VM, /usr/bin/busybox. Use the -- option to pass any arguments that follow it to the busybox command.
Use the --username option to specify the user
name, user1
and use the
--passwordfile option to specify the name of a
file that includes the password for the user1
user, pw.txt.
The --wait-stdout option waits for the ls guest process to complete before providing the exit code and the command output. The --nologo option suppresses the output of the logo information.
The --arg0 option explicitly specifies the argument 0 to use for the command to execute.
The default value of argument 0 (i.e. arg0 or argv[0]) is the value from the --exe option unless the --arg0 option has been supplied.
Manage virtual machine guest properties
The VBoxManage guestproperty command enables
you to set or retrieve the properties of a running virtual machine
(VM). See Guest Properties. Guest properties
are arbitrary name-value string pairs that can be written to and
read from by either the guest or the host. As a result, these
properties can be used as a low-overhead communication channel for
strings provided that a guest is running and has the Guest
Additions installed. In addition, the Guest Additions
automatically set and maintain values whose keywords begin with
/VirtualBox/
.
Specifies the Universally Unique Identifier (UUID) or name of the VM.
The VBoxManage guestproperty enumerate command lists each guest property and value for the specified VM. Note that the output is limited if the guest's property store is not being updated, for example because the VM is not running or because the Oracle VirtualBox Guest Additions are not installed.
Display the timestamp relative to current time.
Do not display the timestamp of the last update.
Do not display the flags.
Use the output format from VirtualBox 6.1 and earlier.
Filters the list of properties based on the specified pattern, which can contain the following wildcard characters:
*
(asterisk)
Represents any number of characters. For example,
the /VirtualBox*
pattern matches
all properties that begin with
/VirtualBox
.
?
(question mark)
Represents a single arbitrary character. For
example, the fo?
pattern matches
both foo
and
for
.
|
(pipe)
Specifies multiple alternative patterns. For
example, the s*|t*
pattern
matches any property that begins with
s
or t
.
The VBoxManage guestproperty get command retrieves the value of the specified property. If the property cannot be found, for example because the guest is not running, the command issues the following message:
No value set!
Specifies the name of the property.
Provides the property value, timestamp, and any specified value attributes.
The VBoxManage guestproperty set command enables you to set a guest property by specifying the property and its value. If you omit the value, the property is deleted.
Specifies the name of the property.
Specifies the value of the property. If no value is specified, any existing value is removed.
Specify the additional attributes of the value. The following attributes can be specified as a comma-separated list:
TRANSIENT
Removes the value with the VM data when the VM exits.
TRANSRESET
Removes the value when the VM restarts or exits.
RDONLYGUEST
Specifies that the value can be changed only by the host and that the guest can read the value.
RDONLYHOST
Specifies that the value can be changed only by the guest and that the host can read the value.
READONLY
Specifies that the value cannot be changed.
The VBoxManage guestproperty wait command waits for a particular value that is described by the pattern string to change, to be deleted, or to be created.
Specifies a pattern that matches the properties on which you want to wait. For information about the pattern wildcards, see the description of the --patterns option.
Specifies the number of microseconds to wait.
Specifies that the command fails if the timeout is reached.
The VBoxManage guestproperty unset command unsets the value of a guest property.
The alternate form of this subcommand is delete.
Specifies the name of the property.
The following command lists the guest properties and their values
for the win8
VM.
$ VBoxManage guestproperty enumerate win8
The following command creates a guest property called
region
for the win8
VM. The
value of the property is set to west
.
$ VBoxManage guestproperty set win8 region west
Manage host-only network interfaces
The VBoxManage hostonlyif command enables you to change the IP configuration of a host-only network interface. For a description of host-only networking, see Host-Only Networking. Each host-only network interface is identified by a name and can either use the internal DHCP server or a manual IP configuration, both IPv4 and IPv6.
The VBoxManage hostonlyif ipconfig command configures a host-only interface.
Specifies the name of the network interface. The name is
of the form
vboxnet
N
where N is the interface
instance.
Uses DHCP for the network interface.
You cannot use this option with the --ip, --ipv6, --netmask, or --netmasklengthv6 options.
Specifies the IPv4 IP address for the network interface.
You cannot use this option with the --dhcp, --ipv6, or --netmasklengthv6 options.
Specifies the IPv4 netmask of the network interface. The
default value is 255.255.255.0
.
You can only use this option with the --ip option.
Specifies the IPv6 IP address for the network interface.
You cannot use this option with the --dhcp, --ip, or --netmask options.
Specifies the length of the IPv6 network interface. The
default value is 64
.
You can only use this option with the --ipv6 option.
The VBoxManage hostonlyif create command
creates a new host-only network interface on the host operating
system (OS). The network interface name is of the form
vboxnet
N where
N is the interface instance. You must
run this command before you can attach virtual machines (VMs) to
the host-only network.
This command is currently unavailable on Solaris hosts but the equivalent functionality is to run ifconfig vboxnet0 plumb as root or with sufficient privileges.
The VBoxManage hostonlyif remove command removes the specified host-only network interface from the host OS.
This command is currently unavailable on Solaris hosts but the equivalent functionality is to run ifconfig vboxnet0 unplumb as root or with sufficient privileges.
Specifies the name of the network interface. The name is
of the form
vboxnet
N
where N is the interface
instance.
The following command creates a new host-only network interface.
$ VBoxManage hostonlyif create 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100% Interface 'vboxnet2' was successfully created
The following command configures the IPv4 address for the
vboxnet2
host-only network interface.
$ VBoxManage hostonlyif ipconfig vboxnet2 --ip 10.0.2.18
Host Only Network management
The hostonlynet commands enable you to control host-only networks.
The subcommands of hostonlynet all operate on an host-only network that can be identified via its name or uuid:
The host-only network name. You see it as VBoxNetworkName in the output from VBoxManage list hostonlynets.
The host-only network uuid. If not specified when adding a new network, one will be generated automatically.
Adds a new host-only network.
Options configuring the host-only network:
The network mask. Typically 255.255.255.0.
The IP address range for handing out via DHCP. The upper boundrary is inclusive while the lower one is not, so the upper address will be handed out to a client, while the lower address will be used by the host itself.
Whether to enable the host-only network or disable it. If not specified, the network will be created in enabled state.
This modifies an existing host-only network configuration. It takes the same options as the add command.
Removes the specified host-only network.
Import a virtual appliance in OVF format or from a cloud service and create virtual machines
The VBoxManage import command imports a virtual appliance either in OVF format or from a cloud service such as Oracle Cloud Infrastructure (OCI). The import is performed by copying virtual disk images (by default using the VMDK image format) and by creating virtual machines (VMs) in Oracle VirtualBox. See Importing and Exporting Virtual Machines.
You must specify the path name of an OVF file or OVA archive to use as input, or a placeholder for the cloud case. For OVF appliances ensure that any disk images are in the same directory as the OVF file.
Note that any options you specify to control the imported virtual appliance or to modify the import parameters rely on the contents of the OVF file or the information from the cloud service.
Before you use the import operation to create the VM, perform a dry run to verify the correctness of your configuration. This is more useful with an OVF or OVA appliance, because with a cloud service even a dry run needs to perform most of the time consuming steps.
The import from a cloud service downloads a temporary file containing both the boot image and some metadata describing the details of the VM instance. The temporary file is deleted after successful import.
Specifies the name of the OVF file or OVA archive that
describes the appliance. In the cloud case this is usually
a fixed string such as OCI://
.
Performs a dry run of the VBoxManage import command instead of performing the actual import operation. A dry run operation does the following:
Outputs a description of the appliance's contents based on the specified OVF or OVA file.
Shows how the appliance would be imported into Oracle VirtualBox. In addition, the output shows any options that you can use to change the import behavior.
The shortened form of this option is -n.
Enables you to fine-tune the import operation.
Valid arguments are as follows:
keepallmacs
: Specifies that the MAC
addresses of every virtual network card are left
unchanged.
keepnatmacs
: Specifies that the MAC
addresses of every virtual network card are left
unchanged if the network type is NAT.
importtovdi
: Specifies that all new
disk images are to be created using the VDI file format.
Specifies the guest operating system (OS) information for the VM. Use the VBoxManage list ostypes command to view the OS type identifiers.
Specifies the name for the imported VM to be used by Oracle VirtualBox.
Specifies the folder where the files of the imported VM are stored.
Specifies the memory size in Megabytes for the imported VM.
Specifies the number of CPUs for the imported VM.
Specifies the description text visible in the GUI and CLI when checking the VM details.
The following options are specific to importing a virtual appliance in OVF or OVA format. Such an appliance can contain one or more VMs, which requires specifying which VM configuration should be adjusted in case you want to change it. See Importing an Appliance in OVF Format.
Specifies the index selecting a specific VM within the appliance. Affects the following options.
Specifies the index selecting a specific unit of a VM within the appliance. Affects the following options.
Specifies the filename (as a relative or absolute path) of the VM config file which will be created as part of the import. The preferred way to rename the settings file is to override the VM name using the --vmname option and if necessary specify the folder in which to create the VM with --basefolder.
Specifies the primary group of the imported VM.
Enables you to show or accept the license conditions of a VM within the appliance,
Valid arguments are as follows:
show
: Shows the EULA of a VM.
accepts
: Accepts the EULA of a VM.
Any VMs in an appliance which have an EULA require
accepting it, otherwise the import will fail.
Ignores the hardware associated with the VM specified with the --unit option when importing the VM, effectively removing all of its associated hardware.
Enables you to select the type of the SCSI controller for the current unit of an imported VM.
Valid arguments are as follows:
BusLogic
: Uses the (very old) BusLogic
SCSI controller type.
LsiLogic
: Uses the (more modern)
LsiLogic SCSI controller type.
The following options are specific to importing a VM instance from a cloud service provider. It always deals with a single VM. See Importing an Instance from Oracle Cloud Infrastructure.
Specifies that the import should be from the cloud.
Specifies the cloud profile which is used to connect to the cloud service provider. The cloud profile contains your Oracle Cloud Infrastructure account details, such as your user OCID and the fingerprint for your public key. To use a cloud profile, you must have the required permissions on Oracle Cloud Infrastructure.
Specifies the ID of an existing instance in the cloud.
Specifies the bucket name in which to store the object created from the instance. In Oracle Cloud Infrastructure, a bucket is a logical container for storing objects. By default the first bucket available with the cloud profile is used.
The following example performs the dry run of an OVF import operation for a sample appliance that contains a Windows 10 guest:
$ VBoxManage import Windows10.ovf --dry-run Interpreting Windows10.ovf... OK. Virtual system 0: 0: Suggested OS type: "Windows10_64" (change with "--vsys 0 --ostype <type>"; use "list ostypes" to list all) 1: Suggested VM name "win10-appliance" (change with "--vsys 0 --vmname <name>") 2: Suggested VM group "/" (change with "--vsys 0 --group <group>") 3: Suggested VM settings file name "/home/user1/VirtualBox VMs/win10-appliance/win10-appliance.vbox" (change with "--vsys 0 --settingsfile <filename>") 4: Suggested VM base folder "/home/user1/VirtualBox VMs" (change with "--vsys 0 --basefolder <path>") 5: End-user license agreement (display with "--vsys 0 --eula show"; accept with "--vsys 0 --eula accept") 6: Number of CPUs: 1 (change with "--vsys 0 --cpus <n>") 7: Guest memory: 2048 MB (change with "--vsys 0 --memory <MB>") 8: Sound card (appliance expects "ensoniq1371", can change on import) (disable with "--vsys 0 --unit 8 --ignore") 9: USB controller (disable with "--vsys 0 --unit 9 --ignore") 10: Network adapter: orig bridged, config 2, extra type=bridged 11: Floppy (disable with "--vsys 0 --unit 11 --ignore") 12: SCSI controller, type BusLogic (change with "--vsys 0 --unit 12 --scsitype {BusLogic|LsiLogic}"; disable with "--vsys 0 --unit 12 --ignore") 13: IDE controller, type PIIX4 (disable with "--vsys 0 --unit 13 --ignore") 14: Hard disk image: source image=Windows10.vmdk, target path=/home/user1/disks/Windows10.vmdk, controller=12;channel=0 (change target path with "--vsys 0 --unit 14 --disk <path>"; change controller with "--vsys 0 --unit 14 --controller <index>"; change controller port with "--vsys 0 --unit 14 --port <n>"; disable with "--vsys 0 --unit 14 --ignore")
The dry run output lists and numbers the individual configuration items that are described in the Windows10.ovf file. Some of the items include information about how to disable or change the configuration of the item.
You can disable many of the items by using the --vsys
X --unit Y
--ignore options. X is the
number of the virtual system. The value is 0
unless the appliance includes several virtual system descriptions.
Y is the configuration item number.
Item 1 in the example command output specifies the name of the target machine. Items 12 and 13 specify the IDE and SCSI hard disk controllers, respectively.
Item 14 indicates the hard disk image and the --disk option specifies the target path where the image will be stored, the --controller option specifies which controller the disk will be attached to, and the --port option specifies which port on the controller the disk will be attached to. The default values are specified in the OVF file.
You can combine several items for the same virtual system by specifying the same value for the --vsys option. For example use the following command to import a machine as described in the OVF, exclude the sound card and USB controller and specify that the disk image is stored with a different name.
$ VBoxManage import Windows10.ovf --vsys 0 --unit 8 --ignore \ --unit 9 --ignore --unit 14 --disk Windows10_disk0.vmdk
The following example illustrates how to import a VM from Oracle Cloud Infrastructure. To find the Oracle Cloud Infrastructure VM instances and its ID you can list all available instances with:
$ VBoxManage cloud --provider=OCI --profile=cloud-profile-name list instances
Once you know the ID the following command imports the instance from Oracle Cloud Infrastructure:
$ VBoxManage import OCI:// --cloud --vmname OCI_FreeBSD_VM --memory 4000 \ --cpus 3 --ostype FreeBSD_64 --cloudprofile "standard user" \ --cloudinstanceid ocid1.instance.oc1.iad.abuwc... --cloudbucket myBucket
View system information and VM configuration details
The VBoxManage list subcommands enable you to obtain information about the Oracle VirtualBox software, the VMs and associated services that you create.
Shows detailed information about each information entry if available. The short form of this option is -l.
Filters the output by the given platform architecture (if available, otherwise ignored). The short form of this option is -p.
Sorts the list of information entries alphabetically. The short form of this option is -s.
The VBoxManage list bridgedifs command lists the bridged network interfaces that are currently available on the host system. The output shows detailed configuration information about each interface. See Virtual Networking.
The VBoxManage list cloudnets command lists the cloud network interfaces that have been configured. A cloud network interface provides connectivity between local VMs and a cloud network.
The VBoxManage list cloudprofiles command lists the cloud profiles that have been configured. A cloud profile contains settings for a cloud service account.
The VBoxManage list cloudproviders command lists the cloud providers that are supported by Oracle VirtualBox. Oracle Cloud Infrastructure is an example of a cloud provider.
The VBoxManage list cpu-profiles command lists the CPU profiles that are known by Oracle VirtualBox.
The VBoxManage list dhcpservers command lists the DHCP servers that are currently available on the host system. The output shows detailed configuration information about each DHCP server. See Virtual Networking.
The VBoxManage list dvds command shows information about the DVD virtual disk images that are currently in use by the Oracle VirtualBox software. For each image, the output shows all the settings, the UUIDs associated with the image by Oracle VirtualBox, and all files associated with the image.
This command performs the same function as the Virtual Media Manager. See The Virtual Media Manager.
The VBoxManage list extpacks command shows all Oracle VirtualBox extension packs that are currently installed. See Installing Oracle VirtualBox and Extension Packs and VBoxManage extpack.
The VBoxManage list floppies command shows information about the floppy disk images that are currently in use by the Oracle VirtualBox software. For each image, the output shows all the settings, the UUIDs associated with the image by Oracle VirtualBox, and all files associated with the image.
This command performs the same function as the Virtual Media Manager. See The Virtual Media Manager.
The VBoxManage list hddbackends command lists all known virtual disk backends of the Oracle VirtualBox software. For each such format, such as VDI, VMDK, or RAW, this command lists the backend's capabilities and configuration.
The VBoxManage list hdds command shows information about the hard disk virtual disk images that are currently in use by the Oracle VirtualBox software. For each image, the output shows all the settings, the UUIDs associated with the image by Oracle VirtualBox, and all files associated with the image.
This command performs the same function as the Virtual Media Manager. See The Virtual Media Manager.
The VBoxManage list hostcpuids command lists CPUID information for each CPU on the host system. Use this information to perform a more fine grained analyis of the host system's virtualization capabilities.
The VBoxManage list hostdrives command lists the disk drives on the host system potentially useful for creating a VMDK raw disk image. Each entry includes the name used to reference them from within Oracle VirtualBox.
The VBoxManage list hostdvds command lists the DVD drives on the host system. Each DVD entry includes the name used to access them from within Oracle VirtualBox.
The VBoxManage list hostfloppies command lists the floppy disk drives on the host system. Each floppy disk entry includes the name used to access them from within Oracle VirtualBox.
The VBoxManage list hostinfo command shows information about the host system. The output includes information about the CPUs, memory, and the OS version.
The VBoxManage list hostonlyifs command lists the host-only network interfaces that are currently available on the host system. The output shows detailed configuration information about each interface. See Virtual Networking.
The VBoxManage list hostonlynets command lists the host-only networks that have been configured. A host-only network provides connectivity between the host and local VMs. See Virtual Networking.
The VBoxManage list intnets command shows information about the internal networks. See Virtual Networking.
The VBoxManage list natnets command lists the NAT network interfaces that are currently available on the host system. See Virtual Networking.
The VBoxManage list ostypes command lists all guest operating systems (OSes) that are known to Oracle VirtualBox. Each OS entry includes an identifier, a description, a family identifier, a family description, and whether the OS has 64-bit support.
You can use these identifiers with the VBoxManage modifyvm command.
The VBoxManage list ossubtypes command lists all guest operating system (OS) subtypes along with the associated guest OS descriptions that are known to Oracle VirtualBox. Each list entry includes a guest OS family identifier, the guest OS subtypes associated with that OS family (if any), and a description the guest OSes associated with that OS subtype.
The VBoxManage list runningvms command lists all virtual machines (VMs) that are currently running. By default this displays a compact list that shows the name and UUID of each VM.
The VBoxManage list screenshotformats command shows the list of available screen shot formats.
The VBoxManage list systemproperties command shows a large collection of global Oracle VirtualBox settings and limits, such as minimum and maximum guest RAM, virtual hard disk size, folder settings, and the current authentication library in use.
The VBoxManage list usbfilters command lists all global USB filters registered with Oracle VirtualBox and displays the filter parameters. Global USB filters are for devices which are accessible to all virtual machines.
The VBoxManage list usbhost command shows information about the USB devices that are attached to the host system. The output includes information that you can use to construct USB filters and indicates whether the device is currently in use by the host system.
The VBoxManage list vms command lists all virtual machines (VMs) that are currently registered with Oracle VirtualBox. By default this command displays a compact list that shows the name and UUID of each VM.
The VBoxManage list webcams command shows the list of webcams that are attached to the running VM.
The output is a list of absolute paths or aliases that are used to attach the webcams to the VM by using the VBoxManage webcam attach command.
The following command lists the VM groups configured for Oracle VirtualBox.
$ VBoxManage list groups "/Linux-VMs" "/Windows-VMs"
The following command lists the VMs that are currently running.
$ VBoxManage list runningvms "ol7" {ol7-UUID} "win8" {win8-UUID}
Medium content access
The subcommands of mediumio all operate on a medium which must be specified using one of the following options along with an optional encryption password. The following common options can be placed before or after the sub-command:
Either the UUID or filename of a harddisk image, e.g. VDI, VMDK, VHD, ++.
Either the UUID or filename of a DVD image, e.g. ISO, DMG, CUE.
Either the UUID or filename of a floppy image, e.g. IMG.
The name of a file containing the medium encryption password. If - is specified, the password will be read from stdin.
Formats a medium with the FAT file system. This will erase the contents of the medium.
Quickformat the medium.
Dumps the contents of the medium to stdout or the specified file.
Dump as hex bytes.
The byte offset in the medium to start.
The number of bytes to dump.
The output filename. As usual - is take to mean stdout.
Converts the medium to a streamable format and dumps it to the given output.
The format of the destination image.
The medium variant for the destination.
The output filename. As usual - is take to mean stdout.
Manage medium properties
The VBoxManage mediumproperty command enables you to set, retrieve, or delete a medium property.
The VBoxManage mediumproperty set command enables you to set a medium property.
disk | dvd | floppy
Specifies the type of medium. Valid values are
disk
(hard drive),
dvd
, or floppy
.
Specifies the Universally Unique Identifier (UUID) or absolute path name of the medium or image.
Specifies the name of the property.
Specifies the value of the specified property.
The VBoxManage mediumproperty get command enables you to retrieve the value of a medium property.
disk | dvd | floppy
Specifies the type of medium. Valid values are
disk
(hard drive),
dvd
, or floppy
.
Specifies the Universally Unique Identifier (UUID) or absolute path name of the medium or image.
Specifies the name of the property.
The VBoxManage mediumproperty delete command enables you to delete a medium property.
disk | dvd | floppy
Specifies the type of medium. Valid values are
disk
(hard drive),
dvd
, or floppy
.
Specifies the Universally Unique Identifier (UUID) or absolute path name of the medium or image.
Specifies the name of the property.
The following command sets the property called
prop1
to val1
for the
ol7.vdi disk image.
$ VBoxManage mediumproperty disk set ol7.vdi prop1 val1
The following command gets the value of the property called
prop1
for the ol7.vdi disk
image.
$ VBoxManage mediumproperty disk get ol7.vdi prop1
Monitor system resource usage
The VBoxManage metrics command enables you to
monitor system resource usage for the host system and for virtual
machines (VMs). For example, you can monitor particular metrics,
such as the percentage of time CPUs spend executing in user mode
(CPU/Load/User
), over a specified sampling
period.
Use the VBoxManage metrics query command to retrieve data at any time.
By default, metrics are not collected unless you run the VBoxManage metrics setup command to specify a sampling interval in seconds and the number of metrics to save.
Note that you can enable metric collection only for running VMs. Collected data and collection settings for a VM are discarded when the VM shuts down.
The host and VMs have different sets of associated metrics which you can view by running the VBoxManage metrics list command.
Each metric is represented as a string that is composed of a category and a metric. Optionally, the metric string can include any of the following: a submetric, a sub-submetric, and an aggregate. The metric string has the following format:
category/metric[/submetric[/sub-submetric]][:aggregate]
category is the resource type,
such as CPU
, RAM
,
FS
, Net
.
metric is a measurement type that
is associated with the resource category. For example, the
Load
and MHz
metrics
are associated with the CPU
resource
category.
submetric is an optional
measurement type that is associated with the metric. For
example, the User
,
Kernel
, and Idle
submetrics are associated with the Load
metric.
sub-submetric is an optional
measurement type that is associated with the submetric. For
example, the Rx
and Tx
sub-submetrics are associated with the
Rate
submetric of the
Net
resource category. The associated
metric is the network interface.
aggregate is an optional function
to provide minimum, maximum, and average measurements for a
resource category. For example, the
RAM/Usage/Free:min
metric represents the
minimum amount of available memory found in all saved data
on the host system.
By default, the VBoxManage metrics commands operate on the host system and all VMs, and report on all metrics. You can optionally limit these commands to operate on the host system or on a particular VM, and report on a list of one or more metrics.
*
| host
| vmnameSpecifies the component on which to operate. By default, this command operates on the host system and all running VMs.
If you specify host
, the
VBoxManage metrics command operates on
the host system only. If you specify an asterisk
(*
), the command operates on all VMs.
If you specify the name of a VM, the VBoxManage
metrics command operates on that VM.
Specifies a comma-separated list of one or more metrics.
The form of the metric must include the category and metric part of the metric string separated by a slash.
Note that the VBoxManage metrics enable
and VBoxManage metrics disable commands
require that you specify metrics as parameters. The
metrics must include only the resource category and metric
part, such as CPU/Load
and
RAM/Usage
.
The VBoxManage metrics collect command collects and outputs data periodically until you stop the process by pressing Ctrl+C.
Disables the collection of metric data, so no data is output. Using this option is the same as running the VBoxManage metrics setup command.
Shows which metrics match the specified filter.
Specifies the number of seconds to wait between collecting metric data samples. The default value is 1.
Specifies the number of metric data samples to save. To view the saved data, use the VBoxManage metrics query command. The default value is 1.
The VBoxManage metrics disable command suspends data collection. This action does not affect the data collection properties or the collected data. Note that specifying a submetric in the metric list does not disable its underlying metrics.
Note that the VBoxManage metrics disable
command requires that you specify metrics as parameters. The
metrics must include only the resource category and metric part,
such as CPU/Load
and
RAM/Usage
.
Shows whether the command succeeded as expected.
The VBoxManage metrics enable command resumes data collection after it has been suspended by using the VBoxManage metrics disable command. Note that specifying a submetric in the metric list does not enable its underlying metrics.
Unlike the VBoxManage metrics setup command, the VBoxManage metrics enable command does not discard previously collected samples for the specified set of objects and metrics.
Note that the VBoxManage metrics enable
command requires that you specify metrics as parameters. The
metrics must include only the resource category and metric part,
such as CPU/Load
and
RAM/Usage
.
Shows whether the command succeeded as expected.
The VBoxManage metrics list command shows the metrics that are currently available. Note that VM-specific metrics are shown only when that VM is running.
The VBoxManage metrics query command retrieves and shows the saved metric data.
Note that the VBoxManage metrics query command does not remove or flush saved data but older samples are replaced by newer samples over time.
The VBoxManage metrics setup command configures metric-gathering properties.
Note that this command discards any previously collected samples for the specified set of objects and metrics. To enable or disable metrics collection without discarding the data, use the VBoxManage metrics enable command or the VBoxManage metrics disable command, respectively.
Shows which metrics have been modified as a result of the command execution.
Specifies the number of seconds to wait between collecting metric data samples. The default value is 1.
Specifies the number of metric data samples to save. To view the saved data, use the VBoxManage metrics query command. The default value is 1.
The following example command enables the collection of host processor and memory usage metrics every second. The --samples option saves the five latest samples.
$ VBoxManage metrics setup --period 1 --samples 5 host CPU/Load,RAM/Usage
The following command lists the metrics that are available to the host system and VMs:
$ VBoxManage metrics list
Note that the host system and VMs have different sets of metrics.
The following example shows how to query metric data about the CPU
time spent in user and kernel modes for the
test
VM:
$ VBoxManage metrics query test CPU/Load/User,CPU/Load/Kernel
Change the characteristics of an existing disk image
The VBoxManage modifymedium command enables you to change the characteristics of an existing disk image.
For compatibility with earlier versions of Oracle VirtualBox, you can use the modifyvdi and modifyhd commands.
Specifies the media type of the image.
Specifies the Universally Unique Identifier (UUID) or path name of the disk image on the host file system. You can specify the UUID only if the medium is registered. Use the VBoxManage list hdds command to list the registered images. You can specify an absolute or relative path to the medium.
Specifies whether to automatically reset an immutable hard
disk on every virtual machine (VM) startup. This option is
only for immutable hard disks and the default value is
on
. See Special Image Write Modes.
Compresses disk images by removing blocks that contain only zeroes. This option shrinks a dynamically allocated image and reduces the physical size of the image without affecting the logical size of the virtual disk.
You can use this option for base images and for differencing images that are created as part of a snapshot.
Before you compress the image, you must use a suitable software tool to zero out free space in the guest system. For example:
Windows guests. Run the sdelete -z command.
Linux guests. Use the
zerofree utility, which supports
ext2
and ext3
file systems.
Mac OS X guests. Use the diskutil secureErase freespace 0 / command.
Note that you can only use this option to compress VDI images. To compress non-VID images, you can zero out free blocks and then clone the disk to any other dynamically allocated format.
Specifies a text description of the medium.
Specifies a relative or absolute path to a medium on the host system. Use this option to relocate a medium to a different location on the host system.
Specifies a property name and value for the medium.
Specifies the new capacity of an existing image in MB. You can use this option only to expand the capacity of an image. You can cannot shrink the capacity of an image.
Note that you can only resize dynamically allocated disk images that use the VDI and VHD formats. This option adjusts the logical size of a virtual disk and has only a minor affect on the physical size.
For example, if your dynamically allocated 10 GB disk is full, you can use the --resize 15360 option to increase the capacity of the existing disk to 15 GB (15,360 MB). This operation enables you to avoid having to create a new image and copy all data from within a VM.
Note that using this option only changes the capacity of the drive. So, you might need to subsequently use a partition management tool in the guest to adjust the main partition to fill the drive.
Specifies the new capacity of an existing image in bytes. This option is similar to the --resize option, but you specify the size in bytes instead of megabytes.
Specifies the new location of the medium on the host system after the medium has been moved. The path name can be relative to the current directory or be absolute to the root.
Note that the VBoxManage modifymedium command does not perform any sanity checks on the path name you specify. Ensure that the path name is valid.
Specifies the new mode type of an existing image. Valid
values are normal
,
immutable
,
writethrough
,
multi-attach
,
shareable
, and
readonly
. For descriptions of these mode
types, see Special Image Write Modes.
The following command modifies the description for the disk image file called disk01.vdi.
$ VBoxManage modifymedium disk disk01.vdi --description "Oracle Linux 7 image"
The following command modifies the write mode for the disk image file called disk01.vdi.
$ VBoxManage modifymedium disk disk01.vdi --type writethrough
List and modify the NVRAM content of a virtual machine
The "modifynvram" commands are for experts who want to inspect and modify the UEFI variable store of a virtual machine. Any mistakes made here can result in a non-bootable virtual machine.
The subcommands of modifynvram all operate on a running virtual machine:
Either the UUID or the name (case sensitive) of a VM.
Initalizes the UEFI variable store to a default state. Any previous existing variable store is deleted. Use with extreme caution!
Enrolls the default Microsoft KEK and DB signatures required for UEFI secure boot.
Enrolls the default platform key provided by Oracle required for UEFI secure boot.
Enrolls a custom platform key provided by the user required for UEFI secure boot. The following commands use openssl to generate a new platform key:
$ openssl req -new -x509 -newkey rsa:2048 -keyout PK.key -out PK.crt
$ openssl x509 -in PK.crt -out PK.cer -outform DER
The platform key provided as a DER encoded X.509 signature.
The UUID identifying the owner of the platform key.
Enables or disables UEFI secure boot.
Enables UEFI secure boot if the state of the key enrolment permits.
Disables UEFI secure boot.
Lists all UEFI variables in the virtual machine's store along with their owner UUID.
Queries the content of a given UEFI variable identified by its name.
UEFI variable name to query.
Where to store the content of the variable upon success. This is optional, if omitted the content will be dumped to the terminal as a hex dump.
Deletes the given variable identified by its name and owner UUID.
UEFI variable name to delete.
The UUID identifying the owner of the variable to delete.
Changes the UEFI variable content to the one form the given file.
UEFI variable name to change the data for.
The file to read the data from.
Change settings for a virtual machine that is stopped