7.12. GRUB-0.97

The GRUB package contains the GRand Unified Bootloader.

7.12.1. Installation of GRUB

GRUB has an issue where it sometimes doesn't detect the disk geometry correctly when used with Linux 2.6. This results in the error message Error 24: Attempt to access block outside partition. This patch also contains various fixes for raid controllers along with support for the new Intel Mac. Apply the following patch using the command below:

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

The follow patch will fix an issue that exists with grub on x86_64 machines, that causes grub to segfault when you try to configure a drive to utilize grub:

patch -Np1 -i ../grub-0.97-use_mmap-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/x86_64-pc/stage{1,2} ${CLFS}/boot/grub

Replace x86_64-pc with whatever directory is appropriate for the hardware in use.

The x86_64-pc directory 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.66.2, “Contents of GRUB.”