I decided to try to move the VM off of the SSD drive to a Western Digital Passport 1Tb USB drive. Sadly performance using the USB drive was terribly slow and there were other strange issues I encountered when running from the USB drive. Sometimes the VM would not recognize the mouse or keyboard on a reboot. Other times the mouse would move but the VM would not register mouse clicks. Things rapidly progressed to the point where the VM was almost unusable for day to day work.
I started researching to see if it would be possible to minimize the size of the Windows boot drive to allow it to stay on the SSD but offload much of the data to a volume on the USB drive.
It turns out this is quite possible. The keys to accomplishing this are:
- Relocating personal folders to the external drive
- Relocating certain Windows data folders to the external drive and creating junction links to them so Windows can still get to them. These folders included: Windows\Installer, ProgramData\Package Cache.
http://www.techsupportalert.com/content/how-move-windows-7-personal-folders-my-documents-another-drive.htm
http://superuser.com/questions/931992/moving-windows-folders-around-with-junction-links-mklink
The first step was to create a new virtual hard drive for the data volume on the VM. Here's an article with details on how to do this:
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1004113
- Moved any folders I knew weren't critical to Windows and didn't require any "extra" work. In my case these included Python, Cygwin and my root source code directory.
- Relocated the User folders Documents, Downloads, Music, Pictures and Videos
- Moved the Windows\Installer folder and created a junction link for it.
- Moved the AppData\Package Cache folder and created a junction link for it.
Note: Steps 3 and 4 required booting into Safe Mode before moving them.
By performing these steps I moved approximately 50Gb of files from the boot drive to the external drive. However, at this point the VM and the associated volumes were still on the USB drive and the VMDK file associated with the boot drive was larger than the amount of free space I had on the SSD drive. This required that I "shrink" the boot volume. I followed the steps in this article:https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1001934
Once completed the VMDK file for the boot volume was small enough to move back to the SSD drive but the newly added data volume was too large. What I wound up doing was making a copy of the VM (it's really just a folder) on the USB drive, opening the VM folder and deleting the data volume VMDK file (remember it's still in the original folder). I then copied the resultant VM back to the SSD drive.
With the cloned VM back on the SSD we need to attach the data volume on the USB drive to the VM on the SSD drive. You can do this by doing the following:
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2005146