Page suivante Page précédente Table des matières GRUB-HOWTO: Compilation et installation des programmes  

7. Compilation et installation des programmes

Le GRUB est l'amorce d'un mini-OS. La taille du stage2 peut donc être conséquente si l'on inclut l'intégralité du support des cartes réseaux PCI et ISA par exemple. Suivant les cas, on peut souhaiter diminuer la taille du stage2, ou avoir accès à des fonctionnalités qu'il faut inclure à la compilation.

Pour une utilisation "basique", type boot de Linux, Windows et autres depuis des disques ou des disquettes, les paquets pré-compilés seront suffisants. Pour des besoins plus particuliers, mieux vaut compiler. Et puisqu'il s'agit de logiciel libre, que nous disposons des sources, pourquoi s'en passer ?

7.1 Récupérer le GRUB

Le plus simple est en général de récupérer la dernière version CVS sur gnu.org. Les explications sont fournies sur www.gnu.org, lorsque vous suivez les instructions de la page "Developer resources" pour récupérer par CVS un module.

Pour le grub, procédez ainsi (il faut que cvs soit installé sur votre système, évidemment) :


$ cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs login
passwd: <ENTREE>

$ cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs checkout grub

$ cvs -d :pserver:anoncvs@subversions.gnu.org:/cvs logout

7.2 Compilation

Le processus de compilation est standard pour un programme GNU. En guise d'illustration, et afin de permettre l'utilisation du boot par le réseau, nous allons sélectionner certaines options de compilation particulières. Pour les lister, une fois placé dans le répertoire du GRUB, tapez :


./configure --help | more

Par défaut, la possibilité de lecture des systèmes de fichiers ext2, reiserfs, minix, fat et ffs est incluse dans les options de compilation (on peut en désactiver certaines via des options --disable-foo). A titre d'exemple et pour ce qui va suivre, nous rajoutons par contre la possibilité de démarrer par le réseau en incluant le code pour toutes les cartes PCI supportées.

L'option diskless n'est pas nécessaire pour permettre le démarrage par le réseau d'une station équipée seulement d'un lecteur de disquette : elle permet de créer deux images du GRUB ( nbgrub et pxegrub) qui correspondent en fait au stage2, et qui permettent d'avoir accès à un choix des OS lorsque l'on démarre par le réseau. Ces "noyaux" sont appelés par le bootloader en ROM de la carte Ethernet, que ce soit le logiciel libre http://etherboot.sourceforge.net, ou une ROM PXE Preboot Execution Environment d' INTEL.

Voici notre ligne de commande :


$ ./configure --enable-ns8390 --enable-3c90x --enable-3c595 \
--enable-eepro100 --enable-epic100 --enable-lance --enable-otulip \
--enable-tulip --enable-via-rhine --enable-rtl8139

suivie du classique make puis make install, dont la fonction est de copier les scripts, binaires et documentation dans les répertoires /usr/local/{bin,sbin,man,info}, ainsi que les différents *stage* dans /usr/local/share/grub/i386-pc/.

make install n'installe pas le bootloader : il "sort" juste les fichiers du répertoire de compilation pour les mettre en place dans les répertoires habituels.

7.3 Mise en place des *stage* dans le répertoire "images"

Les différents programmes de gestion depuis Unix (grub grub-install grub-md5-crypt mbchk) doivent être en place, et les éléments du GRUB proprement dit (les stages) se trouvent, à moins que vous ayez configuré les répertoires d'installation différemment, dans le répertoire /usr/local/share/grub/i386-pc/.

Nous pourrions les laisser là. Mais afin d'éviter :

  1. de voir les images utilisées écrasées malencontreusement lors d'une nouvelle compilation, rendant peut-être le démarrage impossible ;
  2. d'avoir à spécifier plus d'options que nécessaire lors de l'installation,

nous allons les mettre en place dans un répertoire standard pour le grub. Donc :


# mkdir /boot/grub
# cp /usr/local/share/grub/i386-pc/*stage* /boot/grub


Page suivante Page précédente Table des matières