12.1. Introduction
Linux
has two excellent bootloaders: GRUB (the Grand
Unified Bootloader) and LILO (Linux Loader). GRUB is
newer and more capable than the elder LILO. Both are flexible,
configurable, and capable of managing complex boot scenarios, such as
multibooting several different operating systems or different Linux
kernels, and passing in boot-time kernel options.
If you're still running LILO, it might be worth considering
migrating to GRUB. While they work similarly, there are four major
differences that set GRUB apart:
You can discover boot images, kernels, and root filesystems from the
GRUB command shell. GRUB stores boot information in a filesystem, rather than in the
master boot record (MBR). GRUB reads filesystems and kernel executables, rather than inflexibly
restricting the user to disk geometry. And best of all, GRUB is completely operating system-independent. If
you install GRUB into a separate boot partition, you can remove and
reinstall operating systems to your heart's content,
without having to reinstall the bootloader every time.
Both GRUB and LILO can boot non-Linux operating systems, such as
Windows, OS/2, the BSD Unixes, and so forth. For operating systems
that they cannot boot directly, such as Windows, GRUB and LILO employ
chain
loading. That is, they point the way to
Windows's own bootloader.
The MBR is the first 512 bytes of the
first sector of the first partition on the drive. It contains the
partition table and the first-stage bootloader. The first-stage
loader is a wee bit of code stored in the first 446 bytes of the MBR,
which points the way to the second-stage loader, which is stored in
the /boot directory. The remaining 66 bytes are
for the partition table.
Linux
partitioning is
limited to 63 total partitions per IDE drive: 3 primary partitions,
with the 4th containing up to 60 logical partitions in a single
extended partition.
SCSI drives are limited to 15 partitions per drive: 3 usable primary
partitions, and 12 logical partitions in a single extended partition.
|