Boot FreeLoader from GRUB

From ReactOS Wiki
Jump to: navigation, search

GRUB is a popular boot manager for people with many different operating systems installed on one machine or hard disk. FreeLoader is the bootloader for ReactOS and also a possible boot manager. If you have GRUB already installed and then install ReactOS, FreeLoader's abilities become redundant and annoying. This document shows how to keep FreeLoader from doing much beyond acting as a bootloader for ReactOS.

Method

FreeLoader can be loaded as a "multiboot kernel" by multiboot compliant bootstrap loaders like GRUB. To load FreeLoader from GRUB, put something like this in the GRUB's menu.lst configuration file:

title		ReactOS
root		(hd0,0)
kernel		/freeldr.sys


Note:

  • (hd0,0) refers to the first partition on the first disk.
  • (hd1,0) refers to the first partition on the second disk.
  • (hd0,1) refers to the second partition on the first disk.

Another generic way to discover the exact GRUB name of your ReactOS partition is to open the GRUB console and type:

> root (hd

and press TAB button; If you only have one hard drive it will auto-complete the "0," If you have more than one it will list the available hard drives. After you have selected a hard drive you can hit the tab key after the comma and it will again either give you 0 if you only have one partition on that hard drive, or it will give you a list of possible partitions to choose from. Note that there is no comma between hd0 and the partition number.

You should make sure that the path referred to by "kernel" and freeldr.sys is on a FAT16/32 partition.

You can also override settings in the [FREELOADER] section of FreeLoader's freeldr.ini configuration file by passing them on the command line, like this:

title ReactOS
root	(hd0,0)
kernel	/freeldr.sys DefaultOS=ReactOS TimeOut=0
title ReactOS (Debug)
root	(hd0,0)
kernel	/freeldr.sys DefaultOS=ReactOS_Debug TimeOut=0

After selecting "ReactOS" from the GRUB menu you will not have to make another selection on the freeloader menu because of the TimeOut=0.

Finally, the working section for GRUB1 looks like:

title ReactOS
         root(hd0,2)
         chainloader +1
         makeactive
         kernel /freeldr.sys

makeactive command here is necessary since without it, FreeLDR can't find file freeldr.ini and requests reinstallation of freeloader.

GRUB 2

The next generation of GRUB, GRUB 2 uses other language in its configuration file grub.cfg. Here is an example how to add a menu entry for ReactOS:

menuentry "ReactOS" {
	set root=(hd0,1)
	multiboot /freeldr.sys
}

Note that partition numbering has been changed, and (hd0,1) refers to the first partition on the first disk.

The last example in Grub1 section written for GRUB2 would be:

menuentry "ReactOS" {
	set root=(hd0,1)
	chainloader +1
	parttool (hd0,1) boot+
	multiboot /freeldr.sys
}

External links