source: chapter08/grub.xml@ 821f799

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_0 v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since 821f799 was 821f799, checked in by Greg Schafer <greg@…>, 21 years ago

Chapter 9: Reworked final strip command. Relocated paragraphs about directory removal from Chapter 6.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2992 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 4.7 KB
Line 
1<sect1 id="ch08-grub">
2<title>Making the LFS system bootable</title>
3<?dbhtml filename="grub.html" dir="chapter08"?>
4
5<para>Your shiny new LFS system is almost complete. One of the last things to
6do is ensure you can boot it. The instructions below apply only to computers
7of IA-32 architecture, i.e. mainstream PC's. Information on "boot loading" for
8other architectures should be available in the usual resource specific
9locations for those architectures.</para>
10
11<para>Boot loading can be a complex area. First, a few cautionary words. You
12really should be familiar with your current boot loader and any other
13operating systems present on your hard drive(s) that you might wish to keep
14bootable. Please make sure that you have an emergency boot disk ready, so that
15you can rescue your computer if, by any chance, your computer becomes unusable
16(unbootable).</para>
17
18<para>Earlier, we compiled and installed the Grub boot loader software in
19preparation for this step. The procedure involves writing some special Grub
20files to specific locations on the hard drive. Before we get to that, we
21highly recommend that you create a Grub boot floppy diskette just in case.
22Insert a blank floppy diskette and run the following commands:</para>
23
24<screen><userinput>dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1
25dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1</userinput></screen>
26
27<para>Remove the diskette and store it somewhere safe. Now we'll run the
28<userinput>grub</userinput> shell.</para>
29
30<screen><userinput>grub</userinput></screen>
31
32<para>Grub uses its own naming structure for drives and partitions, in the form
33of (hdn,m), where <emphasis>n</emphasis> is the hard drive number, and
34<emphasis>m</emphasis> the partition number, both starting from zero. This
35means, for instance, that partition <filename>hda1</filename> is (hd0,0) to
36Grub, and <filename>hdb2</filename> is (hd1,1). In contrast to Linux, Grub
37doesn't consider CD-ROM drives to be hard drives, so if you have a CD on
38<filename>hdb</filename>, for example, and a second hard drive on
39<filename>hdc</filename>, that second hard drive would still be (hd1).</para>
40
41<para>Using the above information, determine the appropriate designator for
42your root partition. For the following example, we'll assume your root
43partition is <filename>hda4</filename>.</para>
44
45<para>First, tell Grub where to search for its <filename>stage{1,2}</filename>
46files -- you can use Tab everywhere to make Grub show the alternatives:</para>
47
48<screen><userinput>root (hd0,3)</userinput></screen>
49
50<!-- HACK - Force some whitespace to appease tidy -->
51<literallayout></literallayout>
52
53<warning><para>The following command will overwrite your current boot loader.
54Don't run the command if this is not what you want. For example, you may be
55using a third party boot manager to manage your MBR (Master Boot Record). In
56this scenario, it would probably make more sense to install Grub into the
57"boot sector" of the LFS partition, in which case the command would become
58<userinput>setup (hd0,3)</userinput>:</para></warning>
59
60<!-- HACK - Force some whitespace to appease tidy -->
61<literallayout></literallayout>
62
63<para>Then tell it to install itself into the MBR (Master Boot Record) of
64<filename>hda</filename>:</para>
65
66<screen><userinput>setup (hd0)</userinput></screen>
67
68<para>If all is well, Grub will have reported finding its files in
69<filename>/boot/grub</filename>. That's all there is to it:</para>
70
71<screen><userinput>quit</userinput></screen>
72
73<para>Now we need to create the <filename>menu.lst</filename> file, which
74defines Grub's boot menu:</para>
75
76<screen><userinput>cat &gt; /boot/grub/menu.lst &lt;&lt; "EOF"</userinput>
77# Begin /boot/grub/menu.lst
78
79# By default boot the first menu entry.
80default 0
81
82# Allow 30 seconds before booting the default.
83timeout 30
84
85# Use prettier colors.
86color green/black light-green/black
87
88# The first entry is for LFS.
89title LFS &milestone;
90root (hd0,3)
91kernel /boot/lfskernel root=/dev/hda4 ro
92<userinput>EOF</userinput></screen>
93
94<para>You may want to add an entry for your host distribution. It might look
95like this:</para>
96
97<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"</userinput>
98title Red Hat
99root (hd0,2)
100kernel /boot/kernel-2.4.20 root=/dev/hda3 ro
101initrd /boot/initrd-2.4.20
102<userinput>EOF</userinput></screen>
103
104<para>Also, if you happen to dual-boot Windows, the following entry should
105allow booting it:</para>
106
107<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"</userinput>
108title Windows
109rootnoverify (hd0,0)
110chainloader +1
111<userinput>EOF</userinput></screen>
112
113<para>If <userinput>info grub</userinput> doesn't tell you all you want to
114know, you can find more information regarding Grub on its website, located at:
115<ulink url="http://www.gnu.org/software/grub"/>.</para>
116
117</sect1>
118
Note: See TracBrowser for help on using the repository browser.