Automates the process of getting the modern.ie images and converting them for usage with KVM. There are 3 scripts:
- ie-urls.sh
- Attempt to parse the relevant .zip download URLs from the modern.ie page
- fetch.sh (url)
- Given a URL to a VM .zip file, uncompress and convert into a QCOW2 file for use with QEMU, which will be waiting for you in the current directory. Will also support a URL to a .txt file full of .zip part URLs, although MS seem to have deprecated this.
- start.sh (QCOW image)
- Fetch virtio.iso if not already there, and start the image with reasonable options
wget & QEMU must be installed.
Debian / apt-based distributions:
apt install wget unzip qemu-system-x86 qemu-system-gui qemu-utils
Run
ie-urls.sh
to list available Windows / IE images, or go to http://modern.ie and select the VM you require and "Virtualbox", and copy the .zip location in the download link.Run
fetch.sh http://../IE11/IE11.Win7.VirtualBox.zip
and wait. You can break out of the download and resume it at a later point if necessary.Run
start.sh (name of image)
. Or omit the name if you want to run the most recent QCOW2 file. Usestart.sh -h
to see available options.If the VM asks you for a login, it should be
IEUser
/Passw0rd!
.Install virtIO drivers (if you did not specify
--no-virtio
):- Go to "Settings" -> "Device Manager"
- For each unknown device, right-click and select "Update driver"
- Select "Browse my computer for the driver software"
- Select the CD drive (D: virtio-win-x.x), Windows will work out which driver within to install
Disable Windows Defender AV:
- Settings -> "Windows Defender Settings" -> "Virus & threat protection"
- Untick all the sliders
- Start menu -> type in "gpedit.msc"
- "Computer Configuration" -> "Administrative Templates" -> "Windows Components" -> "Windows Defender Antivirus"
- "Turn off Windows Defender Antivirus" policy
- "Enable" and OK
Miscallaneous:
- Set screen resolution
- Set home page to
http://10.0.2.2:8000
(your laptop's port 8000)
Shut down windows, note qemu is still running.
At the QEMU monitor console (in the terminal you ran
./start.sh
from), runcommit ide0-hd0
to write changes back to the QCOW2 file.Quit QEMU with
quit
at the consoleDelete the
workdir-*
once you're happy everything worked.
Run ./start.sh (name of .qcow2 file)
. By default any changes to the VM will
be written to a temporary file, so the machine will always start up in the same
state. Use commit virtio0
if you wish to update the QCOW2 image.
If you want to have a VM that's customised for your project somehow, you could just copy the .qcow2, however that's a lot of diskspace. Instead you can create a new image that's based on the contents of another file, for example:
qemu-img create -f qcow2 -b "IE9 - Win7.qcow2" MyProject.IE9.Win7.qcow2
Vista and WinXP can use the Win8 driver incorrectly. Select the directory manually and then install.
Windows 7 doesn't work with the qxldod driver.
Delete virtio-win.iso
and re-install.
My laptop has a multitouch touchscreen:
# lsusb -d 1fd2:6007 Bus 001 Device 006: ID 1fd2:6007 Melfas LGDisplay Incell Touch
If I temporarily grant read-write to the usb device:
# ls -l /dev/bus/usb/001/006 crw-rw-r-- 1 root root 189, 5 Apr 21 10:31 /dev/bus/usb/001/006 # chmod a+rw /dev/bus/usb/001/006
...then QEMU can claim it and I can use it directly under QEMU, testing pinch-zoom effects:
EXTRA_ARGS="-device usb-host,vendorid=0x1fd2,productid=0x6007" ./start.sh . . .