<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="../../stylesheet.xsl"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
                         "/usr/share/sgml/docbook/xml-dtd-4.1/docbookx.dtd">
<article lang="fr">
<title>Installation et configuration de GRUB</title>
<articleinfo>
  <date>2000-02-09</date>
  <author>
    <firstname>Florian</firstname>
    <surname>Hatat</surname>
  </author>
  <revhistory>
    <revision>
      <revnumber>1.1</revnumber>
      <date>2000-02-09</date>
      <revremark>Première publication</revremark>
    </revision>
    <revision>
      <revnumber>1.2</revnumber>
      <date>2001-11-25</date>
      <revremark>Correction de plusieurs imprécisions, de fautes</revremark>
    </revision>
    <revision>
      <revnumber>1.3</revnumber>
      <date>2002-02-23</date>
      <revremark>Création de la version XML/Docbook 4.1.2</revremark>
    </revision>
  </revhistory>
  <abstract>
    <para>
Cette page vous fera découvrir ce formidable gestionnaire d'amorçage
qu'est GRUB. Elle décrit les aspects nécessaires à une installation et à
une utilisation simple. D'autres documents sont disponibles, comme le
manuel et le HOWTO de Thierry Laronde.
Rien ne sera donc vraiment expliqué en détail ici.
    </para>
    <para>
L'utilisation de ce document se fait à vos risques et périls. Même s'il
est souvent propable que tout ce passe correctement, un problème peut
toujours survenir. Agissez donc avec précaution, faites quelques sauvegardes.
    </para>
  </abstract>
</articleinfo>

<sect1>
  <title>Ce qu'il faut savoir pour utiliser GRUB</title>
  <sect2>
    <title>La notation des disques et des partitions</title>
    <para>
GRUB possède sa propre manière de noter les disques et les partitions.
Commençons par le nommage des disques.
    </para>
    <para>
Les disques durs sont représentés sous la forme
<token>(hd<replaceable>n</replaceable>)</token> où
<replaceable>n</replaceable>
représente le numéro du disque. C'est bien gentil tout
cela, mais comment sont attribués les numéros de
disques&#160;? La réponse&#160;: dans leur ordre de détection.
Le compteur de disques de GRUB commence à zéro. Le premier
disque dur aura donc le numéro 0, le deuxième 1, etc. GRUB
ne fait <emphasis>aucune</emphasis> distinction entre les disques IDE et SCSI
puisqu'il passe par le BIOS qui lui non plus ne les différencie pas.
Les disques IDE se situent généralement avant les disques SCSI,
mais ce n'est pas le cas si le SCSI précède l'IDE dans
la séquence de démarrage du BIOS.
    </para>
    <para>
Par exemple, si vous possédez deux disques durs IDE et un
disque dur SCSI, cela pourrait donner&#160;:
    </para>
    <table>
      <tgroup cols="2">
        <row>
          <entry><token>(hd0)</token></entry>
          <entry>Premier disque SCSI</entry></row>
        <row>
          <entry><token>(hd1)</token></entry>
          <entry>Premier disque IDE</entry></row>
        <row>
          <entry><token>(hd2)</token></entry>
          <entry>Second disque IDE</entry></row>
      </tgroup>
    </table>
    <para>
L'exemple précédent est le plus courant, mais cela pourrait
très bien être&#160;:
    </para>
    <table>
      <tgroup cols="2">
        <row>
          <entry><token>(hd0)</token></entry>
          <entry>Premier disque SCSI</entry></row>
        <row>
          <entry><token>(hd1)</token></entry>
          <entry>Premier disque IDE</entry></row>
        <row>
          <entry><token>(hd2)</token></entry>
          <entry>Second disque IDE</entry></row>
      </tgroup>
    </table>
    <para>
Le lecteur de disquette est désigné, lui, par <token>(fd0)</token>.
Voyons maintenant pour les partitions.
    </para>
   <para>
Les partitions sont nommées sous la forme
<token>(hd<replaceable>n</replaceable>,<replaceable>p</replaceable>)</token>
où <token>hd<replaceable>n</replaceable></token>
est le disque dur et <replaceable>p</replaceable> le numéro de partition,
simple&#160;! Les partitions principales sont numérotées de
0 à 3, les partitions étendues à partir de 4.
Par exemple, votre partition <token>hda2</token> sous Linux sera
désignée <token>(hd0,1)</token> sous GRUB. En effet, Linux
numérote les partitions à partir de 1 et GRUB à
partir de 0.
    </para>
  </sect2>
  <sect2>
    <title>Interfaces de GRUB</title>
    <para>
GRUB dispose de deux interfaces au démarrage. La
première est une ligne de commandes toute simple, semblable à
votre shell. Quelques uns de ses comportements sont hérités de
BASH. Elle s'affiche si GRUB ne trouve pas de fichier de configuration,
mais elle est aussi accessible à n'importe quel moment grâce
à la touche <keycap>c</keycap>. Voici à quoi elle ressemble&#160;:
    </para>
    <screen>
    GRUB  version 0.5.96.1  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub&gt;</screen>
    <para>
Cette ligne de commande vous permet d'exécuter n'importe
quelle action au démarrage, ce qui est bien utile dans certains cas.
    </para>
    <para>
GRUB dispose aussi d'un menu qui vous permet de choisir le
système à démarrer. Les entrées de ce menu
sont définies dans le fichier de configuration
<filename>/boot/grub/menu.lst</filename>. Ce fichier contient les mêmes
commandes que celles disponible dans la ligne de commandes, mais avec
deux différences principales&#160;: la commande <command>boot</command> est
sous-entendue dans le fichier de configuration, et chaque
entrée du fichier de configuration est introduite par la commande
<command>title</command>.
    </para>
  </sect2>
</sect1>

<sect1>
  <title>Téléchargement de GRUB</title>
  <para>
Si vous ne l'avez pas déjà fait, récupérez les dernières sources de GRUB
depuis le serveur CVS&#160;:
  </para>
  <screen>
# <userinput>cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub login</userinput>
# <userinput>cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub co grub</userinput>
</screen>
  <para>
Cette commande téléchargera les dernières sources de GRUB depuis le
serveur CVS et les placera dans un répertoire <filename>grub/</filename>.
  </para>
  <para>
Une fois que vous avez obtenu les sources, décompressez-les,
puis compilez et installez GRUB en suivant les instructions du fichier
<filename>INSTALL</filename>. Pour plus d'informations sur la compilation,
consultez le manuel de GRUB.
  </para>
</sect1>

<sect1>
  <title>Installation de GRUB sur disquette</title>
  <para>
Une fois GRUB compilé et installé correctement, copiez les fichiers
<filename>stage1</filename>, <filename>stage2</filename> et
<filename>*stage1.5</filename>, qui se trouvent normalement dans
<filename>/usr/share/grub/i386-pc/</filename>, vers le répertoire
<filename>/boot/grub/</filename>&#160;:
  </para>
  <screen>
# <userinput>mkdir /boot/grub</userinput>
# <userinput>cd /usr/share/grub/i386-pc</userinput>
# <userinput>cp stage1 stage2 *stage1.5 /boot/grub/</userinput>
</screen>
  <para>Vous devez être <token>root</token> pour exécuter ces actions.</para>
  <para>
Mettez une disquette vierge (toute donnée sera effacée) dans le lecteur.
Nous allons la formater, copier les images de GRUB et l'installer&#160;:
  </para>
  <screen>
# <userinput>mkfs.ext2 /dev/fd0</userinput>
(...)
# <userinput>mount -t ext2 /dev/fd0 /mnt/floppy</userinput>
# <userinput>mkdir /mnt/floppy/boot</userinput>
# <userinput>mkdir /mnt/floppy/boot/grub</userinput>
# <userinput>cp /boot/grub/* /mnt/floppy/boot/grub</userinput>
# <userinput>umount /mnt/floppy</userinput>
# <userinput>grub</userinput>
Probing devices to guess BIOS drives. This may take a long time.

    GRUB  version 0.5.96.1  (640K lower / 3072K upper memory)

 [ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub&gt; <userinput>root (fd0)</userinput>
 Filesystem type is ext2fs, using whole disk

grub&gt; <userinput>setup (fd0)</userinput>
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Running "install /boot/grub/stage1 d (fd0) /boot/grub/stage2 p /boot/grub/menu
.lst"... succeeded
Done.

grub&gt; <userinput>quit</userinput>
#
</screen>
  <para>
Voilà&#160;! GRUB est installé sur votre disquette&#160;! Vous
pouvez la retirer pour le moment, elle nous servira plus tard. Notez que
vous pouvez la conserver comme disquette de dépannage.
  </para>
</sect1>

<sect1>
  <title>Configuration de GRUB</title>
  <para>
GRUB possède un fichier de configuration lu à chaque
démarrage, ce qui signifie donc qu'à chaque modification, il
est inutile de réinstaller GRUB, contrairement à LILO.
  </para>
  <para>
C'est ce fichier de configuration qui définit les entrées
du menu de GRUB, en leur donnant un nom et en prédéfinissant
les commandes à exécuter. Ce fichier s'appelle
<filename>/boot/grub/menu.lst</filename>. Modifiez-le avec votre éditeur de
textes préféré (pas de mise en forme&#160;!). Comme
dans beaucoup de fichiers de configuration, les commentaires sont
préfixés du caractère <keycap>#</keycap>, et sont simplement
ignorés. Ajoutez le texte ci-dessous, en l'adaptant à votre
configuration&#160;:
  </para>
  <screen>
timeout <replaceable>10</replaceable>    # Indique qu'il faut démarrer sur l'entrée
              # par défaut au bout de 10 secondes

default <replaceable>0</replaceable>     # Numéro de l'entrée par défaut

# Voici l'entrée 0
title GNU/Linux                 # Titre qui apparaîtra au démarrage
root <replaceable>(hdx,x)</replaceable>                    # Adaptez selon votre partition racine
kernel <replaceable>/boot/vmlinuz-qqchose</replaceable> root=/dev/<replaceable>hdxx</replaceable> read-only
          # Adaptez selon le nom de l'image du noyau et selon votre partition
          # racine (attention, ici il faut utiliser la notation de Linux
          # puisque l'argument est destiné au noyau&#160;!).

# L'entrée 1
title Windows
root <replaceable>(hdx,x)</replaceable>                    # Adaptez la partition racine
makeactive
chainloader +1

# L'entrée 2 pour le GNU/Hurd
title GNU/Hurd
root <replaceable>(hdx,x)</replaceable>                    # Adaptez la partition racine
kernel /boot/gnumach root=<replaceable>hdxsx</replaceable>
module /boot/serverboot
</screen>
  <para>
Vous pouvez bien sûr ne pas entrer certaines sections si
vous ne possédez pas par exemple Windows ou le GNU/Hurd. La commande
<command>root</command> de GRUB indique le disque/la partition où
réside l'image du noyau à charger. Si l'image de Linux
était installée sur <token>hda3</token>, vous écririez
<userinput>root (hd0,2)</userinput>.
  </para>
  <para>
Adaptez aussi le nom de l'image de votre noyau Linux à la
commande <command>kernel</command>. Profitez de la touche
<keycap>TAB</keycap> qui permet de compléter le nom de fichier/partition
s'il est unique, ou d'afficher les différentes possibilités, s'il y en
a plusieurs.
  </para>
  <para>Sauvez ce chef-d'&#339;uvre et quittez votre éditeur.</para>
</sect1>

<sect1>
  <title>Enfin, l'installation sur disque dur</title>
  <para>
Avant de vous lancez, vous devez vérifier certaines choses.
Il faut d'abord savoir sur quelle partition se trouve le répertoire
<filename>/boot</filename>. Pour cela, la commande <command>mount</command>
peut vous aider&#160;:
  </para>
  <screen>
# <userinput>mount</userinput>
/dev/hda6 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hdb2 on /usr type ext2 (rw)
/dev/hda1 on /boot type ext2 (rw)
</screen>
  <para>
Chez moi, <filename>/boot</filename> est sur une partition
dédiée, comme l'indique la dernière ligne, la partition
est donc <filename>/dev/hda1</filename>, ce qui fait <token>(hd0,0)</token>
pour GRUB.  Dans l'exemple suivant, <filename>/boot</filename>
appartient à la partition racine&#160;:
  </para>
  <screen>
# <userinput>mount</userinput>
/dev/hda2 on / type ext2 (rw)
none on /proc type proc (rw)
/dev/hdb5 on /usr type ext2 (rw)
</screen>
  <para>
La partition à retenir est donc cette fois-ci <token>(hd0,1)</token>.
  </para>
  <para>
Redémarrez ensuite votre machine avec la disquette de
démarrage de GRUB. Si tout se passe bien, la ligne de commandes
apparaît. Vous pouver alors entrer (<replaceable>hd0,0</replaceable> est la
partition cherchée plus haut)&#160;:
  </para>
  <screen>
grub&gt; <userinput>root <replaceable>(hd0,0)</replaceable></userinput>
 Filesystem type is ext2fs, partition type 0x83

grub&gt; <userinput>setup <replaceable>(hd0)</replaceable></userinput>
 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Running "install /boot/grub/stage1 d (hd0) /boot/grub/stage2 p /boot/grub/menu
.lst"... succeeded
Done.

grub&gt;
</screen>
  <para>
Comme il est courant d'avoir une partition de démarrage
<filename>/boot</filename>, la commande <command>setup</command> prend en
charge ce cas de figure&#160;:
  </para>
  <screen>
grub&gt; <userinput>root <replaceable>(hd0,0)</replaceable></userinput>
 Filesystem type is ext2fs, partition type 0x83

grub&gt; <userinput>setup <replaceable>(hd0)</replaceable></userinput>
<emphasis> Checking if "/boot/grub/stage1" exists... no
 Checking if "/grub/stage1" exists... yes</emphasis>
 Checking if "/grub/stage2" exists... yes
 Running "install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst"...
succeeded
Done.

grub&gt;
</screen>
  <para>
Et voilà&#160;! GRUB est installé sur votre disque dur&#160;!
Redémarrez votre machine sans la disquette et le menu de GRUB devrait
s'afficher (souvenez-vous du fichier de configuration écrit un peu
plus tôt).
  </para>
  <para>Tout fonctionne&#160;? Félicitations&#160;!</para>
</sect1>

<sect1>
  <title>Le mot de la fin</title>
  <sect2>
    <title>FAQ</title>
    <para>
La FAQ (Questions fréquemment posées) fait partie du
Manuel de GRUB, dont la traduction est disponible sur ce site.
    </para>
  </sect2>
  <sect2>
    <title>En cas de problème</title>
    <para>
Avant toute chose, lisez le Manuel, qui est beaucoup plus
détaillé que cette page, la FAQ et les autres pages parlant de GNU GRUB
sur le Web. Je veux bien répondre à certaines questions sauf si elles
sont déjà traitées dans ces documents.
    </para>
    <para>
Si vous pensez avoir trouvé un bug, suivez les instructions
du chapitre "Signaler des bugs" du Manuel de GRUB.
    </para>
  </sect2>
</sect1>
</article>
