<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../../general.ent">
  %general-entities;
]>
<sect1 id="ch-system-grub" role="wrap">
  <?dbhtml filename="grub.html"?>

  <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>

  </sect2>

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

   <para os="p1">GRUB has an issue where it sometimes doesn't detect
   the disk geometry correctly when used with Linux 2.6, resulting
   in the error message <literal>Error 24: Attempt to access block outside
   partition</literal>. The following patch contains a fix for this issue
   as well as various fixes for raid controllers and support for the
   new Intel Mac:</para>

<screen os="p2"><userinput>patch -Np1 -i ../&grub-fixes-patch;</userinput></screen>

    <para os="a">This package is known to have issues when its default optimization
    flags (including the <option>-march</option> and <option>-mcpu</option>
    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 os="b">Prepare GRUB for compilation:</para>

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

    <para os="c">Compile the package:</para>

<screen os="d"><userinput>make</userinput></screen>

    <para os="e">To test the results, issue:
    <userinput>make check</userinput>.</para>

    <para os="f">Install the package:</para>

<screen os="g"><userinput>make install
mkdir -pv /boot/grub
cp -v /usr/lib/grub/*/stage{1,2} /boot/grub</userinput></screen>

    <para os="h">The directory in
    <filename class="directory">/usr/lib/grub</filename> (its name depends
    on your arch) 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>
