Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
General
GeneralPortable MacsHardwareNetworking
Applications
Mac ApplicationsEudoraFirefox / MozillaInternet ExplorerOutlook ExpressMS OfficeEntourageExcelPowerPointWordVirtual PCMedia PlayerOther MS Products
Programming
Mac ProgrammingCodeWarriorPerl
Country Specific
Australian Mac GroupUK Mac Group

Mac Forum / Applications / Virtual PC / December 2005



Tip: Looking for answers? Try searching our database.

Differencing VHDs in VPC 7?

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
jessetechie@gmail.com - 21 Dec 2005 03:20 GMT
Hi,

I've seen a couple people (Richard Cardona, Steve Jain) refer to using
Differencing VHDs in VPC 7.  I'm familiar with the concept in VPC2004
(Win), and I love that feature!  But I can't seem to find it on the Mac
version -- not in the UI anyway.  I'm comfortable hacking around, but I
was wondering if anyone had already done this.  Basically, how do I
make a VHD the "child" of another VHD?

Thanks,

jessetechie
Richard Cardona - 22 Dec 2005 13:31 GMT
> I've seen a couple people (Richard Cardona, Steve Jain) refer to using
> Differencing VHDs in VPC 7.  I'm familiar with the concept in VPC2004
> (Win), and I love that feature!  But I can't seem to find it on the Mac
> version -- not in the UI anyway.  I'm comfortable hacking around, but I
> was wondering if anyone had already done this.  Basically, how do I
> make a VHD the "child" of another VHD?

So I'll confess I use differencing disks more on Virtual Server.  As
you've seen, the concept in VPC 2004 is that you create a vhd that
points to a base vhd.  The interesting thing is that Undo disks are
basically differencing disks with a different extension (vud v. vhd).
Even without a "create diff disk" utility you should be able to rename a
vud to a differencing disk.  That's the theory.

On the Mac, a virtual hard disk is not only a file, it's a directory
with these files:

virtualdisk.vhdp:  (Directory)
   MainPackageFile
   BaseDrive.vhd
and if undo drives are enabled,
   UndoDrive1.vud

The problem with the above is the hardcoded name for the BaseDrive. I
tried to use a symbolic link to make this hierarchy:
virtualdisk.vhdp:
   MainPackageFile
   BaseDrive.vhd -> diff/virtualdisk-diff.vhd
   /diff:
       BaseDrive.vhd
       virtualdisk-diff.vhd (the renamed Undo drive)

The reason for this hierarchy is that an Undo has a filename reference
to the Parent disk, so if the parent is named "BaseDrive.vhd" you have
to preserve that name.  The Parent's name can be edited in the
Differencing Disk but that requires changing it in up to three places
and updating a checksum all in a proprietary binary format.

The problem with the above is that VPC doesn't honor symlinks for a VHD
file.  :(  It somehow thinks the file is in use in another machine.  I
think it's just confused by the link.

So...this brings me back to square 1.  VPC Mac is capable of running VPC
2004 machines.  So if you create a differencing disk chain there, I'm
pretty sure VPC Mac will honor it.  As you've seen, I let my theory get
ahead of reality.  If you can try your own experiments, I would be
interested in the results.

BTW, if you're unaware of this.  To see the BaseDrive.vhd file in the
Finder you must select the virtual hard disk icon and choose "Show
Package Contents" in the context menu.

Good luck,
Richard
jessetechie@gmail.com - 22 Dec 2005 21:39 GMT
Richard,

Thanks for the response!  Your idea for the symlink was a good one --
too bad it didn't pan out.  :(  I wonder if, instead, it's a limitation
with putting symlinks inside a package?

Yes, I had noticed that the vhdp is a package that contains all the
necessary files.  My workaround has been to:
- create an XP installation
- run sysprep and shutdown the machine
- copy the vhd as BaseDrive.vhd into each new package

So at least I don't have to setup XP every time, but it sure hogs space
to do it that way.

So basically, you're saying that VPC Mac will support a vhd and vmc
from VPC 2004?  Or do I have to copy the differencing vhd into the
package?  How does the differencing vhd point to the base?

If you create a differencing vhd in Windows, then open the file in
Notepad, you'll notice it's a binary file (of course), but the path to
the parent is also in there, at the bottom of the file.  It's a
DOS\Windows type path, and it's absolute from C:, so I doubt it will
work on the Mac.

I'll keep you posted with my findings.  I hope together we can figure
this out.

Thanks,

Jesse
Richard Cardona - 23 Dec 2005 01:47 GMT
> So basically, you're saying that VPC Mac will support a vhd and vmc
> from VPC 2004?  Or do I have to copy the differencing vhd into the
> package?  How does the differencing vhd point to the base?

I know the that VHD files are compatible but I don't think you can use
the .vmc.

A differencing disk points to the base by its parent's name.

> It's a DOS\Windows type path, and it's absolute from C:, so I doubt it will
> work on the Mac.

I mentioned there are three paths, but I think there are four
1. Absolute path to parent .vhd in Unicode
2. Relative path to parent .vhd in Unicode
3. Absolute path to parent .vhd in UTF-8/ASCII
4. Relative path to parent .vhd in UTF-8/ASCII

I know for a fact that the absolute paths can be invalid and VPC relies
on the relative path.  In fact it favors the relative path.  So if the
relative path is ./  that is how VPC will find the parent on the Mac.

The structure I propose is:
Virtual Disk.vhdp
  VPC 2004 Base.vhd
  VPC 2004 Differencing Disk.vhd

You would have to rename "VPC 2004 Differencing to" BaseDrive.vhd for
compatibility with VPC Mac.  But it's internal relative reference to its
base will be intact.

Anyway these are the details.  Good luck!
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.