ATTENTION: This is what I did on MY computer.  You'll probably want to change this for use on YOUR computer.

Using VMWare Player (version ?) and VirtualBox (version 2.0)

Note: Items marked with "+" are items I did in advance, so I don't have to do them on each conversion attempt.

From Original VMWARE GUEST:

  • +Right-click My Computer, select Properties, Advanced tab, select Settings in Startup and Recovery, and give yourself at least 5-10 seconds for "Time to display list of operating systems."
  • Shut down the guest VM -- do not suspend it.  Shut it down.

From host:

  • Copy your whole VM to another directory

From Copied VMWare Guest in Safe Mode:

  • Boot the copied VM Guest in safe mode.  (See http://www.kleinfelter.com/node/138 for a tip on how to boot in safe mode despite VMWare's too-brief BIOS start-up.)
  • Reduce your disk drives in use to 3. (VBOX will reserve one of your 4 IDE devices for CD/DVD.)

Note: All of the non-"+" below are in this handy script - VMware-to-VBox-Script-1.

  • Right-click My Computer and rename it.  Otherwise you'll get a duplicate name error from the network.
  • +Run MergeIDE.reg from http://www.virtualbox.org/attachment/wiki/Migrate_Windows/MergeIDE.zip
  • +Search C:\Windows\system32 for hal*.*
    • if you have only hal.dll (and not halacpi.dll or halaacpi.dll), you're good to go. 
    • Otherwise, see http://www.virtualbox.org/wiki/Migrate_Windows.
      • Short form is to enable IO APIC in Vbox if and only if you have halaacpi.dll.
      • I have hal.dll, so I'm good to go without IO APIC
  • Delete (or rename to xxxxx.hideme) from the copied VM (if they exist):
    • C:\WINDOWS\system32\drivers\agp440.sys
    • C:\WINDOWS\system32\drivers\intelppm.sys
    • C:\Windows\System32\drivers\processr.sys

From Copied VMWare Guest in Normal Mode:

  • Note: All of the non-"+" below are in this handy script - VMware-to-VBox-Script-2.

    Restart the guest VM in normal mode.  I recommend holding down shift-key to prevent your Startup folder from running.
    • Uninstall VMWare Tools
    • Delete C:\Program Files\VMware\VMware Tools
    • Regedit: Confirm deleted HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Vmware Tools
    • Regedit: Confirm deleted HKLM\Software\Microsoft\Windows\CurrentVersion\Run\Vmware User Process
    • Regedit: Delete HKLM\System\CurrentControlSet\Services\Eventlog\System\intelppm
    • Regedit: Delete HKLM\System\CurrentControlSet\Services\intelppm
    • Regedit: Set Start to 4 in HKLM\SYSTEM\CurrentControlSet\Services\Processor (if it exists)
    • +Make sure you have no SMS Mouse driver (you'll need to be proficient with the KEYBOARD Windows interface):
      • Open a command prompt
      • set devmgr_show_nonpresent_devices=1
      • devmgmt.msc
      • View/Show Hidden Devices
      • Inside "Mice and other pointing devices" delete "SMS Virtual Mouse" if it exists.
      • While you're there, delete other mice that you don't have.
      • While you're there, delete the NIC devices that you don't have (particularly the VMWare ones)
  • Shut down the guest VM -- do not suspend it.  Shut it down.

From the VirtualBox GUI

  • Select File/Virtual Disk Manager
    • Add the drives from your VM *copy*
  • Select Machine/New
    • Give it a name (I used VBOX-VM-XP-1)
    • Set Memory to 1024 MB
    • Choose your boot disk
  • Click the Settings tool-button
    • Add your disks beyond the boot disk.
    • Enable sound (Windows DirectSound + ICH AC97)
    • Add shared folders for C:\ and E:\ and F:\
    • Add a NAT NIC
      • Note: I recommend the Intel Pro 1000 T Server NIC.  You'll have to download the driver from Intel, but otherwise you may find that VBOX NIC drivers conflict with left-over bits of VMWARE drivers.  Otherwise, the AMD NIC keeps getting recognized by the VMWARE drivers and not the VBOX drivers.
      • Note2: I tried Host Interface Networking.  I could get the host to ping the guest successfully, but the guest could not ping the host.  DHCP worked, assigning an address (and the router confirmed that IT set the address.) Firewall was disabled on both, and Host Interface Networking was the only VBOX NCI.  I gave up, and just went with NAT NIC.  

Start your Vbox-VM:

  • It will want to install some drivers.  Let it try.  It may fail.  Oh well.
    • Select Device/Install-Guest-Extensions from the VM menu bar.  
      •  If auto-install doesn't happen, start the install and complete it.
      • Let it reboot

Note:

I have been totally unable to get "Host Interface" networking to work. 

I created the interface, and I bridged it to a real interface, and I assigned an IP to the bridge and it didn't work.

I created the interface, and I assigned it 192.168.99.1 and I assigned 192.168.99.2 to the client's NIC and it didn't work.

I tried bridging it to a real NIC and I also (separately) tried bridging it to the Loopback adapter and I got nowhere.

I get too-frequent blue screens with VBox Shared Folders, so I needed to be able to map a host drive in the client.  I can't just use the host's real IP address (e.g. \\10.20.2.42\c-drive) because I use the host at multiple sites and it gets a different IP address at each.  Ultimately, I bound the Host's Loopback adapter to 192.168.99.99, and in the guest I mapped to \\192.168.99.99\c-drive, and I used only a single NAT virtual NIC.

Helpful web pages: