Install VirtualBox VMs for IE6-IE9 in one step.

What is iebox?

iebox is an improved installer of the IE Application Compatibility VMs for Linux and OS X using VirtualBox.

It is a fork of ievms.


Microsoft provides free virtual machines (VMs) for testing websites in different Internet Explorer (IE) versions. Unfortunately setting these virtual machines (VMs) up without Windows Virtual PC is cumbersome. iebox aims to facilitate that process using VirtualBox on Linux or OS X. With a single command, you can have a running VM of either IE6, IE7, IE8 or IE9.



  1. Download

    curl -C - -O
  2. Make it executable

    chmod +x


Installing a VM

./ -v 6

This will download all the necessary files to ~/.iebox and install the IE6 VM as Windows XP IE6.

To choose your own name use -n "name". Example:

./ -v 6 -n "Windows XP IE6 - Project"

These are the standard names also showing the operating system:

There are also advanced options.

IE6 VM Network Drivers

When installing the IE6 VM, you have to install the network drivers upon first boot. The drivers are already mounted as a CD in the VM.

If you don’t install the drivers on first boot, an activation loop will prevent subsequent logins forever. If this happens, restoring to the clean snapshot (see clean snapshot) will reset the activation lock.

Activation of IE7, IE8 and IE9 VMs

In contrast to the Windows XP IE6 VM you can not activate the Windows Vista and Windows 7 VMs. However there is a command that either resets the 30 day activation period or - according to Microsoft - simply shuts down the VM and resets it back to it’s initial state:

slmgr –rearm

I can not confirm the second behavior. In doubt revert the VM to the clean snapshot (see clean snapshot).

Clean Snapshot

A snapshot is automatically taken upon install, allowing you to easily revert all changes made to the VM. Anything can go wrong in Windows and rather than having to worry about maintaining a stable VM, you can simply revert to the clean snapshot.

Resuming Downloads

If one of the comically large files fails to download, the curl command used will automatically attempt to resume where it left off. Thanks, rcmachado.

Recovering from a Failed Installation

Each version is downloaded into a subdirectory of ~/.iebox/vhd. For example ~/.iebox/vhd/ie6. If the installation fails for any reason (e.g. corrupted download), delete the version-specific subdirectory and rerun the install.

If that does not help, try and see if VirtualBox already is listing the VM. If yes, delete it and double check to delete all files from VirtualBox’s default machine folder.

If nothing else, you can delete ~/.iebox and rerun the install without worrying about existing VMs (see a note on directories).


A Note on Disk Space

The images are massive and can take hours or tens of minutes to download, depending on the speed of your internet connection. The Windows XP VM is by far the smallest with 400 MB. Since Windows XP supports IE6, IE7 and IE8, I recommend using the IE6 VM for testing IE7 and IE8 as well. Use the -n command-line parameter for this:

./ -v 6 -n "Windows XP IE8"

Also see the best combination in terms of disk space.

A Note on Directories

All the temporary downloads are placed in ~/.iebox. All the VMs are installed in the default folder of VirtualBox. This means that the ~/.iebox directory contains no necessary files.


These are combinations to set up VMs for all versions of IE.

The Best Combination in Terms of Disk Space

This combination makes use of the fact that Windows XP supports IE6, IE7 and IE8. IE7 and IE8 have to be installed manually, but the VM includes the necessary installers.


./ -v 6
./ -v 6 -n "Windows XP IE7"
./ -v 6 -n "Windows XP IE8"
./ -v 9

The Standard Machines


./ -v 6
./ -v 7
./ -v 8
./ -v 9

Major Differences to ievms

The goal was to make the shell script easier to use and more flexible.

Advanced Options

Specifying the Download Path

To specify where the required files are downloaded, use the -d parameter:

./ -v 6 -d "/path/to/download/folder"

Passing Additional Options to curl

The curl command is passed any options present in the -c parameter. For example, you can set a download speed limit:

./ -v 6 -c "--limit-rate 50k"