source: chapter08/grub.xml@ b48b8c5

Last change on this file since b48b8c5 was b48b8c5, checked in by Manuel Canales Esparcia <manuel@…>, 19 years ago

Removed beginpage tags.

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/multi-arch/BOOK@4688 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 5.4 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
3 <!ENTITY % general-entities SYSTEM "../general.ent">
4 %general-entities;
5]>
6<sect1 id="ch-bootable-grub" arch="x86">
7<title>Making the LFS System Bootable</title>
8<?dbhtml filename="grub.html"?>
9
10<indexterm zone="ch-bootable-grub">
11<primary sortas="a-Grub">Grub</primary>
12<secondary>configuring</secondary></indexterm>
13
14<para>Your shiny new LFS system is almost complete. One of the last
15things to do is to ensure that the system can be properly booted. The
16instructions below apply only to computers of IA-32 architecture,
17meaning mainstream PCs. Information on <quote>boot loading</quote> for
18other architectures should be available in the usual resource-specific
19locations for those architectures.</para>
20
21<para>Boot loading can be a complex area, so a few cautionary
22words are in order. Be familiar with the current boot loader and any other
23operating systems present on the hard drive(s) that need to be
24bootable. Make sure that an emergency boot disk is ready to
25<quote>rescue</quote> the computer if the computer becomes
26unusable (un-bootable).</para>
27
28<para>Earlier, we compiled and installed the Grub boot loader software
29in preparation for this step. The procedure involves writing some
30special Grub files to specific locations on the hard drive. We highly
31recommend creating a Grub boot floppy diskette as a backup. Insert a
32blank floppy diskette and run the following commands:</para>
33
34<screen><userinput>dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
35dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1</userinput></screen>
36
37<para>Remove the diskette and store it somewhere safe. Now, run the
38<command>grub</command> shell:</para>
39
40<screen><userinput>grub</userinput></screen>
41
42<para>Grub uses its own naming structure for drives and partitions in
43the form of <emphasis>(hdn,m)</emphasis>, where <emphasis>n</emphasis>
44is the hard drive number and <emphasis>m</emphasis> is the partition
45number, both starting from zero. For example, partition <filename
46class="partition">hda1</filename> is <emphasis>(hd0,0)</emphasis> to
47Grub and <filename class="partition">hdb3</filename> is
48<emphasis>(hd1,2)</emphasis>. In contrast to Linux, Grub does not
49consider CD-ROM drives to be hard drives. For example, if using a CD
50on <filename class="partition">hdb</filename> and a second hard drive
51on <filename class="partition">hdc</filename>, that second hard drive
52would still be <emphasis>(hd1)</emphasis>.</para>
53
54<para>Using the above information, determine the appropriate
55designator for the root partition (or boot partition, if a separate
56one is used). For the following example, it is assumed that the root
57(or separate boot) partition is <filename
58class="partition">hda4</filename>.</para>
59
60<para>Tell Grub where to search for its
61<filename>stage{1,2}</filename> files. The Tab key can be used
62everywhere to make Grub show the alternatives:</para>
63
64<screen><userinput>root (hd0,3)</userinput></screen>
65
66
67<warning><para>The following command will overwrite the current boot
68loader. Do not run the command if this is not desired, for example, if
69using a third party boot manager to manage the Master Boot Record
70(MBR). In this scenario, it would make more sense to install
71Grub into the <quote>boot sector</quote> of the LFS partition. In this
72case, this next command would become <userinput>setup
73(hd0,3)</userinput>.</para></warning>
74
75<para>Tell Grub to install itself into the MBR of
76<filename class="partition">hda</filename>:</para>
77
78<screen><userinput>setup (hd0)</userinput></screen>
79
80<para>If all went well, Grub will have reported finding its files in
81<filename class="directory">/boot/grub</filename>. That's all there is
82to it. Quit the <command>grub</command> shell:</para>
83
84<screen><userinput>quit</userinput></screen>
85
86<para>Create a <quote>menu list</quote> file defining Grub's boot menu:</para>
87
88<screen><userinput>cat &gt; /boot/grub/menu.lst &lt;&lt; "EOF"
89<literal># Begin /boot/grub/menu.lst
90
91# By default boot the first menu entry.
92default 0
93
94# Allow 30 seconds before booting the default.
95timeout 30
96
97# Use prettier colors.
98color green/black light-green/black
99
100# The first entry is for LFS.
101title LFS &version;
102root (hd0,3)
103kernel /boot/lfskernel-&linux-version; root=/dev/hda4</literal>
104EOF</userinput></screen>
105
106
107<para>Add an entry for the host distribution if desired. It might look
108like this:</para>
109
110<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
111<literal>title Red Hat
112root (hd0,2)
113kernel /boot/kernel-2.4.20 root=/dev/hda3
114initrd /boot/initrd-2.4.20</literal>
115EOF</userinput></screen>
116
117<para>If dual-booting Windows, the following entry will allow
118booting it:</para>
119
120<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
121<literal>title Windows
122rootnoverify (hd0,0)
123chainloader +1</literal>
124EOF</userinput></screen>
125
126<para>If <command>info grub</command> does not provide all necessary material, additional
127information regarding Grub is located on its website at:
128<ulink url="http://www.gnu.org/software/grub/"/>.</para>
129
130<para>The FHS stipulates that Grub's <filename>menu.lst</filename> file should be symlinked to
131<filename class="symlink">/etc/grub/menu.lst</filename>. To satisfy this requirement, issue the
132following command:</para>
133
134<screen><userinput>mkdir /etc/grub &amp;&amp;
135ln -s /boot/grub/menu.lst /etc/grub</userinput></screen>
136
137</sect1>
138
Note: See TracBrowser for help on using the repository browser.