NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
The GNU GRand Unified Boot loader
(GRUB) is a program which enables the selection of the installed
operating system or kernel to be loaded at system boot time. It
also allows the user to pass arguments to the kernel.
This section discusses the specific role GRUB plays when booting
an x86 system. For a look at the overall boot process, refer to
Section 1.2 A
Detailed Look at the Boot Process.
GRUB loads itself into memory in the following stages:
The Stage 1 or primary boot loader is read
into memory by the BIOS from the MBR. The
primary boot loader exists on less than 512 bytes of disk space
within the MBR and is capable of loading either the Stage 1.5 or
Stage 2 boot loader.
The Stage 1.5 boot loader is read into
memory by the Stage 1 boot loader, if necessary. Some hardware
requires an intermediate step to get to the Stage 2 boot loader.
This is sometimes true when the /boot/
partition is above the 1024 cylinder head of the hard drive or when
using LBA mode. The Stage 1.5 boot loader is found either on the
/boot/ partition or on a small part of
the MBR and the /boot/ partition.
The Stage 2 or secondary boot loader is read
into memory. The secondary boot loader displays the GRUB menu
and command environment. This interface allows the user to select
which kernel or operating system to boot, pass arguments to the
kernel, or look at system parameters.
The secondary boot loader reads the
operating system or kernel as well as the contents of /boot/sysroot/ into memory. Once GRUB
determines which operating system or kernel to start, it loads it
into memory and transfers control of the machine to that operating
The method used to boot Red Hat Enterprise Linux is called
direct loading because the boot loader
loads the operating system directly. There is no intermediary
between the boot loader and the kernel.
The boot process used by other operating systems may differ. For
example, the Microsoft®
Windows® operating system, as
well as other operating systems, are loaded using chain loading. Under this method, the MBR points to
the first sector of the partition holding the operating system,
where it finds the files necessary to actually boot that operating
GRUB supports both direct and chain loading boot methods,
allowing it to boot almost any operating system.
During installation, Microsoft's DOS and Windows installation
programs completely overwrite the MBR, destroying any existing boot
loaders. If creating a dual-boot system, it is best to install the
Microsoft operating system first.
GRUB contains several features that make it preferable to other
boot loaders available for the x86 architecture. Below is a partial
list of some of the more important features:
GRUB provides a true command-based, pre-OS
environment on x86 machines. This feature affords the user
maximum flexibility in loading operating systems with specified
options or gathering information about the system. For years, many
non-x86 architectures have employed pre-OS environments that allow
system booting from a command line.
GRUB supports Logical Block Addressing (LBA)
mode. LBA places the addressing conversion used to find files
in the hard drive's firmware, and is used on many IDE and all SCSI
hard devices. Before LBA, boot loaders could encounter the
1024-cylinder BIOS limitation, where the BIOS could not find a file
after the 1024 cylinder head of the disk. LBA support allows GRUB
to boot operating systems from partitions beyond the 1024-cylinder
limit, so long as the system BIOS supports LBA mode. Most modern
BIOS revisions support LBA mode.
GRUB can read ext2 partitions. This
functionality allows GRUB to access its configuration file,
/boot/grub/grub.conf, every time the
system boots, eliminating the need for the user to write a new
version of the first stage boot loader to the MBR when
configuration changes are made. The only time a user needs to
reinstall GRUB on the MBR is if the physical location of the
/boot/ partition is moved on the disk.
For details on installing GRUB to the MBR, refer to Section 2.3 Installing