40

How would I share a VirtualBox image? I am a developer and I want to be able to allow other developers to develop on their machines from the same image.

Is there an easy way of doing this? Every week we would like to share our images.

8 Answers 8

28

Juding from your comment above, as of VirtualBox 4.0 you can copy the entire machine folder, settings, virtual hard disk and all to another physical machine (such as your co-workers), import the VM (or double click on the .vbox file) and you'll probably be ready to roll. You might have to change the network addaptor and RAM if you have different setups.

If you have a pre-4.0 release then it's simple enough to copy the .vdi virtual disk to a co-workers machine, and set up a new VM with the copied hard disk as it's primary.

The longest bit is the copying, be it to USB then to computer, or over the network, but, yes, it's fully possible.

4
  • Merging in the relevant bits of machine.xml to VirtualBox.xml was always painful under 2.x and 3.x. Much easier under 4.0 with double clicking the .vbox file.
    – Goyuix
    Jan 17, 2011 at 20:50
  • @Goyuix, yes, that's why I would prefer to just copy the disk image across and create a new machine setting.
    – tombull89
    Jan 17, 2011 at 21:57
  • Thanks guys, I will do this. Once again thank you for helping me out guys.
    – Darren
    Jan 18, 2011 at 17:35
  • 2
    @tombull89, as for the copying, I once copied a 30 GB image using a torrent (with a public torrent tracker, and I copied the .torrent file with a USB). The torrent client took care of error-corrections, network disconnections, finding the source computer, etc. And the speed was as good as the connection allowed it.
    – sashoalm
    Dec 14, 2011 at 10:15
19

You could use the GUI File->Export Appliance function to create an appliance and then pass the resultant .ovf and .vmdk files to your colleagues who can use the File->Import Appliance to import it.

7

Tombull89 and SabreWolfy, if there is ever a chance one of those images will get copied back to the source machine, the simple copy will NOT work. You will want to clone or export. VirtualBox places UUIDs into the .VDI or .VHD and will complain loudly when it finds another file with the same UUID, so loudly in fact that the guest may no longer boot. Snapshots are differences from the previous snapshot and also have UUIDs. Would not recommend VBox snapshots until you have a great deal of experience with them.

1
  • 2
    "Would not recommend VBox snapshots until you have a great deal of experience with them." Circular logic bomb! :)
    – rinogo
    Oct 2, 2015 at 18:17
3

This question is 3 years old, but anyway, I think Vagrant is what you need:

Vagrant provides easy to configure, reproducible, and portable work environments built on top of industry-standard technology and controlled by a single consistent workflow to help maximize the productivity and flexibility of you and your team.

To achieve its magic, Vagrant stands on the shoulders of giants. Machines are provisioned on top of VirtualBox, VMware, AWS, or any other provider. Then, industry-standard provisioning tools such as shell scripts, Chef, or Puppet, can be used to automatically install and configure software on the machine.

You can easily share VirtualBox machines with your team.

0

You mean to keep resetting it to a clean slate or...?

You can't run multiple copies of VB with the same drive image; you'd corrupt it. You could try using the virtualized image with RDP access (if the guest OS supports multiple access) or you can copy the image out (but it's a LOT of disk space...) Or you can set up a basic image and install something like Deep Freeze or a similar product that would keep "resetting" the image to a clean slate at each reboot.

Those are the solutions that strike me off the top of my head. Otherwise you'd need to keep copying a "template" to the developer's systems, but it's a lot of data to push. Also remember that if you had a number of people hitting a virtual image you may slow it down to a crawl.

Another option might be to create a bare-metal VMWare ESXi system, install your virtual machines with snapshots taken of what image you want it saved to and roll it back periodically and enable your virtualized Windows systems to allow remote access to each virtual machine so each developer has their own environment to work in. VB also support snapshots, but I've never tried having multiple systems running with remote access since VB usually seemed aimed more for workstations rather than running headless servers. Either way you're still not going to share out one disk image for multiple virtualizers accessing it at the same time that I know of.

2
  • Oh now I mean how easy is it for me to save my image to a file and pass it to a co-worker?
    – Darren
    Jan 17, 2011 at 19:50
  • It's a long copy...you look for the drive image file and just copy it over. There should be a directory that has the config files and drive image file, I'd just copy them all over. On their system point the VBox machine to that directory and it should read the config to set it up, or if you just use the drive image you can set up a blank slate machine with an existing drive and point the drive to the image file. Jan 17, 2011 at 22:04
0

I can't comment yet, so I'm replying to the last comment by the OP about copying the file. You can simply copy the VB image file (after shutting down the VM) and give it to a co-worker. The file will be large (several GB), so you'll have to find an easy way to transfer that amount of data. This assumes that is is (legally) permissible to copy the OS in the image file. If you plan to do this on a regular basis, it would make sense to do a fresh install of the OS and then copy the file as a backup. This file can then be used to "start fresh" whenever you need to. I know VB has many more advanced features, so there may be other (better?) ways of doing this.

0

I have moved my VBox appliance many times from one laptop or desktop computer and simple adjustments are required based on the machine you wish to run it on. It's a great way to allow others to do what you know and share the knowledge of a development or just have the portability and power you need. I am an automation engineer and require specific items in order to do my work. The OS and software dictate that, but the beauty is being able to run it on any machine as you know.

What I usually do is export my current VM(Vbox) to a file (.ova), then save it to a USB or portable drive, my VM is almost 12 gigs now and growing so its not emailable. Then at home I can import it to do any additional work that I might do. Additionally I also remote desktop into my work PC and work in my VM that way. I always make sure to have an export of the VM once in a couple of weeks to ensure that if something happens I can re-nstall/import the last working Vbox I had. It's very important to have a good working copy of your VM(.ova) available if things should become corrupted or not work for any reason. I once had a VM that was not accessible and luckily I had a version of it backed up.

Another added benefit is licencing. No more having to licence the software that was originally licensed in the original or post original Vbox. Once the licence is part of the VM it becomes inherent and can be installed in a new machine without hindrance. The VM and associated software licences are part of it and no need for additional licences for the same software on a new machine. In fact most engineers work this way in order to preserve the integrity of their work and be able to port it seamlessly on various machines with full functionality.

How to share with the latest version of VBox Manager? Just create an export of what you have (.ova) from the file menu, then after installing the manager on the new machine, import it. The start-up of the VBox will tell you what works and what does not, so you will likely have to make some adjustments to the VBox configuration (mostly hardware associated) to get it to run. (such as chipsets, com setting or network adapters or share folders, etc.)

Most appliances will run with the default settings in the manager when imported to a new machine and you can manipulate what you want after that. I have had little to no issues with running a Vbox (imported .ova) on any Mac or PC running Windows or any version. Hope that helps.

0

If you and your co-worker share the same LAN you could make a 'multiattached' virtual hard drive

copy the virtual drive to your network share

in virtualbox: file > virtual storage manager > add > find theyour 'network shared' drive > select the drive you want to share > properties > type > select multi-attach from drop-down list > apply.

Then when you want to make a new machine, do same procedure and instead of 'create new drive' 'select existing drive' and choose the one you just made

Doing so this 'shared' drive will be read-only but on each machine a 'copy on write' file will be made with changes so 'centralized' base will be the same with just the edits safed on other co-workers machines.

NOTES
1> this procedure won't work, for now, on virtualbox 6 (known bug: Reference)
2> This approach is good on LAN's if connection isn't fast it's better to export the application as .ova.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .