Problem
I need to be able test software changes before applying them to my production machine. I also don’t want to duplicate my current hardware environment or make the job too labour intensive.
I could just clone all my software to another disk and reboot. But to move back a forth between the clone and my production environment was a process I found too tedious – requiring a reboot each time I needed to check things.
Solution
I have decided to use CCClone to clone my software environment and VM Fusion to simulate my hardware – running this cloned environment as a Virtual Machine on the same hardware as my production environment. I basically see a copy of my machine as a window on my production hardware.
When changes are verified on the clone, I apply those changes again to my production machine.
One Time Setup
These instructions are a bit out of date but I am keeping them as reference since I no longer need the one time setup.
- Create a Virtual Machine (VM) to receive a copy of the host machine.
- Created a new OS X VM from scratch called “Middle Man”. “Middle Man” is a vanilla machine which contains two bootable hard disks. One is the Middle Man Boot Disk. The other second drive is the “Clone of Host”.
- At this point you would think you could boot from Middle Man on the Host, but it has the same uuid and mac address as your Host. When I attempted to boot Middle Man on the Host, I just got a grey screen at boot time. To get around this problem (and as as a one time activity) I had to copy the .vmwarevm file to another machine running Fusion where I was prompted for “did you move or copy the VM”. Reply “copy” and Fusion will change the uuid and mac address within the VM (and what ever else is required to run it). Then copy the .vmwarevm file back to the Host where it will now be bootable from now on.
- Use CC Cloner to transfer a cloned image of the Host Boot Disk to the “Clone of Host Hard Disk”.
- This will require authenticating from the CC Cloner Application on the Host to “Middle Man” VM across the network.
- Using the Settings icon in Fusion (the wrench), click the “Startup Disk” icon and change “Clone of Host” to the “startup disk” – typically Fusion refers to this drive as “Hard Disk 2”.Re-boot the VM by hitting the Restart button.
- A clone of your host configuration will now come up as a VM running on the Host.
- Perform any changes/testing within the “Clone of Host”. When ready, re-apply the same changes to the Host.
Creating / Refreshing the “Clone of Host”
There are two approaches to cloning the current Host (Production System) to the Test System:
One – If the difference between the Host and the Test system are not too great: Clone the live system over the network to the running test system. This requires the Test system to have two hard disks, one that is operational and another to receive the the new clone.
- When in CCClone select Destination > Remote Macintosh …
- Ensure that the VM can connect to the Internet. In my case my MacPro has two Ethernet ports.
- Start the Clone which will transfer the Macintosh HD of the Host to the Test drive
- Re-boot the Test system – using the new clone as the boot disk
Two – after a major upgrade of the OS, the differences between the Host and the Test system are great, running a clone over the network has been slow and not reliable. Therefore its better to use a USB HD as an intermediate storage location for the clone of the Host. Then using CCC clone the USB HD to the Test system, using either of the Test systems two hard disks. Then boot of the updated TEST HD.
Some Issues to watch for: VMWARE can’t access TB only drives. It will be necessary to use USB. Also VMWARE for some reason defaults to USB 2 – its necessary to manually change the USB virtual drivers to USB 3.