GRUB consists of several images: two essential stages, optional stages
called Stage 1.5, one image for bootable CD-ROM, and two network
boot images. Here is a short overview of them. See Internals, for
more details.
stage1
This is an essential image used for booting up GRUB. Usually, this is
embedded in an 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.
stage2
This is the core image of GRUB. It does everything but booting up
itself. Usually, this is put in a filesystem, but that is not required.
e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
vstafs_stage1_5
xfs_stage1_5
These are called Stage 1.5, because they serve as 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 while the latter understands one filesystem
(e.g. e2fs_stage1_5 understands ext2fs). So you can move the
Stage 2 image to another location safely, even after GRUB has been
installed.
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 an MBR,
or the boot loader area of a ReiserFS or a FFS.
stage2_eltorito
This is a boot image for CD-ROMs using the no emulation mode in
El Torito specification. This is identical to Stage 2, except that
this boots up without Stage 1 and sets up a special drive `(cd)'.
nbgrub
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 it also sets up a network and loads a configuration file
from the network.
pxegrub
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.
Published under the terms of the GNU General Public License