GRUB consists of several images: two essential stages, optional stages
called Stage 1.5, and two network boot images. Here is a short
overview of them. See section E. Hacking GRUB, for more details.
This is an essential image used for booting up GRUB. Usually, this is
embedded in a MBR or the boot sector of a partition. Because a PC boot
sector is 512 bytes, the size of this image is exactly 512 bytes.
All `stage1' must do is to load Stage 2 or Stage 1.5 from a local
disk. Because of the size restriction, `stage1' encodes the
location of Stage 2 (or Stage 1.5) in a block list format, so it never
understand any filesystem structure.
This is the core image of GRUB. This does all things but booting up
itself. Usually, this is put in a filesystem, but that is not required.
These are called Stage 1.5, because the purpose is a bridge
between `stage1' and `stage2', that is to say, Stage 1.5 is
loaded by Stage 1 and Stage 1.5 loads Stage 2. The difference between
`stage1' and `*_stage1_5' is that the former doesn't
understand any filesystem but the latter does an filesystem
(e.g. `e2fs_stage1_5' understands ext2fs). So you can move the
location of Stage 2 to another safely, even after GRUB has been
While Stage 2 cannot generally be embedded in a fixed area as the size
is so large, Stage 1.5 can be installed into the area right after a MBR,
or the boot loader area of a ReiserFS or a FFS.
This is a network boot image for the Network Image Proposal used by some
network boot loaders, such as Etherboot. This is mostly the same as
Stage 2, but this also sets up a network and loads a configuration file
from the network.
This is another network boot image for the Preboot Execution Environment
used by several Netboot ROMs. This is identical to `nbgrub', except
for the format.