0% found this document useful (0 votes)
73 views3 pages

An Introduction To The VirtualBox CLI

This document provides an introduction to using the VirtualBox command line interface (CLI) tool vboxmanage. It outlines some basic commands for listing, starting, stopping, and modifying virtual machines. These include commands to list VMs, start and stop VMs, view and modify VM configurations, and control aspects of running VMs.

Uploaded by

yoyon_handsome
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
73 views3 pages

An Introduction To The VirtualBox CLI

This document provides an introduction to using the VirtualBox command line interface (CLI) tool vboxmanage. It outlines some basic commands for listing, starting, stopping, and modifying virtual machines. These include commands to list VMs, start and stop VMs, view and modify VM configurations, and control aspects of running VMs.

Uploaded by

yoyon_handsome
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

An Introduction to the VirtualBox CLI

10 Nov 2016 · Filed in Education


This post provides a basic introduction to the VirtualBox CLI
(command-line interface) tool, vboxmanage. This post does not
attempt to replace the comprehensive documentation; rather, its
purpose is to help users who are new to vboxmanage (such as myself,
having recently adopted VirtualBox for my Vagrant environments) get
somewhat up to speed as quickly and as painlessly as possible.

Basic Commands
Let’s start with some basic operations. Here are a few to get you
started:

 To list all the registered VMs, simply run vboxmanage list vms.


Note that if you are using Vagrant with VirtualBox, this
command will also show VirtualBox VMs that have been
instantiated by Vagrant. Similarly, if you are using Docker
Machine with VirtualBox, this command will show you VMs
created by Docker Machine.
 To list all the running VMs, use vboxmanage list runningvms.
 To start a VM, run vboxmanage startvm <name or UUID>. You
can optionally specify a --type parameter to control how the VM
is started. Using --type gui will show it via the host GUI;
using --type headless means you’ll need to interact over the
network (typically via SSH). To emulate Vagrant/Docker
Machine-like behavior, you’d use --type headless.
 Once a VM is running, you’ll switch to vboxmanage controlvm
<subcommand> for most other operations.
Valid <subcommands> related to VM state operations include
pause, resume, reset, poweroff, and savestate. (There’s a whole
ton of additional subcommands, a few of which I’ll discuss later
in this post.)
 To unregister (remove) a stopped VM, the command vboxmanage
unregister <name or UUID> will do it for you. Keep in mind this
does not delete the VM’s files. To delete the files, add the --
delete flag to the command.

Viewing and Modifying the Configuration of a Stopped VM


To view the information about a VM, run vboxmanage showvminfo
<name or UUID>. Because this command is “read only” (it doesn’t
attempt to modify the configuration of the VM in any way), you can
use this on running, paused, or stopped VMs.

To change the configuration of a stopped VM, you’ll use


the modifyvm keyword to vboxmanage. Here are some quick examples
of modifying the configuration of a stopped VM:

 To change the name of a VM, use vboxmanage modifyvm <name


or UUID> --name <new name>. Note that you wouldn’t want to
do this for Vagrant- or Docker Machine-managed VirtualBox
VMs, as you would likely break the relationship between the VM
and Vagrant/Docker Machine.
 To change a VM’s description, you’d use vboxmanage modifyvm
<name or UUID> --description <new description>.
 To change the amount of RAM assigned to a VM, use vboxmanage
modifyvm <name or UUID> --memory <RAM in MB>.
 To change the number of virtual CPUs assigned to a VM,
use vboxmanage modifyvm <name or UUID> --cpus <number>.
 To put a VM’s NIC into promiscuous mode (typically necessary if
you are running a software switch in the VM), use vboxmanage
modifyvm <name or UUID> --nicpromisc<num> allow-all,
where <num> is the number of the NIC from VirtualBox’s
perspective (“nicpromisc1” would target the equivalent of “eth0”,
“nicpromisc2” would target the equivalent of “eth1”, and so
forth).

Note that these commands won’t work on a paused VM; the VM must


actually be shutdown/stopped. If the VM isn’t stopped, then you’ll
need to switch from the modifyvm command to
the controlvm command, as described in the next section.
Modifying the Configuration of a Running VM
Not all configuration options can be modified for a running VM, but
for those that can you can use the controlvm subcommand. I’ve
already discussed the controlvm subcommands that affect VM state
(pause, resume, reset, poweroff, and savestate); here are a few more
that you might find useful:

 To simulate a “disconnected” eth0 link in the VM,


use vboxmanage controlvm <name or UUID> setlinkstate1
off. (As with the “nicpromis” command, the number on the end
of “setlinkstate” refers to the number of the NIC you’d like to
affect). Run vboxmanage controlvm <name or UUID>
setlinkstate1 on to restore the connection. (This is more
handy than it may seem at first glance.)
 You can change a NIC’s promiscuous mode setting on the fly
while the VM is running; just use vboxmanage controlvm <name
or UUID> nicpromisc<num> allow-all. To make “eth1” in the
VM named “vm-name” promiscuous, for example, you’d
run vboxmanage controlvm vm-name nicpromisc2 allow-all.
Change “allow-all” to “deny” to reverse the effect.
 To change the configuration of a NIC—meaning, to change the
VirtualBox network to which it connects—use vboxmanage
controlvm nic<num> <network type>. For example, to connect
“eth1” to a hostonly network, you’d use vboxmanage controlvm
<name or UUID> nic2 hostonly.

You might also like