← Back to xdissent/ievms

How to Deploy & Use xdissent/ievms

ievms - Automated Installation of Microsoft IE App Compat VMs

Prerequisites

  • VirtualBox > 5.0
    • Download from virtualbox.org
    • During installation, select 'command line utilities'
  • Curl - Required for downloading the installation script
    • Ubuntu/Debian: sudo apt-get install curl
    • macOS: Pre-installed
    • Windows: Install via Chocolatey or Git Bash
  • Linux Only: unar - Required for extracting downloaded archives
    • Ubuntu/Debian: sudo apt-get install unar
  • Disk Space: Approximately 69GB for full installation
  • Patience: Downloads are large and can take hours depending on internet speed

Installation

Quick Start (Recommended)

Paste this command into your terminal:

curl -s https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh | bash

Custom Installation (Specific IE Versions)

To install specific versions only (e.g., IE7, IE9, and EDGE):

curl -s https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh | env IEVMS_VERSIONS="7 9 EDGE" bash

Legacy VirtualBox Support

For VirtualBox < 5.0, use version 0.2.1:

curl -s https://github.com/xdissent/ievms/raw/v0.2.1/ievms.sh | bash

Installation Steps

  1. Install VirtualBox and ensure command line utilities are selected
  2. Install curl (and unar on Linux)
  3. Run the installation command above
  4. Launch VirtualBox after installation completes
  5. Select the desired ievms image from the VirtualBox interface

Configuration

Environment Variables

VariableDefaultDescription
INSTALL_PATH~/.ievms/Directory where VMs will be installed
IEVMS_VERSIONS6 7 8 9 10 11 EDGESpace-separated list of IE versions to install
CURL_OPTSNoneAdditional options passed to curl (e.g., --limit-rate 50k)
REUSE_XPyesWhether to reuse XP VM for IE7 and IE8
REUSE_WIN7yesWhether to reuse Win7 VM for IE10 and IE11

Example Configurations

Custom Install Path:

curl -s https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh | env INSTALL_PATH="/Path/to/.ievms" bash

Download Speed Limit:

curl -s https://raw.githubusercontent.com/xdissent/ievms/master/ievms.sh | env CURL_OPTS="--limit-rate 50k" bash

Build & Run

Local Development

The ievms script handles all local operations:

  1. Download OVA images from Microsoft
  2. Extract archives using unar (Linux) or built-in tools
  3. Import VMs into VirtualBox
  4. Install VirtualBox Guest Additions
  5. Create clean snapshot for easy rollback

Running VMs

  1. Open VirtualBox application
  2. Select the desired ievms VM from the list
  3. Click "Start" to boot the virtual machine
  4. Use the clean snapshot to reset to pristine state when needed

Space Management

After installation, you can remove all files except .vmdk files to save space:

find ~/.ievms -type f ! -name "*.vmdk" -exec rm {} \;

Deployment

Platform Considerations

ievms is designed for local development and testing, not server deployment. The VMs are resource-intensive and require a GUI environment.

Recommended Setup

  • Local Development: Install directly on your development machine
  • Team Environments: Share VMs via network storage or create a dedicated testing workstation
  • CI/CD: Consider using cloud-based browser testing services for automated testing

Performance Optimization

  • Allocate sufficient RAM (2-4GB per VM recommended)
  • Enable hardware virtualization in BIOS if available
  • Use SSD storage for better performance
  • Consider disabling unnecessary services in VMs

Troubleshooting

Common Issues and Solutions

Installation Fails

  • Problem: Corrupted download or network interruption
  • Solution: Delete the partially downloaded ZIP/OVA file from ~/.ievms/ and rerun the script

Insufficient Disk Space

  • Problem: Installation requires ~69GB
  • Solution: Free up space or install fewer versions using IEVMS_VERSIONS

Slow Downloads

  • Problem: Large files (12.5GB total) take hours to download
  • Solution: Use CURL_OPTS="--limit-rate 50k" to limit bandwidth usage or schedule downloads during off-hours

VirtualBox Guest Additions Issues

  • Problem: Guest additions fail to install
  • Solution: Ensure VirtualBox version > 5.0 and that command line utilities were selected during installation

VM Won't Start

  • Problem: VirtualBox configuration issues
  • Solution: Check VirtualBox logs and ensure VT-x/AMD-V is enabled in BIOS

Reverting to Clean State

  • Problem: VM becomes unstable or misconfigured
  • Solution: Use the "clean" snapshot to revert to the pristine state

Legacy VirtualBox Support

  • Problem: Using VirtualBox < 5.0
  • Solution: Use the legacy script: curl -s https://github.com/xdissent/ievms/raw/v0.2.1/ievms.sh | bash

Network Connectivity in VMs

  • Problem: VMs cannot access the internet
  • Solution: Check VirtualBox network settings and ensure host has internet access

Recovery Procedures

  1. Partial Installation: Delete corrupted files and rerun the script
  2. Complete Reset: Remove ~/.ievms/ directory and start fresh
  3. Version-Specific Issues: Reinstall only the problematic version by deleting its directory

Bandwidth Considerations

  • Full installation downloads ~12.5GB
  • Reusing XP VM saves significant bandwidth (disabling REUSE_XP increases download to ~22GB)
  • Reusing Win7 VM saves bandwidth but minimal disk space (disabling REUSE_WIN7 has minimal impact)