Passing data between the VirtualBox Host and the Guest
Posted
by Fat Bloke
on Oracle Blogs
See other posts from Oracle Blogs
or by Fat Bloke
Published on Fri, 13 Apr 2012 06:20:32 -0500
Indexed on
2012/04/13
17:38 UTC
Read the original article
Hit count: 268
/VirtualBox
Here's a good question: "How can you figure out the VM name from within the VM itself?"
While this data is not automatically available, the general purpose, and very powerful VirtualBox "GuestProperty" APIs can be used from the host and guest to pass arbitrary data, in key/value pairs format, in and out of the guest. Note that this does require that the VirtualBox Guest Additions have been installed in the guest.
To play with this, try using the "VBoxManage" command line on your VirtualBox host machine, and "VBoxControl" in the guest.
Host syntax
VBoxManage guestproperty get <vmname>|<uuid> <property> [--verbose] VBoxManage guestproperty set <vmname>|<uuid> <property> [<value> [--flags <flags>]] VBoxManage guestproperty enumerate <vmname>|<uuid> [--patterns <patterns>] VBoxManage guestproperty wait <vmname>|<uuid> <patterns> [--timeout <msec>] [--fail-on-timeout]
Guest syntax
VBoxControl.exe guestproperty get <property> [-verbose] VBoxControl.exe guestproperty set <property> [<value> [-flags <flags>]] VBoxControl.exe guestproperty enumerate [-patterns <patterns>] VBoxControl.exe guestproperty wait <patterns> [-timestamp <last timestamp>] [-timeout <timeout in ms>
So to solve our problem above, we set the vm name in the Host system on an arbitrary key like this:
$ VBoxManage guestproperty set "Windows 7 (x64)" /MyData/VMname "Windows 7 (x64)"
And within the guest we can use:
C:\Program Files\Oracle\VirtualBox Guest Additions>VBoxControl.exe guestproperty get /MyData/VMname Oracle VM VirtualBox Guest Additions Command Line Management Interface Version 4.1.14 (C) 2008-2012 Oracle Corporation All rights reserved. Value: Windows 7 (x64)
The GuestProperty API is pretty powerful, so for the interested, get more info in the User Manual.
- FB
© Oracle Blogs or respective owner