Starting with VirtualBox 4.2.0 it is possible to start VMs automatically during system boot on Linux, Solaris and Mac OS X for all users.
On Linux, the autostart service is activated by setting two variables in
/etc/default/virtualbox
.
The first one is VBOXAUTOSTART_DB
which
contains an absolute path to the autostart database directory.
The directory should have write access for every user who should be able to
start virtual machines automatically. Furthermore the directory should have the
sticky bit set.
The second variable is VBOXAUTOSTART_CONFIG
which points the service to the autostart configuration file which is used
during boot to determine whether to allow individual users to start a VM
automatically and configure startup delays.
The configuration file can be placed in /etc/vbox
and contains several options. One is default_policy
which controls whether the autostart service allows or denies to start a VM
for users which are not in the exception list.
The exception list starts with exception_list
and contains a comma separated list with usernames. Furthermore a separate
startup delay can be configured for every user to avoid overloading the host.
A sample configuration is given below:
# Default policy is to deny starting a VM, the other option is "allow". default_policy = deny # Bob is allowed to start virtual machines but starting them # will be delayed for 10 seconds bob = { allow = true startup_delay = 10 } # Alice is not allowed to start virtual machines, useful to exclude certain users # if the default policy is set to allow. alice = { allow = false }
Every user who wants to enable autostart for individual machines has to set the path to the autostart database directory with
VBoxManage setproperty autostartdbpath <Autostart directory>
On Solaris hosts, the VirtualBox autostart daemon is
integrated into the SMF framework. To enable it you have to point the service
to an existing configuration file which has the same format as on Linux (see Section 9.24.1, “Linux: starting the autostart service via init
”):
svccfg -s svc:/application/virtualbox/autostart:default setprop config/config=/etc/vbox/autostart.cfg
When everything is configured correctly you can start the VirtualBox autostart service with the following command:
svcadm enable svc:/application/virtualbox/autostart:default
For more information about SMF, please refer to the Solaris documentation.
On Mac OS X, launchd is used to start the VirtualBox autostart service. An
example configuration file can be found in
/Applications/VirtualBox.app/Contents/MacOS/org.virtualbox.vboxautostart.plist
.
To enable the service copy the file to /Library/LaunchDaemons
and change the
Disabled
key from
true
to
false
. Furthermore replace the second parameter
to an existing configuration file which has the same format as on Linux (see Section 9.24.1, “Linux: starting the autostart service via init
”).
To manually start the service use the following command:
launchctl load /Library/LaunchDaemons/org.virtualbox.vboxautostart.plist
For additional information on how launchd services could be
configured see http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html
.