From ReactOS Wiki
Jump to: navigation, search


Is there any documentation as to how Freeloader's config file has to look like? For some reason Reactos setup says that it was unable to install the boot loader. It is a FAT32 partition with no OS, but ntldr and boot.ini are present. Windows xp resides on the second primary partition in NTFS format. I'd like to manually set up freeldr and launch it from GRUB. --j.rohr 22:48, 11 March 2007 (CET)

I found a sample FREELDR.INI in at ReactOS Sourceforge download directory. rursus 21:00, 30 May 2007 (CEST)


Boot-time security warnings

  • Detect if important ReactOS settings have been changed
    • default shell
    • boot time services
    • startup items
    • system proxy
    • policy restrictions
    • userinit
  • Warn user and list items with option to disable

BrentNewland 05:15, 20 March 2012 (UTC)



  • Improved memory management Brian Palmer
  • Added LBA support to FAT12/16 boot sector Brian Palmer
  • Added protected mode exception handling in case FreeLoader crashes Brian Palmer
  • Reworked memory manager to use all of extended memory Brian Palmer
  • Reworked UI code, now supports multiple text-mode resolutions Brian Palmer
  • Added separate configuration for a SETUPLDR version Brian Palmer
  • Added Added ISO-9660 support for booting from CDROMs Eric Kohl
  • Ability to load Linux kernels Brian Palmer


  • EXT2/EXT3 file system support,
  • Performance enhancements,
  • VESA text modes supported now,
  • Offscreen buffering to remove flicker (Brian Palmer)

ChangeLog-0.2.3 BootData

  • Basic Live CD building infrastructure (Filip Navara)
  • New font substitution: MS Sans Serif to Bitstream Vera Serif (Filip Navara)
  • Add missing nls settings for Great Britain, tTis fixes bug #344 (Eric Kohl)
  • Corrected shell paths (Filip Navara)



  • Rewrote Freeloader to use PE-Loading and relocation of NTOSKRNL instead of multiboot. This enables the Kernel to be loaded dynamically either at a 2GB or 3GB boundary, just like on NT. (Alex Ionescu)
  • Added dynamic ACPI Support. Fixed by Filip Navara as well. (Alex Ionescu)


  • Properly handle partition(0) to mean active partition (Gé van Geldorp)
  • Don't trust the returned date/time from the BIOS. QEmu messes this up sometimes. (Gé van Geldorp)
  • Fixed the size of the hyperspace area (thanks to Filip Navara). (Hartmut Birr)
  • Enabled Pae mode in freeldr if it is requested. (Hartmut Birr)


  • Add option to not install bootloader for Bug 961: suggest to make it easy for other people that do not want install freeldr. (Magnus Olsen)
  • Improve Freeloader compilation speed and remove lots of code duplication.
  • Fix "Codepage not found" error by setting correct registry entries (Gé van Geldorp)
  • Fix hang during loading of NDIS.SYS (Gé van Geldorp)
  • Invalidate the start value if the start key doesn't exist (Hartmut Birr).
  • Changed all registry functions to WCHAR. Implemented packed/unpacked names for keys and values. Fixed the hash values for very short data (Hartmut Birr).
  • Don't search for a serial mouse, if the port is used for debug prints (Hartmut Birr).


  • - Added support for NTLDR style freeloader GUI. (Alex Ionescu)


  • Improved Compatibility with Intel Macs (Michael Steil)
  • Patch from Colin Finck for Bug #1856: Adds the "ProcessorNameString" value to the "CentralProcessor" registry key
  • Patch from Dmitry G. Gorbachev and Magnus Olsen for Bug #1874: Patch does not use the RDMSR and WRMSR measure method, which we need for dual core and the CPU supports it. See Intel documentations AP-485. The patch is from Dmitry G. Gorbachev, detections of RTSC support for single and dual core by me, adding check if the CPU support RDMSR and WRMSR and send a true or false value to GetCpuSpeed, so we know which method we should use. Dmitry's patch should be used when it is false, otherwise we should use the RDMSR and WRMSR measure method. See Bug #1874 for more details. (Magnus Olsen)
  • Partly rewritten debug print implementation (Aleksey Bragin)
  • PE Loader Improvements: Add PE routines for traversing the import table and fixing up the imports. (Alex Ionescu)
  • PE Loader Improvements: Add routine for getting the LOADER_MODULE for a freeldr module by name. (Alex Ionescu)
  • PE Loader Improvements: Add the ability to load a not-yet-loaded-driver that's in an import entry (ie: dependencies). Only used for HAL now. (Alex Ionescu)
  • PE Loader Improvements: Map HAL in the same was as the kernel, instead of relocating it as a hack from within the kernel. (Alex Ionescu)
  • PE Loader Improvements: Refactor some routines to better share code. Don't read freed memory anymore. (Alex Ionescu)
  • PE Loader Improvements: Use LdrRelocateImageWithBias instead of quintuplicating relocation code. (Alex Ionescu)
  • PE Loader Improvements: Parse kernel and HAL imports while PE-loading from within freeldr. (Alex Ionescu)
  • Remove dozens of freeldr.c hacks from the kernel. Remove slow code which was making two copies of the parameter block and wasting over 30KB in static strings that were immediately copied to other strings... (Alex Ionescu)
  • Don't use HalModuleObject and NtoskrnlModuleObject anymore. Remove LdrSafePEProcessModule and other similar boot-time hacks. Reimplement MmGetSystemRoutineAddress. (Alex Ionescu)
  • Change kdcom.sys to kdcom.dll. (Alex Ionescu)
  • Remove all kdcom exports and files from HAL and link with kdcom.dll instead. (Alex Ionescu)
  • Add support in freeldr for loading kdcom.dll (and theoretically any other import, such as the Code Integrity DLL for kernel-mode signing, but for now I've only tested this one). (Alex Ionescu)
  • Refactor some of the HAL loading code to make it generic for any image. (Alex Ionescu)
  • Load HAL manually when loading kernel, before processing imports, to make sure that HAL is index 1 in the loader modules and loads before KDCOM. (Alex Ionescu)


BrentNewland 05:18, 4 March 2012 (UTC)