Windows – Share virtual machine images between multiple computers

macosvirtualizationvmware-fusionvmware-playerwindows

I am in the process of setting up a development environment for a new project and wondered about the theoretical possibility of my ideal set up.

I would like to use virtual machines in order to make my development environment portable and persistent. I do not have any problems with this, I already have a ubuntu desktop booting from vmware player on my windows 7 desktop.

Here is where it gets tricky…

Ideally I would have this image stored on an external disk drive. If I wanted work remotely I would be able to take this external drive and attach it to my macbook pro running leopard and boot the image and continue where my development stopped on my windows 7 desktop.

Is this possible? is there any software that better/worse for this kind of set up.

Has anyone done this before?

Best Answer

This is entirely possible -- just put the VM on the external drive and load it on both systems.

Note however that there's no way to make it perform all that well on both systems. Generally, you need NTFS for performant operations on Windows, as NTFS is Windows' native filesystem. Unfortunately, while Linux can use NTFS, it can only do so using ntfs-3g, which runs through FUSE and is extremely slow; particularly for the kinds of extreme random access loads generated by typical VM loads.

For best performance on Linux hosts you would need to use a Linux native filesystem, such as ext4, btrfs, or xfs.

Note also that if your development environment is Windows, and your two host machines have different processor types (e.g. Intel -> AMD or vice versa), you might run into issues there because Windows activation doesn't like switching CPU types without forcing activation. I've not tested that though; your mileage may vary.

It's probably easier to just put your development in a mercurial or subversion repository and use that to sync changes between machines.

Related Question