How To: Migrate a VirtualBox Windows 7 client to VMware Player

Step 0 – [Linux-specific instruction] When installing VMware Player, let it use /etc/init.d/ even if your system uses Systemd. After install you can create a service for vmware like this:

/etc/systemd/system/vmware.service

[Unit]
Description=VMware daemon
 
[Service]
ExecStart=/etc/init.d/vmware start
ExecStop=/etc/init.d/vmware stop
PIDFile=/var/lock/subsys/vmware
TimeoutSec=0
RemainAfterExit=yes
 
[Install]
WantedBy=multi-user.target

Start the service with systemctl start vmware to make sure it kicks off. If you want it to start automatically at boot use systemctl enable vmware.

Step 1 – Disable any devices in the virtual machine that run on VirtualBox/Oracle drivers.

Step 2 – Convert the VirtualBox.vdi hard drive to VMDK format via “vboxmanage clonehd source.vdi target.vmdk –format VMDK”

Step 3 – Launch vmplayer and create a new virtual machine. Say that you’ll add the operating system later and let it use a ‘single large drive’ or such.

Step 4 – Replace the default created .vmdk drive with the one you converted in step 2.

Step 5 – You can try booting your VM at this point – if it works, GREAT! But it’s likely to bluescreen with a 0x000007b error, if so you’ll need to follow the rest of the steps below:

Mount the Win7 DVD in VMware Player (or Workstation) and boot to it.
At the first screen (Language Selection), hit Shift-F10 for a command prompt.
Run Regedit.
Load the system hive from the VM's disk:

1. Highlight HKEY_LOCAL_MACHINE
2. File > Load Hive
3. Select < c: > \Windows\System32\config\system
4. Regedit will ask for a Key name: Name it something like "p2v"
5. Expand HKEY_LOCAL_MACHINE\asdf\ControlSet001\Services\intelide
6. Change the data for value "Start" from "3" to "0".

Note: I did not do step 6a - but I did do step 6 (immediately above).
6a. Also repeat for: HKLM/System/CurrentControlSet001/Services/ and edit the "Start" parameter to the corresponding value from the list:

Aliide = 3
Amdide =3
Atapi = 0
Cmdide = 3
iaStorV = 3
intelide = 0
msahci = 3
pciide = 3
viaide = 3

7. Then find the key: HKLM\p2v\ControlSet001\services\LSI_SAS and set the start type to REG_DWORD 0
9. Navigate up from the key to the hive (''p2v''), then hit 'File > Unload Hive'.  In other words, select HKLM\p2v and click Menu > File > Unload Hive.
10.Exit regedit and reboot the VM.

With all that done, the Windows 7 client should boot in vmware player and start installing the VMware specific drivers.

Twiddles / Housekeeping

VM audio crackling? Live with it – it crackles for a few seconds then sorts itself out. Fixing it as per the below causes VM crashes with “vcpu-0 unexpected signal 11” errors.
In Windows client go: Control Panel | Hardware and Audio | Sound | Speakers | Properties | set it to 24-bit @ 44.1KHz or higher.
Source: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2012007

VM suspends and stops Linux host from suspending? Shut down the VM, then edit the .VMX file it and add the line suspend.disabled = “TRUE” then restart.

VM generating “spurius APIC interrupt on #CPU X, should never happen”? Edit /etc/vmware/config and add the line monitor_control.disable_hostedIPI = TRUE then restart VM.

VMware tools won’t install? Either try to find the ISO to mount and install from or install ncurses5-compat-libs – on Arch this is in the AUR at: https://aur.archlinux.org/packages/ncurses5-compat-libs/