How to install Windows 1/2 in QEMU

From Computernewb Wiki
Jump to navigation Jump to search

Applies to: Windows 1.00, 1.01, 1.02, 1.03, 1.04, 2.01, 2.03, 2.10/286, 2.10/386, 2.11/286, 2.11/386

This page details how to install Windows 1.x/2.x in QEMU. None of these instructions require root/Administrator privileges, unless you are restricted from writing to files/downloading files.

Windows 1.x[edit]

Running Windows any version of 1.x is highly unrecommended as there is virtually no software on top of the fact that the mouse does not function correctly in QEMU.

If you are going to run this edition of Windows, then it is recommended to run 1.01. The reason for this is because the other releases merely add support for other keyboards and computers of the time. However, if your server/computer does not use a QWERTY keyboard, then it is recommend that you install Windows 1.03 for better compatibility.

As mentioned above, there is no functioning mouse driver. This is because Windows 1.x uses serial mouse drivers because PS/2 mice did not exist when Windows 1.x was released. (Windows 1.04 includes an IBM PS/2 mouse driver, however it is incompatible with the driver that QEMU emulates.) Although QEMU can emulate a serial mouse with "-serial msmouse", it does not appear to work with any version of Windows 1.

However, there is a way to get the mouse to function correctly. By swapping the mouse.drv file with a copy from any version of Windows 2, the mouse will work and function as expected.

In addition to this, Windows 1.x seems to randomly crash and have fatal memory errors at random, for no explicable reason. This is much more likely to happen if the system has tons of RAM, or is using MS-DOS 6.22. For this reason, its recommended to only run VMs running Windows 1.x on MS-DOS 3.30 or 5.0 with 2 MB of RAM as a maximum.

The instructions will use Linux - but these also apply to Windows, BSD, and MacOS. They may also apply to other operating systems, but that is not tested.

Installation[edit]

With MS-DOS[edit]

You will first want to replace MOUSE.DRV in Disk 1 with a copy from Windows 2.x, to ensure that the mouse works correctly. On Windows, WinImage can be used to do this.

Make a qcow2 image (or a raw image, if you want) by typing the following command into your Command Prompt or terminal:

qemu-img create -f qcow2 win101.img 32M

See this page for more information on how this command works.

You can also optionally install any version of Windows 1.x on a floppy disk. This is not recommended.

You should see an output similar to the following:

Example-qemu-create.png

MS-DOS is required to install all versions of Windows 1.x. You can install whatever version of MS-DOS you want, as long as its at least 2.0. However, it is recommended running it on MS-DOS 3.30 for the best compatibility. MS-DOS 6.22 also works, but seems to be more unstable with it.

Now we run the following command:

qemu-system-i386 -hda win101.img -fda (DOS Floppy Disk 1).img -boot ca -cpu pentium -m 640k -vga std -net none -localtime

Do not enable KVM, Intel HAXM or Xen. Windows 1.x instantly crashes when you open it with KVM/HAXM/Xen enabled. We want pure x86 virtualization only. We also disable networking, because there is no point in having it since Windows 1.x cannot browse the web or use networking unless a packet driver is installed. If you're going to use a packet driver, then you can add networking.

As stated previously, Windows 1.x needs DOS to function. It is not its own OS unlike Windows NT, so you will need to install MS-DOS first. Locate the following floppies:

  • MS-DOS 3.30 (or whatever) installation floppies
  • Windows 1.x installation floppies

Installing MS-DOS 3.30 is confusing if you've never done it before, but it isn't hard. To install it, first make sure that Disk 1 is inserted. Press and hold CTRL-ALT-2)to enter the command line, and type "change floppy0 MSDOS-330-DISK01-NAME.IMG", obviously replacing the example name with the correct file name, and hitting enter. Then, type boot_set a, then press enter. Finally type in system_reset and press enter. Press CTRL-ALT-1 to return. You can also make sure it is inserted with the -fda argument, but we'll need to repeat these steps later.

When it boots up, don't bother entering the date and time since it's not going to save it yet anyway. Type "fdisk". Create a DOS partition, and create a primary DOS partition. Make sure Y is pressed. Hit enter again. Wait for it to finish, it'll take a few seconds. When it asks you to restart, press any key on your keyboard. When it restarts the disk should be created but it will not be formatted yet. Type format c:, press Y, and hit enter. Now drive c: will be usable. Type sys c: and you should get a message stating "System transferred". Now type a:, and type copy *.* c:. Again press CTRL-ALT-2 to change floppy0 to the location of Disk 2. Also type boot_set c, press CTRL-ALT-1 and copy the remaining files to the C: drive. Then, CTRL-ALT-2 again and type sendkey CTRL-ALT-DEL and again press CTRL-ALT-1. Now you'll be in MS-DOS 3.30 if everything is done right.

Once MS-DOS is installed we can begin installation of Windows 1.x. Change the disk like we did with MS-DOS to Disk 1 of Windows 1.x, using the same instructions we did for the previous floppies. Switch to the A:\ drive, and type SETUP. It will ask you questions about your computer. Answer with the following:

  • Keyboard: United States (unless you have a non-QWERTY keyboard)
  • Mouse: Microsoft Mouse (Bus/Serial) (This will still display even after you have replaced the MOUSE.DRV, so pick this.)
  • Graphics adapter: EGA (more than 64K) with Enhanced Color Display
  • No printer device

Now proceed with the file copying. Change the floppy disks when it asks you to. If everything is successful, Windows 1.x will boot and the mouse will function. If it has, proceed with editing autoexec.bat and adding the startup command (if you want).

Make sure to change your startup command to this:

qemu-system-i386 -hda win101.img -boot c -cpu pentium -m 1024k -vga std -net none -localtime

Windows 2.x[edit]

Windows 2.x is far more stable in QEMU, so it is recommended to run this version over Windows 1. Not only is it far more stable but it also has some interesting software (like Microsoft Word) although the amount of software is still fairly lacking. Windows 2 still freezes with high amounts of RAM, though, so again, it's recommended to only use 2 MB of RAM as a maximum.

The mouse seems to work out of the box on at least the Windows 2.11/286 version. Windows 2.0x and 2.1x are considered entirely separate releases, although since it is in a VM it doesn't really matter. It is recommended using Windows 2.11/286 as the 386 editions of Windows 2.1 seem to be less stable when running in QEMU. The 386 edition occasionally fails to start and randomly freezes but I haven't seen this happen in the 286 version.

Installation[edit]

With MS-DOS[edit]

Windows 2.x is very similar to the Windows 1.x installation. So it will use a lot of the same steps. However, this OS seems to be stable on MS-DOS 6.22, which is significantly easier to install than 3.30. So, you can go ahead and install 6.22

Like Windows 1.x, Windows 2.0x can run right from a floppy disk. This is unrecommended. Windows 2.1x requires a hard drive. This installation will cover Windows 2.11/286, although you can use the same instructions for 2.01/2.03 as well.

Make a qcow2 image (or a raw image, if you want) by typing the following command into your Command Prompt or terminal:

qemu-img create -f qcow2 win211.img 32M

See this page for more information on how this command works.

Again, you should see an output similar to the following:

Example-qemu-create.png

Now start up QEMU with this command:

qemu-system-i386 -hda win211.img -fda (DOS Floppy Disk 1).img -boot ca -cpu pentium -m 2 -vga std -net none -localtime

Like before, Windows 2.x requires MS-DOS to function, it is not a standalone OS. It works in FreeDOS and probably DR-DOS as well. For an MS-DOS installation guide, read above.

After you install MS-DOS, it is time to install Windows 2.x. Locate Disk 1 and change it in the QEMU console, then switch to the A:\ drive and type SETUP.

Like Windows 1.x, it asks questions about your computer and hardware. Answer with the following:

  • If it states that HIMEM.SYS is installed on your system and is using the high memory area, you can continue and install Windows 2.x normally. If you want Windows 2.x to have access to the extended memory, exit the setup, and edit CONFIG.SYS. Remove the "DOS=HIGH" line, save, and reboot the VM, and restart the setup.
  • Computer: IBM AT (or 100% compatible)
  • When it asks you to review the devices, highlight "No Change" and hit enter.
  • Extended Memory: If you modified CONFIG.SYS like above, hit E. If you didn't, hit N, otherwise Windows 2.11 will fail to start.
  • Skip the printer setup.
  • Select "United States" as the country, unless you don't use a QWERTY keyboard/don't want a US time format.
  • Install Memset or skip it, it doesn't really matter.
  • Reboot the machine.

Now make sure it starts, and maybe install some software for it. A nice list of software that can run in 1.x/2.x is available here.

Enjoy!

qemu-system-i386 -hda win211.img -boot c -cpu pentium -m 2 -vga std -net none -localtime