Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've searched the internet and couldn't find any information about this. I am wondering this because I want to synchronize a virtual machine image between disks, and it would not be very efficient if the whole image file was to be copied every time there was a modification on it.

share|improve this question

2 Answers 2

up vote 2 down vote accepted

I expect SyncToy won't be able to do it.

Perhaps you should set up a version control software to track differential changes of your image.

I'm not really into this topic, but I found an article where they advise you to make one Virtual Hard Disk (VHD) with your bare OS, then make a second VHD with all the "different" files. Then all you have to do is sync the secondary disk, which should be a lot smaller.

I recommend following the link, since it pretty clearly explains what you can do and why it's a good idea. Plus when you're looking for a way to slim down your primary VHD, go read Jeff's post @ Coding Horror: Creating Smaller Virtual Machines

Right off the bat, a post by Roy Osherove pointed me in the right direction: How to use Virtual PC and still save lots of room: differencing disks. The concept is similar to backup strategies. What you are doing is creating a "base" VPC and install the most common things that you'll use in almost all situations. Then after prep'ing it, you create a new virtual hard drive (*.VHD file), mark it as a differencing disk, and continue installing additional apps onto this disk. The differencing disk contains the "different" part between the two VHD files. So what have you gained?

  • Drive space: if you have have two VPC's that each take up 7GB, you're consuming 14GB (I ~really~ hope you didn't just learn something). But if you have a base disk that is 3GB, containing the core of all your VPCs, and two differencing disks, each taking up 4GB, you're now only consuming 11GB. Sure, this may only be a 23% increase in disk space, but consider that this is only two VPCs. Factor in 3 VPCs, and you're now saving 7GB or 33%. The more VPCs, the more space you save, but obviously the law of diminishing returns is in full effect.

  • Speed of running up a new VPC: if you created every VPC from scratch, you'd have to go through the OS install, not to mention hotfixes and extra components (like a web server, directory service, etc) as well as any core applications every single time you need a new VPC. I've left out that installing an OS in a VPC (before you install the Virtual Machine Additions) is a SLOW process... much slower than on a physical machine. But, if you used differencing disks, you only have to build your OS with the core components, service packs, hotfixes, and core applications one time. Then, when you needed a new VPC, create a new differencing disk, get the latest OS hotfixes, install the apps you need that aren't on your base, and you're hitting the ground running much faster than having to install a new OS.

share|improve this answer
    
Good idea, indeed most version control softwares are using "delta encoding", for compression, and store only differences. That could be a solution –  Gnoupi Jul 29 '09 at 14:53

From my observations (using it for a long while now), Synctoy only checks if file was modified, and copies the whole file. So it would copy the whole Image, in your case.

I can't find any option to make it copy only a "patch".

In a way, the main point of Synctoy is to make easier the synchronization of a lot of files when only a few have been changed. Your use case is to synchronize only one file, always the same, and to update only the differences, maybe the question would be then to find another software which would do that. A software which would make an equivalent combination to a "diff" + "patch"

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.