aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/grub.xml
blob: 77795c2f30adf20c2160c6327c24470dc86a5475 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-system-grub" role="wrap">
  <?dbhtml filename="grub.html"?>

  <sect1info condition="script">
    <productname>grub</productname>
    <productnumber>&grub-version;</productnumber>
    <address>&grub-url;</address>
  </sect1info>

  <title>GRUB-&grub-version;</title>

  <indexterm zone="ch-system-grub">
    <primary sortas="a-Grub">GRUB</primary>
  </indexterm>

  <sect2 role="package">
    <title/>

    <para>The GRUB package contains the GRand Unified Bootloader.</para>

    <segmentedlist>
      <segtitle>&buildtime;</segtitle>
      <segtitle>&diskspace;</segtitle>

      <seglistitem>
        <seg>&grub-ch6-sbu;</seg>
        <seg>&grub-ch6-du;</seg>
      </seglistitem>
    </segmentedlist>

  </sect2>

  <sect2 role="installation">
    <title>Installation of GRUB</title>

    <para>This package is known to have issues when its default
    optimization flags (including the <parameter>-march</parameter> and
    <parameter>-mcpu</parameter> options) are changed. If any environment
    variables that override default optimizations have been defined, such
    as <envar>CFLAGS</envar> and <envar>CXXFLAGS</envar>,
    unset them when building GRUB.</para>

    <para>Start by applying the following patch to allow for better drive
    detection, fix some GCC 4.x issues, and provide better SATA support
    for some disk controllers:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&grub-geometry-patch;</userinput></screen>

    <para>By default, GRUB doesn't support ext2 filesystems with 256-byte inodes.
    Fix this by applying the following patch:</para>

<screen><userinput remap="pre">patch -Np1 -i ../&grub-inode-patch;</userinput></screen>

    <para>Prepare GRUB for compilation:</para>

<screen><userinput remap="configure">./configure --prefix=/usr</userinput></screen>

    <para>Compile the package:</para>

<screen><userinput remap="make">make</userinput></screen>

    <para>To test the results, issue:</para>

<screen><userinput remap="test">make check</userinput></screen>

    <para>Install the package:</para>

<screen><userinput remap="install">make install
mkdir -v /boot/grub
cp -v /usr/lib/grub/i386-pc/stage{1,2} /boot/grub</userinput></screen>

    <para>Replace <filename class="directory">i386-pc</filename> with whatever
    directory is appropriate for the hardware in use.</para>

    <para>The <filename class="directory">i386-pc</filename> directory
    contains a number of <filename>*stage1_5</filename> files, different
    ones for different file systems. Review the files available and copy
    the appropriate ones to the <filename
    class="directory">/boot/grub</filename> directory. Most users will
    copy the <filename>e2fs_stage1_5</filename> and/or
    <filename>reiserfs_stage1_5</filename> files.</para>

  </sect2>

  <sect2 id="contents-gRUB" role="content">
    <title>Contents of GRUB</title>

    <segmentedlist>
      <segtitle>Installed programs</segtitle>

      <seglistitem>
        <seg>grub, grub-install, grub-md5-crypt, grub-set-default,
        grub-terminfo, and mbchk</seg>
      </seglistitem>
    </segmentedlist>

    <variablelist>
      <bridgehead renderas="sect3">Short Descriptions</bridgehead>
      <?dbfo list-presentation="list"?>
      <?dbhtml list-presentation="table"?>

      <varlistentry id="grub">
        <term><command>grub</command></term>
        <listitem>
          <para>The Grand Unified Bootloader's command shell</para>
          <indexterm zone="ch-system-grub grub">
            <primary sortas="b-grub">grub</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="grub-install">
        <term><command>grub-install</command></term>
        <listitem>
          <para>Installs GRUB on the given device</para>
          <indexterm zone="ch-system-grub grub-install">
            <primary sortas="b-grub-install">grub-install</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="grub-md5-crypt">
        <term><command>grub-md5-crypt</command></term>
        <listitem>
          <para>Encrypts a password in MD5 format</para>
          <indexterm zone="ch-system-grub grub-md5-crypt">
            <primary sortas="b-grub-md5-crypt">grub-md5-crypt</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="grub-set-default">
        <term><command>grub-set-default</command></term>
        <listitem>
          <para>Sets the default boot entry for GRUB</para>
          <indexterm zone="ch-system-grub grub-set-default">
            <primary sortas="b-grub-set-default">grub-set-default</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="grub-terminfo">
        <term><command>grub-terminfo</command></term>
        <listitem>
          <para>Generates a terminfo command from a terminfo name; it can be
          employed if an unknown terminal is being used</para>
          <indexterm zone="ch-system-grub grub-terminfo">
            <primary sortas="b-grub-terminfo">grub-terminfo</primary>
          </indexterm>
        </listitem>
      </varlistentry>

      <varlistentry id="mbchk">
        <term><command>mbchk</command></term>
        <listitem>
          <para>Checks the format of a multi-boot kernel</para>
          <indexterm zone="ch-system-grub mbchk">
            <primary sortas="b-mbchk">mbchk</primary>
          </indexterm>
        </listitem>
      </varlistentry>

    </variablelist>

  </sect2>

</sect1>