Moving a Windows 7 Partition into VirtualBox on a Mac
I’ve been running Windows 7 on an older machine for a while but recently I had the idea to move the partition into a VirtualBox VM running as a guest OS in OS X Snow Leopard. I wanted to save some electricity, reduce the total number of computers, and make management simpler. The old Windows machine seemed to use a lot of power and and most of the time when I was at home the iMac was also turned on.
Here’s a run-down of the major steps and issues that I encountered.
Convert Windows 7 Partition to a VM Image
I didn’t want to have to start from scratch so I started searching for a tool that could convert an existing Windows install into a virtual machine image. Sure enough, I quickly found Paragon Software Group’s Paragon Go Virtual.
Paragon Go Virtual is free though it requires completing a form to receive a product key and serial number, both of which are required to install and use the program. The installation and configuration was simple enough. I already had an extra drive installed in the Windows system that I used as a backup so I just turned off the backup schedule, formatted the drive, and set Paragon Go Virtual to create the image on that drive in a VirtualBox format.
Copy VM Image to OS X
The next step was to remove the backup drive with the image from the Windows system, use an IDE/SATA USB adapter to connect the drive to my iMac, and then copy the VM image to the iMac.
Every project has its problems…
The first stumbling block I hit was a problem getting the drive (connected via the IDE/SATA USB adapter) to mount in OS X. Nothing seemed to work so I started looking at NTFS tools for OS X. In the end one of two steps solved the problem, and I’m not sure which one worked. It was either:
- installing NTFS-3G or
- unplugging and then reinserting the USB adapter
After doing both of those I was finally able to see the drive and copy the VM image.
Boot Problems in VirtualBox
I then downloaded and installed VirtualBox. The next step was to create a new virtual machine for Windows 7 and have it use the VM image. It all seemed to work.
Until I tried to boot the drive.
And ran into a familiar problem that I’ve experienced when dealing with copying partitions in the past. Frankly, I should have thought of this ahead of time but basically I forgot that the VM image did not contain boot information for the new drive image.
I went through a lot of trouble-shooting and did things in different orders but here’s a run-down of what solved the problem:
- Boot from the Windows 7 install DVD
- Select language, keyboard, etc on the first screen
- Choose the option to repair Windows
- Go to the Command Prompt
- type ‘diskpart’
- type ‘select disk 0′ [ENTER]
- type ‘select partition 1′ [ENTER]
- type ‘active’ [ENTER]
- type ‘exit’ [ENTER]
- Restart computer
- Boot from install disc
- Select repair options again
- Go to Command Prompt
- type ‘bootrec /fixmbr’ [ENTER]
- type ‘bootsect.exe /nt60 all /force’ [ENTER]
- type ‘bootrec /rebuildbcd’ [ENTER]
- type ‘y’ [ENTER]
I was still having problems (missing boot loader) so I ran the repair options again and then selected the option to run the startup repair utility, which fixed that final boot issue.
Install Guest Additions
Guest Additions include drivers for allowing the guest OS to interact with the hardware of the host OS. The installation can be started from the VirtualBox menu bar. They serve the same function as Parallels Tools in Parallels Desktop for Mac.
Don’t worry about the audio driver, yet.
Fixing the Network
The old network card was automatically removed from Windows 7 so I configured the newly detected interface with the same IP as the old one.
However, I had a problem after updating the IP information. Windows 7 seemed to be stuck in a Public Network mode and I couldn’t change it to a Home Network. After reviewing the IP settings I discovered that for some reason it had lost the Gateway address. After adding it back and saving the changes it automatically switched to the Home Network.
Note that for my purposes I am using bridged Ethernet.
The audio driver wasn’t installing. I decided to run Windows Updates and sure enough a new audio driver was included. After updates completed the sound worked fine.
Only time will tell how well this setup works but I was confident enough of the results that I took the old Windows system out of line. Overall, performance seems very good. Initially, I was concerned it would be an issue because my Intel-based iMac only supports a maximum of 2 GBs of RAM. However, allowing VirtualBox to use 1 GB for Windows 7 seems to work fine for both OSes.
Update: Over four months have passed and I haven’t encountered any problems related to this process.