adnan360 c06706716e Add variable for RAM 2 lat temu
..
.gitignore e0c7b0707a Improve ReactOS SPICE script 2 lat temu
README.md 4df737b5e7 Fix if iso does not exist 2 lat temu
run-reactos-spice.sh c06706716e Add variable for RAM 2 lat temu

README.md

ReactOS Guide

WARNING: ReactOS is alpha software (in June 2021). It can be highly unstable at times. Please do not rely on it or these instructions for serious work.

Starting with QEMU

On Linux, install qemu and qemu-kvm (or if not present, libvirt). Create a directory somewhere. Download ReactOS boot ISO (not live ISO). Currently only 0.4.14 RC works for me (I tried with ReactOS-0.4.14-RC-69-g99f203c-iso.zip). Rename the ISO to reactos.iso. Then create an HD image to store your changes that happens inside the machine:

qemu-img create -f qcow2 reactos.img 4G

qcow2 takes space gradually as you fill up the space. 4G = 4GBs. You can choose any size you like. Having more space will let you store more programs and files.

Create a script to start the machine:

touch run-reactos.sh
chmod +x run-reactos.sh

Put something like this on run-reactos.sh:

#!/usr/bin/env sh
cd $(dirname $0)
qemu-system-$(uname -m) -m 1300M -enable-kvm -net nic,model=ne2k_pci -net user -device ac97 -cdrom reactos.iso -hda reactos.img

Now run the run-reactos.sh script and setup as usual.

Sharing files

This is to help with sharing files from host OS to ReactOS guest. The process described here requires mkisofs and does not require complicated commands. But there are other ways mentioned here.

  • Install mkisofs. Depending on your distro it may be called cdrtools, libisofs, libisofs6, libisofs1 etc. Search your package repos with "isofs" to get a hint. You can also build libisofs from source if you want.
  • Create a directory named _shared. The idea behind this is that the files you want to share should be inside this directory. And when you run the script, it will make a .iso file out of it and add it in the qemu command with -cdrom parameter.
  • When you run this, it may take some time depending on the content of the _share directory. So, create a separate run script so that you have a choice to run the iso one when needed. Create file called run-reactos-with-share.sh, then run chmod +x run-reactos-with-share.sh. Put this in the file:
#!/usr/bin/env sh
cd $(dirname $0)
[ ! -d _share ] && mkdir _share
if [ -n "$(command -v mkisofs)" ] && [ "$(stat -t _share)" != "$(cat _share_stat)" ]; then # if anything inside _share changed, create iso
	[ -f _share.iso ] && rm _share.iso
	if [ "$(ls -A _share)" ]; then
		mkisofs -iso-level 4 -J -l -D -N -joliet-long -untranslated-filenames -V "SHARE" -o _share.iso _share
		[ "$?" != '0' ] && echo 'ISO creation failed!' && rm _share.iso &>/dev/null && exit 1
	fi
	stat -t _share > _share_stat
fi
[ -f _share.iso ] && cdrom="-cdrom _share.iso"
qemu-system-$(uname -m) -m 1300M -enable-kvm -net nic,model=ne2k_pci -net user -device ac97 "$cdrom" -hda reactos.img
  • After ReactOS boots up, go to My Computer and you will see a CD-ROM drive with "SHARE" label with all your files inside.

NOTE: ISO standard is very old and limited, and ReactOS can't handle many errors. If you mess up anything, for example use long label name (-V) or forget to create the directory, it will hang the system on boot. Run the script on a terminal when you can't figure out what's wrong. ISO is read only tech, so this can be used to share files from host to guest, not the other way around.

Abyss web server

  • Install Abyss web server from React OS Application Manager or download from https://apprelium.com/downloads/
  • If you reboot and it didn't start on startup, go to Start Menu - Programs - Abyss Web Server - Abyss Web Server X1 to start it
  • On the other hand, if you want it to start on startup, but it doesn't, then go to Start Menu - Programs - Abyss Web Server - Abyss Web Server Startup Configuration and choose to start up on logon

PHP

<?php
phpinfo();
  • Then open a web browser (e.g. K-meleon or Firefox) and visit http://localhost/phpinfo.php
  • If you've done everything correctly you should see phpinfo as expected

MariaDB

  • Go to: https://downloads.mariadb.org/mariadb/+releases/
  • Download 10.1.13 win32 msi file and install it. When it asks to set a password for root, choose a password and take a note of it. You can optionally check the UTF-8 checkbox, but otherwise default should be ok for everything else.
  • It will stop when you reboot. To start it, go to C:\Program Files\Maria DB 10.1\bin and double click mysqld.exe
  • To start it automatically on startup, go to Start Menu - Programs and right click Startup and select Explore. Now copy the mysqld.exe and right click on the explorer of Startup that you just opened and select Paste as Link

Adminer

  • Go to https://www.adminer.org
  • Download the adminer php file (avoid the "for MySQL" version since you are using MariaDB)
  • Copy the php file to where you want it. e.g. copy it to C:\Program Files\Abyss Web Server\htdocs\adminer.php
  • Then access it via web browser. e.g. http://localhost/adminer.php
  • Enter username root, password as the one you used while installing it and you can leave the database name empty

Unijoy

Unijoy from Ekushey is a great way to type Bangla. If you like Unijoy layout, you can try this:

  • Go to: https://www.ekushey.org/?page/uni_joy_layout
  • Download the keyboard input system installer for Windows XP Service Pack 2 or 3
  • Extract and double click Setup.exe and continue install
  • Search for "solaimanlipi download" and download SolaimanLipi font. Double click the .ttf file and click Install
  • Close other programs as it may ask to reboot after changing settings
  • Right click the EN icon on system tray and select Preferences
  • Click Add
  • Unfortunately there's no "Bangla" or "Bengali" in the Input Language list, so choose Basque
  • Change Keyboard layout/IME to Bangla - UniJoy and add
  • Click Key Settings and then Change Key Sequence to configure the keyboard shortcut to change layout
  • When you click OK it may ask to reboot. Click Yes

When you reboot, open up Wordpad, select SolaimanLipi as font and press the key combination to change layout. Now type anything to see Bangla characters.