FreeLoader (Sometimes FreeLdr) is the ReactOS bootloader. It can also function as a bootmanager for multiple OSes.
FreeLoader is composed of two files, an executable (FREELDR.SYS) and a configuration file in Windows INI format (FREELDR.INI), and a bootsector to load the files. The two files are copied to the root directory (:\ or / depending on the OSes path notation) of the active partition.
Automatic FreeLoader installation by ReactOS setup
The FreeLoader boot code can be installed in many ways, depending on the pre-existing operating system. The setup logic tries the following steps in order:
Windows NT OS
If the Windows NT/2000/XP/2003 boot loader (NTLDR) is found on the active partition, the existing boot manager is configured to boot ReactOS. The FreeLoader boot code is written to a file named BOOTSECT.ROS in the root of the active partition, and an entry named "ReactOS" is added to BOOT.INI pointing to BOOTSECT.ROS.
The NT boot manager is detected by the presence of the files NTLDR and BOOT.INI in the root directory of the active partition. If Windows is set to hide system files, you may not be able to see these files.
To uninstall FreeLoader, delete the file BOOTSECT.ROS and remove the "ReactOS" entry from the hidden BOOT.INI file.
DOS / 9x
If MS-DOS or Windows 95/98/ME is found on the active partition, the original boot sector is saved to a file named BOOTSECT.DOS in the root directory of the active partition. The FreeLoader boot code is then written to the boot sector of the active partition. FreeLoader thus becomes your primary boot manager, and from its boot menu you will be able to boot both ReactOS and Windows or DOS.
MS-DOS and Windows 95/98/ME are detected by the presence of the files MSDOS.SYS and IO.SYS in the root directory of the active partition.
To uninstall FreeLoader, boot from a MS-DOS or Windows Restore floppy disk, and run the command "SYS C:". After this, the BOOTSECT.DOS file can be safely deleted.
If none of the known operating systems are found on the active partition, the original boot sector is saved to the file BOOTSECT.OLD in the root directory of the active partition. The FreeLoader boot code is then written to the boot sector of the active partition. FreeLoader thus becomes the primary boot manager. Note that you will have to edit the FREELDR.INI configuration file by yourself to boot the pre-existing operating system, because FreeLoader has no knowledge of how to do it.
To uninstall FreeLoader, restore the boot sector of the active partition from the BOOTSECT.OLD file. The details on how to do so are dependent on the operating system you are running
Note: If the active partition uses a FAT32 filesystem, the boot code does not fit into a single sector. Microsoft uses sectors number 0 and 12, while FreeLoader uses sectors number 0 and 14, so there should not be any conflicts with existing boot loaders.
Manual FreeLoader instalation
You can install FreeLoader simply by copying FREELDR.SYS and FREELDR.INI to the same partition, that must have read support by FreeLoader (which of them have, besides FAT?).
Then, you need to have FREELDR.INI (properly) loaded in memory and ran:
- You can install the official FreeLoader's boot sector in that partition's first sector. However, take care, because this can break the filesystem's "superblock", that usually resides in it's first sector. In particular, you can't simply copy the FAT boot sector to the first sector of a FAT partition, because this would overwrite the Bios Parameter Block (which is the name of the FAT superblock). There are some programs that can do this for you, so Google for them.
- Or you can go the safest way. Properly install a MultiBoot-compliant boot loader (for example, GRUB), and configure it to load the file "FREELDR.INI" as a Multiboot kernel (cause FreeLoader supports that). See HOWTO/boot FreeLoader from GRUB. You cannot directly load ntoskrnl.exe as a multiboot kernel, because it need's boot-time information that is extracted from the registry and other specific stuff that the multiboot standard, as a general standard, doesn't support.