source: chapter08/grub.xml@ 5998892

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.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 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 5998892 was 5998892, checked in by Matthew Burgess <matthew@…>, 19 years ago

Add -v to commands that accept it

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@6913 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">
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<warning><para>The following command will overwrite the current boot
67loader. Do not run the command if this is not desired, for example, if
68using a third party boot manager to manage the Master Boot Record
69(MBR). In this scenario, it would make more sense to install
70GRUB into the <quote>boot sector</quote> of the LFS partition. In this
71case, this next command would become <userinput>setup
72(hd0,3)</userinput>.</para></warning>
73
74<para>Tell GRUB to install itself into the MBR of
75<filename class="partition">hda</filename>:</para>
76
77<screen><userinput>setup (hd0)</userinput></screen>
78
79<para>If all went well, GRUB will have reported finding its files in
80<filename class="directory">/boot/grub</filename>. That's all there is
81to it. Quit the <command>grub</command> shell:</para>
82
83<screen><userinput>quit</userinput></screen>
84
85<para>Create a <quote>menu list</quote> file defining GRUB's boot menu:</para>
86
87<screen><userinput>cat &gt; /boot/grub/menu.lst &lt;&lt; "EOF"
88<literal># Begin /boot/grub/menu.lst
89
90# By default boot the first menu entry.
91default 0
92
93# Allow 30 seconds before booting the default.
94timeout 30
95
96# Use prettier colors.
97color green/black light-green/black
98
99# The first entry is for LFS.
100title LFS &version;
101root (hd0,3)
102kernel /boot/lfskernel-&linux-version; root=/dev/hda4</literal>
103EOF</userinput></screen>
104
105<para>Add an entry for the host distribution if desired. It might look
106like this:</para>
107
108<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
109<literal>title Red Hat
110root (hd0,2)
111kernel /boot/kernel-2.6.5 root=/dev/hda3
112initrd /boot/initrd-2.6.5</literal>
113EOF</userinput></screen>
114
115<para>If dual-booting Windows, the following entry will allow
116booting it:</para>
117
118<screen><userinput>cat &gt;&gt; /boot/grub/menu.lst &lt;&lt; "EOF"
119<literal>title Windows
120rootnoverify (hd0,0)
121chainloader +1</literal>
122EOF</userinput></screen>
123
124<para>If <command>info grub</command> does not provide all necessary material, additional
125information regarding GRUB is located on its website at:
126<ulink url="http://www.gnu.org/software/grub/"/>.</para>
127
128<para>The FHS stipulates that GRUB's <filename>menu.lst</filename> file should be symlinked to
129<filename class="symlink">/etc/grub/menu.lst</filename>. To satisfy this requirement, issue the
130following command:</para>
131
132<screen><userinput>mkdir -v /etc/grub &amp;&amp;
133ln -sv /boot/grub/menu.lst /etc/grub</userinput></screen>
134
135</sect1>
136
Note: See TracBrowser for help on using the repository browser.