Qemu is a free x86 Emulator/Virtual Machine for Linux and Windows.
Grabbing debug messages
By default, ReactOS debug messages are sent to the serial port (COM1). For grabbing that output, you need Qemu version 0.6.1 or later, in which you can specify the -serial option.
Your command line could look like this:
qemu -L . -hda C:\qemu\ReactOS.vmdk -cdrom C:\RosBE\Source\Reactos.iso -serial CON
Be sure to use valid paths (depending on your configuration an program paths).
Valid arguments to -serial include filenames, pipes, COM Ports and more. Those arguments could be:
-serial file:"C:\roslog.txt" -serial pipe:"\\pipe1\" -serial COM4
Using com0com with QEMU
com0com is a free utility to create virtual serial port pairs which can be used to capture the debug output of ReactOS and direct it to a terminal program.
Useful terminal programs include:
Get com0com and install it. Run the com0com command shell and type
install PortName=COM4 PortName=COM5
and it will create two virtual ports connected together. If you prefer different ports, just change the port names (a simple help is avaible via "help" command).
Add the following option to your QEMU command line
WARNING: you need to write "COM4" with capital letters and not "com4" otherwise QEMU won't use the serial port at all!
Open you terminal program and start a new connection on port "COM5". If COM5 is not listed, try COM4.
FINAL NOTE: the properties of the serial port, like the baud rate, are not important. Instead, be sure to select "NO FLOW CONTROL" otherwise the terminal program won't receive characters.
Another option is to use the ReactOS Test Environment instead of setting this up manually.
ReactOS preloaded with QEMU
A preloaded QEMU image of ReactOS can be found here.
Installing ReactOS on QEMU
1. Create a drive image, on which ReactOS will be installed, by typing:
qemu-img create ReactOS.img 100M
100M stands for 100 megabytes- that shall be enough. It shall be greater, if you plan to install some application to try under ReactOS.
2. In *nix only, type:
sudo umount /dev/shm sudo mount -t tmpfs -o size=144m none /dev/shm
qemu -L . -m 256 -cdrom ReactOS.iso -hda ReactOS.img -boot d -localtime -serial file:ReactOS.log
-m 256 stand for 256MB RAM -boot d instructs qemu to boot from the cdrom. Without -boot d it will boot from the HDD (Reactos.img).
ReactOS.iso is the image of the installation cd, which can be downloaded from http://www.reactos.org/en/download.html
When reinstalling ReactOS, perform steps 2 (if necessary) and 3 only.
If you want to copy some files to ReactOS, you could create an CD-ROM image and mount it on qemu. You can run qemu this way:
qemu -L . -m 256 -cdrom Applications.iso -hda ReactOS.img -localtime -serial file:ReactOS.log