7.11. GRUB-0.97

The GRUB package contains the GRand Unified Bootloader.

7.11.1. Installation of GRUB

By default, GRUB doesn't support ext2 filesystems with 256-byte inodes. Fix this by applying the following patch:

patch -Np1 -i ../grub-0.97-256byte_inode-1.patch

GRUB has an issue where it sometimes doesn't detect the disk geometry correctly when used with Linux 2.6, resulting in the error message Error 24: Attempt to access block outside partition. The following patch contains a fix for this issue as well as various fixes for raid controllers and support for the new Intel Mac:

patch -Np1 -i ../grub-0.97-fixes-1.patch

This package is known to have issues when its default optimization flags (including the -march and -mcpu options) are changed. If any environment variables that override default optimizations have been defined, such as CFLAGS and CXXFLAGS, unset them when building GRUB.

Prepare GRUB for compilation:

CC="${CC} ${BUILD32}" ./configure --prefix=/usr \
   --build=${CLFS_HOST} --host=${CLFS_TARGET}

Compile the package:

make

Install the package:

make DESTDIR=${CLFS} install
mkdir -v ${CLFS}/boot/grub
cp -v ${CLFS}/usr/lib/grub/*/stage{1,2} ${CLFS}/boot/grub

The directory in ${CLFS}/usr/lib/grub (its name depends on your arch) contains a number of *stage1_5 files, different ones for different file systems. Review the files available and copy the appropriate ones to the ${CLFS}/boot/grub directory. Most users will copy the e2fs_stage1_5 and/or reiserfs_stage1_5 files.

Details on this package are located in Section 10.69.2, “Contents of GRUB.”