I’ve been using VMware Workstation for many, many years and I run a few hundred gigabytes of virtual machines for development and testing on various platforms. Some of these include physical machines that have been converted to virtual machines (using VMware Converter, which used to be called P2V [Physical 2 Virtual]) and some include purely virtual machines I’ve built from scratch using the default ISO file or installation media.
Almost all of my Windows virtual machines are physical machines converted to virtual machines, due to the cost and licensing of that platform.
I have a Windows 7 virtual machine that I’ve built up and have been testing with some new Office products and other snap-ins to help me test Funambol and productivity tools, but I noticed that the 64-bit Windows 7 version I have lacked any networking. It flat-out did not have a valid network driver.
I looked around on the CD, installed the VMware Tools from the menu, and made sure the current patches and service packs were applied (I keep a local repository of these to avoid re-fetching them over the WAN every time I have to rebuild my virtual machines). The 32-bit Windows 7 had working networking, but the 64-bit did not… and I couldn’t figure it out. I installed a 64-bit Windows XP VM, and it had the same exact problem… no networking.
Being the reverse-engineer that I am, I started looking into the VMware configuration and the files themselves, and grep’ing the source and strings(1) on the binaries, and then I stumbled upon the solution…
Shut down your Windows VM (do not suspend it, you have to shut it down completely) and open the main .vmx file in an editor and add the following line:
ethernet0.virtualDev = "e1000"
If your VM has more than one network device, make sure you set the right one in your .vmx file for your networking. I have several in my session: one for bridged, one for host-only and one for NAT. The NAT one happens to be ethernet0, so that’s the one I wanted the “public” networking functional on.
That’s it… when you reboot the VM, Windows will detect the “new” Ethernet interface, configure it for you, and then networking will work perfectly. Another VMware problem solved!