I took the advice that came from this post and tweaked it a bit.

A few key assumptions:

  • Your virtual is running Windows 2000 or 2003. This will probably work under XP. If you’re running anything else, you’ll probably have to create a new virtual machine temporarily as a “host” for your drives.
  • You have enough free virtual disk slots in your configuration. If not, (again) create a temporary host.
  • You have enough real disk space to hold your old virtual disk, plus a copy, and your new (larger) virtual disk.
  • You have access to the Resource Kit for your OS and it contains ROBOCOPY
  • You know where the VHDs are stored on your physical drive.

If you’re not trying to resize the VHD you’re booting from, you can skip this first part.

Assume you’re booting from SMALL.VHD.

Make a copy and rename: SMALL2.VHD.

Use the Web Admin tool to register SMALL2.VHD.

Use the Web Admin tool to create LARGE.VHD of the new size.

Use the Web Admin tool to add SMALL2.VHD and LARGE.VHD as disks on your virtual machine.

If you’re not booting from SMALL.VHD, you only need to create LARGE.VHD and add it as a disk.

Boot Windows.

Load up Disk Manager (Start | [Control Panel] | Administrative Tools | Computer Management | Disk Management)

Partition and format your large drive.

If you’re booting from SMALL, right-click the newly-formatted, larger drive and click “Mark As Active”

Run ROBOCOPY [Old]:\*.* [New]:\*.* /MIR /SEC /R:3 (The /R:3 got me over a file that the OS had locked. It didn’t affect the results.)

Shut down your virtual machine.

Use the Web Admin tool to remove the two smaller drives.