P. 1
CLFS x86

CLFS x86

|Views: 15|Likes:
Publicado poraqua01

More info:

Published by: aqua01 on Sep 21, 2010
Direitos Autorais:Attribution Non-commercial


Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less





Your shiny new CLFS system is almost complete. One of the last things to do is to ensure that the system can be
properly booted. The instructions below apply only to computers of IA-32 architecture, meaning mainstream PCs.
Information on “boot loading” for other architectures should be available in the usual resource-specific locations for
those architectures.

Boot loading can be a complex area, so a few cautionary words are in order. Be familiar with the current boot loader
and any other operating systems present on the hard drive(s) that need to be bootable. Make sure that an emergency
boot disk is ready to “rescue” the computer if the computer becomes unusable (un-bootable).

Earlier, we compiled and installed the GRUB boot loader software in preparation for this step. The procedure involves
writing some special GRUB files to specific locations on the hard drive. We highly recommend creating a GRUB
boot floppy diskette as a backup. Insert a blank floppy diskette and run the following commands:

dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1

Remove the diskette and store it somewhere safe. Now, run the grub shell:


GRUB uses its own naming structure for drives and partitions in the form of (hdn,m), where n is the hard drive number
and m is the partition number, both starting from zero. For example, partition hda1 is (hd0,0) to GRUB and hdb3
is (hd1,2). In contrast to Linux, GRUB does not consider CD-ROM drives to be hard drives. For example, if using a
CD on hdb and a second hard drive on hdc, that second hard drive would still be (hd1).

Using the above information, determine the appropriate designator for the root partition (or boot partition, if a separate
one is used). For the following example, it is assumed that the root (or separate boot) partition is hda4.

Tell GRUB where to search for its stage{1,2} files. The Tab key can be used everywhere to make GRUB show
the alternatives:

root (hd0,3)


The following command will overwrite the current boot loader. Do not run the command if this is not
desired, for example, if using a third party boot manager to manage the Master Boot Record (MBR). In this
scenario, it would make more sense to install GRUB into the “boot sector” of the CLFS partition. In this
case, this next command would become setup (hd0,3).

Tell GRUB to install itself into the MBR of hda:

setup (hd0)

If all went well, GRUB will have reported finding its files in / boot/ grub. That's all there is to it. Quit the grub shell:


Cross-Compiled Linux From Scratch - Version 1.1.0-x86


Create a “menu list” file defining GRUB's boot menu:

cat > /boot/grub/menu.lst << "EOF"

# Begin /boot/grub/menu.lst

# By default boot the first menu entry.
default 0

# Allow 30 seconds before booting the default.
timeout 30

# Use prettier colors.
color green/black light-green/black

# The first entry is for CLFS.
title CLFS 1.1.0
root (hd0,3)
kernel /boot/clfskernel- root=/dev/hda4


Add an entry for the host distribution if desired. It might look like this:

cat >> /boot/grub/menu.lst << "EOF"

title Red Hat
root (hd0,2)
kernel /boot/kernel-2.6.5 root=/dev/hda3
initrd /boot/initrd-2.6.5


If dual-booting Windows, the following entry will allow booting it:

cat >> /boot/grub/menu.lst << "EOF"

title Windows
rootnoverify (hd0,0)
chainloader +1


If info grub does not provide all necessary material, additional information regarding GRUB is located on its website
at: http:// www. gnu. org/ software/ grub/.

The FHS stipulates that the bootloader's configuration file should be symlinked to / etc/ {Bootloader Name}.
To satisfy this requirement for GRUB, issue the following command:

mkdir -v /etc/grub &&
ln -sv /boot/grub/menu.lst /etc/grub

Cross-Compiled Linux From Scratch - Version 1.1.0-x86


Chapter 13. The End

You're Reading a Free Preview

/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->