GRUB and LILO are the most commonly boot loaders for Red Hat Linux on x86-based systems. As operating system loaders, they operate outside of any operating system, using only the Basic I/O System (or BIOS) built into the computer hardware itself. This section describes GRUB and LILO's interactions with PC BIOSes and is specific to x86-compatible computers.
GRUB and LILO are subject to some limitations imposed by the BIOS in most x86-based computers. Specifically, most BIOSes cannot access more than two hard drives, and they cannot access any data stored beyond cylinder 1023 of any drive. Note that some recent BIOSes do not have these limitations, but this is by no means universal.
All the data GRUB and LILO need to access at boot time (including the Linux kernel) is located in the /boot directory. If you follow the partition layout recommended above or are performing a workstation or server install, the /boot directory will be in a small, separate partition. Otherwise, it may reside in the root partition (/). In either case, the partition in which /boot resides must conform to the following guidelines if you are going to use GRUB or LILO to boot your Red Hat Linux system:
Disk Druid, as well as automatic partitioning, takes these BIOS-related limitations into account.
On the first two IDE drives — If you have two IDE (or EIDE) drives, /boot must be located on one of them. Note that this two-drive limit also includes any IDE CD-ROM drives on your primary IDE controller. So, if you have one IDE hard drive and one IDE CD-ROM on your primary controller, /boot must be located on the first hard drive only, even if you have other hard drives on your secondary IDE controller.
On the first IDE or first SCSI drive — If you have one IDE (or EIDE) drive and one or more SCSI drives, /boot must be located either on the IDE drive or the SCSI drive at ID 0. No other SCSI IDs will work.
On the first two SCSI drives — If you have only SCSI hard drives, /boot must be located on a drive at ID 0 or ID 1. No other SCSI IDs will work.
On a partition that’s completely below cylinder 1023 — No matter which of the above configurations apply, the partition that holds /boot must be located entirely below cylinder 1023. If the partition holding /boot straddles cylinder 1023, you may face a situation where GRUB and LILO will work initially (because all the necessary information is below cylinder 1023) but will fail if a new kernel is to be loaded and that kernel resides above cylinder 1023.
As mentioned earlier, it is possible that some of newer BIOSes may permit GRUB and LILO to work with configurations that do not meet these guidelines. Likewise, some of GRUB and LILO's more esoteric features may be used to get a Linux system started, even if the configuration does not meet our guidelines. However, due to the number of variables involved, Red Hat does not support such efforts.