- Slackware64 14.0 as host
- QEMU 1.4.0
I might using Linux for this article, but the preloaded archive itself is made specially for Windows.
Obtaining the Materials
As said, we will do installation of ReactOS on virtual machine using QEMU. Thus you have to make sure QEMU is installed and enable to run properly.
The main material we need is the ReactOS ISO itself. Go to http://reactos.org/, ReactOS’ official site. The latest version is 0.3.15 which is still in alpha version (not feature-complete and is recommended only for evaluation and testing purposes). ReactOS team provide three way to taste ReactOS, which are: Installation CD in iso format, Live CD, and preloaded image file. As our concern is installation ReactOS to QEMU, choose the Preloaded with QEMU. Upon finish downloading, extract the content which you will get a directory named ReactOS-0.3.15-QEMU. We will refer this iso as ROSdir
On the Directory
Go to ROSdir and let’s inspect what are inside. If you want to skip this section, go to next section for actual testing.
There are three items on the root: Readme.txt, boot.bat, and directory files. Basically this is specially prepared for Windows. The boot.bat is Windows batch script to invoke QEMU. All the materials are inside files directory. Go to files and here we see bunch of files. Basically these are all the materials.
There are some interesting files there:
- bios.bin: the PC BIOS which is used by QEMU to emulate x86_64 machine
- pxe-ne2k_pci.bin: Ethernet driver
- vgabios-cirrus.bin: driver for VGA
- SDL.dll: Dynamic Link Library (DLL) for SDL. This is used by QEMU.
- qemu.exe: the QEMU itself.
- qemu-img.exe: QEMU tools for manipulating disk image.
Boot and Testing
Back to ROSdir.
Now on our working directory, let’s invoke following command to spawn qemu.
qemu-system-i386 -m 256 -hda files/ReactOS.vmdk -net nic,model=ne2k_pci -net user \ -serial file:files/ReactOS.log
Notice the “.” on the command. Here we get some arguments.
- -m 256 means we give 512MB of RAM. If you got plenty of RAM available and don’t mind share some, you can set this value higher.
- -hda files/ReactOS.vmdk: ReactOS team provide us with vmdk file, which is VMware virtual disk format
- -net nic,model=ne2k_pci: We will make use of networking using pxe-ne2k_pci driver
- -serial file:files/ReactOS.log will log and catch debug message emitted by QEMU. Valid arguments to -serial include file names, pipes, COM ports, etc.
If the above command failed with following error: qemu-system-i386: Can’t open BIOS image bios.bin
Then you should find where bios.bin stored. Invoke following command to search it.
Let’s say it is on /usr/local/share/qemu/bios.bin, then invoke this to start up the qemu:
qemu-system-i386 -m 256 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime \ -serial file:ReactOS.log -bios /usr/local/share/qemu/bios.bin
If you want to set the sound, go on and set emulation to AC97. To do that, add -soundhw ac97 as argument when calling qemu. You should also install drivers later. Alternatively, you can set the emulation to ES1370 using -soundhw es1370 instead of ac97 one.
Now, here is the screenshot:qemu, reactos, virtualization