VirtualBox 1.4 is great (plus a fix for Vista guest networking)

I was sceptical that VirtualBox, an open source desktop virtualization software package, could be a viable alternative to VMWare and Parallels. I’m happy to report that my early experiences with it have been fantastic. The biggest issue I had was with my Microsoft Vista Home Premium guest OS (i.e. an OS running inside of VirtualBox) not having a driver out-of-the-box for the network adapter VirtualBox and most of the other virtualization solutions use. Oh the irony. Windows has the driver problems, not Linux this time around. Ha!

I documented my issue and solution to the network driver problem on the VirtualBox issue tracker site. In order to get the word out just a bit more through the search engines, I’m posting my problem and solution here.

My setup:

  • Fresh Kubuntu 7.04 install on a Gateway MT6840 notebook (Centrino Duo platform)
  • VirtualBox 1.4 install from the VirtualBox debian repository
  • VirtualBox “Guest Additions” installed
  • Network connection through my wireless card only on eth1
  • Guest OS on VirtualBox is Vista Home Premium (I know, I know…licensing issues…sigh)

Everything went fine until I tried to get networking on Vista working. I learned quickly that there are issues with Vista not supporting (out-of-the-box) the network card VirtualBox emulates (AMD PCnet Ethernet card.) The answer to this is to install the “Guest Additions”, go through the Windows “New Hardware Wizard” and point it to the CD drive, which should be an ISO image of drivers from the “Guest Addition” installer. However, when I followed this process Vista would go to install the driver and then freeze about 10 seconds into the install. The only thing I could do then was do a hard reset from the VirtualBox “File” menu. After trying numerous potential workarounds, I stumbled upon the solution:

  1. Go to VirtualBox and select the “Network” link under the “Details” tab for your Vista VM image
  2. In the Network Details tab select the appropriate network adapter (eth1 in my case) and then make sure you have these settings:
    1. Check “Enable Network Adapter”
    2. Select “Not attached” for the “Attached to” menu
    3. Check OFF the “Connected” checkbox
    4. Click OK to save the changes
  3. Start up Vista
  4. After you login, go to the VirtualBox “Devices” menu and select “Mount CD/DVD-ROM”->”CD/DVD-ROM Image”
  5. Select “VBoxAdditions.iso” and click “Select”
  6. From the “Start menu” right-click on “Computer” and select “Manage”
  7. Click on “Device Manager” to see all the devices
  8. Right click on your computer’s name in the “Device Manager” and select “Scan for hardware changes”
  9. You should be prompted to install a driver for your network controller
  10. When prompted, tell Windows to look for the driver on your CD driver under the “AMD_PCnet” directory on the drive
  11. Vista should successfully install the driver
  12. Shutdown Vista from the “Start Menu”
  13. Perform steps 1 & 2 (different sub-steps for 2 are below)
    1. Check “Enable Ethernet Adapter”
    2. Select “NAT” for the “Attached to” menu
    3. Check ON the “Connected” checkbox
    4. Click OK to save the changes
  14. Start up Vista and you should now have network connectivity

If you’ve had this problem with Vista as a guest OS using VirtualBox and these steps helped or didn’t help, please feel free to leave a comment.

Leave a comment