| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 | <sect1 id="ch08-grub"><title>Making the LFS system bootable</title><?dbhtml filename="grub.html" dir="chapter08"?><para>Now that we have our shiny new Linux-From-Scratch system completed,we need to ensure we can boot it.  To do this, we will run the<userinput>grub</userinput> program.</para><screen><userinput>grub</userinput></screen><para>Grub uses its own naming structure for drives and partitions, in the formof (hdn,m), where <emphasis>n</emphasis> is the hard drive number, and<emphasis>m</emphasis> the partition number, both starting from zero. Thismeans, for instance, that partition <filename>hda1</filename> is (hd0,0) toGrub, and <filename>hdb2</filename> is (hd1,1). In contrast to Linux, Grubdoesn't consider CD-ROM drives to be hard drives, so if you have a CD on<filename>hdb</filename>, for example, and a second hard drive on<filename>hdc</filename>, that second hard drive would still be (hd1).</para><para>Using the above information, determine the appropriate designator foryour root partition. For the following example, we'll assume your rootpartition is <filename>hda4</filename>.</para><para>First, tell Grub where to search for its <filename>stage{1,2}</filename>files -- you can use Tab everywhere to make Grub show the alternatives:</para><screen><userinput>root (hd0,3)</userinput></screen><para>Then tell it to install itself into the MBR (Master Boot Record) of<filename>hda</filename>:</para><screen><userinput>setup (hd0)</userinput></screen><para>If all is well, Grub will have reported finding its files in<filename>/boot/grub</filename>. That's all there was to it:</para><screen><userinput>quit</userinput></screen><para>Now we need to create the <filename>menu.lst</filename> file, whichdefines Grub's boot menu:</para><screen><userinput>cat > /boot/grub/menu.lst << "EOF"</userinput># 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 LFS.title LFS 5.0root (hd0,3)kernel /boot/lfskernel root=/dev/hda4 ro<userinput>EOF</userinput></screen><para>You may want to add an entry for your host distribution.  It might looklike this:</para><screen><userinput>cat >> /boot/grub/menu.lst << "EOF"</userinput>title Red Hatroot (hd0,2)kernel /boot/kernel-2.4.20 root=/dev/hda3 roinitrd /boot/initrd-2.4.20<userinput>EOF</userinput></screen><para>Also, if you happen to dual-boot Windows, the following entry shouldallow booting it:</para><screen><userinput>cat >> /boot/grub/menu.lst << "EOF"</userinput>title Windowsrootnoverify (hd0,0)chainloader +1<userinput>EOF</userinput></screen><para>If <userinput>info grub</userinput> doesn't tell you all you want toknow, you can find more information regarding Grub on its website, located at:<ulink url="http://www.gnu.org/software/grub"/>.</para></sect1>
 |