Node:Top, Noeud «Next», Noeud «Up»(dir)

Utiliser GRUB

Ceci est la documentation de GNU GRUB, the GRand Unified Bootloader, un chargeur flexible et puissant pour PCs.

Cette édition documente la version 0.92.


Node:Introduction, Noeud «Next», Noeud «Previous»:Top, Noeud «Up»Top

Introduction à GRUB

Ce manuel documente l'aspect de GRUB visible par l'utilisateur. Si vous cherchez des informations sur le fonctionnement interne, Top.


Node:Apercu, Noeud «Next», Noeud «Up»Introduction

Aperçu

Brièvement, le chargeur (boot loader en Anglais) est le premier logiciel qui s'exécute quand un ordinateur démarre. C'est lui qui charge et transfère le contrôle au logiciel noyau d'un système d'exploitation (comme Linux ou GNU Mach). Le noyau, à son tour, initialise le reste du système d'exploitation (ex. un système GNU).

GNU GRUB est un chargeur très puissant, qui peut démarrer une grande variété de systèmes d'exploitation libres, ainsi que des systèmes d'exploitation propriétaires avec la technique du chain-loading1. GRUB est conçu pour gérer la complexité du démarrage d'un PC; le programme et ce manuel sont limités à cette plate-forme d'ordinateur, bien que des portages vers d'autres plate-formes puissent être envisagés par la suite.

La flexibilité est une des caractéristiques importantes de GRUB; GRUB reconnaît les systèmes de fichiers et les formats des noyaux, vous pouvez donc charger un système d'exploitation arbitraire comme vous voulez, sans enregistrer la position physique du noyau sur le disque.

Ainsi, vous pouvez charger le noyau en spécifiant simplement le nom du fichier et le disque (ainsi que la partition) où le noyau est enregistré. Pour faire connaître à GRUB le disque et le nom du fichier, vous pouvez soit les entrer manuellement via l'interface en ligne de commande (voir Ligne de commande), soit utiliser l'agréable menu (voir Interface menu) qui vous permet de sélectionner facilement quel OS doit être démarré. Pour vous permettre de personnaliser le menu, GRUB lira un fichier de configuration (voir Configuration). Notez que vous pouvez non seulement utiliser l'interface en ligne de commande à n'importe quel moment, mais aussi éditer des entrées spécifiques du menu avant de les utiliser.

Dans les chapitres suivants, vous apprendrez comment spécifier un disque ou une partition, et un nom de fichier (voir Convention de nommage) à GRUB, comment installer GRUB sur votre disque (voir Installation), et comment démarrer vos OS (systèmes d'exploitation) étape par étape (voir Demarrage).


Node:Historique, Noeud «Next», Noeud «Previous»:Apercu, Noeud «Up»Introduction

Historique de GRUB

GRUB est né en 1995 quand Erich Boleyn essayait de démarrer le GNU/Hurd avec le microkernel Mach 4 de l'Université de l'Utah (maintenant connu sous le nom de GNU Mach). Erich et Brian Ford ont conçu la Spécification Multiboot (voir Top), car ils étaient déterminés à ne pas augmenter le grand nombre de méthodes de démarrage d'un PC, toutes incompatibles entre elles.

Erich a alors commencé la modification du chargeur de FreeBSD pour lui faire comprendre le format Multiboot. Il a rapidement réalisé qu'il lui serait beaucoup plus facile d'écrire son propre chargeur à partir de zéro plutôt que de continuer à travailler sur le chargeur de FreeBSD. GRUB était né.

Erich a ajouté de nombreuses fonctions à GRUB, mais d'autres priorités l'ont empêché de suivre les demandes du nombre croissant d'utilisateurs. En 1999, Gordon Matzigkeit et Yoshinori K. Okuji ont adopté GRUB comme un projet GNU officiel, et ont ouvert son développement en rendant les dernières sources disponibles via un accès CVS anonyme. Voir Obtenir et compiler GRUB, pour plus d'informations.


Node:Caracteristiques, Noeud «Next», Noeud «Previous»:Historique, Noeud «Up»Introduction

Caractéristiques de GRUB

La première exigence pour GRUB est d'être compatible avec la Spécification Multiboot, (voir Top).

Les autres objectifs, listés approximativement par ordre d'importance, sont:

À l'exception de modes de compatibilité spécifiques (chain-loading et le format piggyback de Linux), tous les noyaux seront démarrés pratiquement dans le même état que dans la Spécification Multiboot. Seuls les noyaux chargés en mémoire à 1MO ou au-delà sont actuellement supportés. Toute tentative de chargement en-dessous de cette limite échouera et un message d'erreur signalera le problème.

En plus des conditions précédentes, GRUB dispose des fonctionnalités suivantes (notez que ces fonctions ne sont pas toutes exigées par la Spécification Multiboot):

Reconnaissance de plusieurs formats d'exécutables:
Support de nombreuses variantes du format a.out et du format ELF. Les tables de symboles sont également chargées.
Support des noyaux non Multiboot
Support d'un grand nombre de noyaux 32-bits libres auxquels il manque la compatibilité Multiboot (FreeBSD, NetBSD, OpenBSD et Linux). Le chaînage d'autres chargeurs est aussi supporté.
Chargement de plusieurs modules
Support complet de la fonction Multiboot qui permet de charger plusieurs modules.
Lecture d'un fichier de configuration
Support d'un fichier de configuration lisible par l'homme qui prédéfinit les commandes de démarrage. Vous pouvez aussi ouvrir un autre fichier de configuration dynamiquement ou intégrer un fichier de configuration dans un fichier image de GRUB. La liste des commandes (voir Commandes) est une extension de celles supportées en ligne de commande. Un exemple de fichier de configuration est donné au Configuration.
Fournir une interface menu
Un menu listant les commandes de démarrage prédéfinies avec un délai d'attente ajustable, est disponible. Il n'y a pas de limite fixe quant au nombre d'entrées, et actuellement, il peut y en avoir jusqu'à plusieurs centaines.
Posséder une interface en ligne de commande flexible
Une ligne de commande vraiment flexible, accessible depuis le menu, permet d'éditer n'importe quelle commande prédéfinie ou bien d'ajouter de nouvelles entrées. Si aucun fichier de configuration n'est présent, GRUB affiche cette interface. La liste des commandes (voir Commandes) est un sous-ensemble de celles supportées dans les fichiers de configuration. Le comportement de la ligne de commandes est très proche de celui de Bash (voir Command Line Editing), avec la touche <TAB> qui permet de compléter les commandes, les noms de périphériques, de partitions, et de fichiers.
Support de plusieurs systèmes de fichiers
GRUB supporte plusieurs systèmes de fichiers de façon transparente, et une notation utile de listes de blocs. Les systèmes de fichiers actuellement supportés sont BSD FFS, DOS FAT16 et FAT32, Minix fs, Linux ext2fs, ReiserFS, JFS, XFS et VSTa fs. Voir Systeme de fichiers, pour plus d'informations.
Support de la décompression automatique
GRUB peut décompresser des fichiers compressés avec la commande gzip. Cette fonction est automatique et transparente pour l'utilisateur (toutes les fonctions utilisent le contenu décompressé des fichiers). La compression réduit nettement la taille d'un fichier ainsi que le temps de chargement, ce qui est particulièrement utile pour les disquettes2. Il est concevable que les modules d'un noyau puissent être chargés en étant compressés, c'est pourquoi une commande spéciale pour charger les modules peut-être utilisée afin d'éviter leur décompression.
Accès aux données sur n'importe quel disque installé
GRUB peut lire des données depuis n'importe quel lecteur de disquettes ou disque dur reconnu par le BIOS, sans tenir compte de la partition racine qui a été spécifiée.
Être indépendant des traductions de géométrie du disque
Contrairement à beaucoup d'autres chargeurs, le problème de traduction pour disque particulier ne se pose pas avec GRUB. Un disque installé et utilisé avec un mode de traduction peut être converti dans un autre mode sans effet sur la configuration de GRUB.
Détection de toute la RAM installée
GRUB peut généralement détecter tout la RAM installée sur une machine compatible PC. Il utilise une technique de recherche avancée du BIOS pour trouver toutes les parties de la mémoire. Comme décrit dans la Spécification Multiboot (voir Top), GRUB fournit cette information aux noyaux qui l'utilisent.
Support du mode Logical Block Address
Dans les accès traditionnels aux disques (appelé mode CHS), à cause d'un problème de traduction de géométrie, le BIOS ne peut pas lire au-delà des 1024 premiers cylindres, la taille accessible est donc limitée à 508 MO au minimum et 8 GO au maximum. GRUB ne peut pas résoudre ce problème dans tous les cas puisqu'il n'existe pas d'interface standard utilisée sur toutes les machines. Cependant, bon nombre d'entre elles possèdent une nouvelle interface, le mode Logical Block Address (LBA). GRUB détecte et utilise automatiquement ce mode s'il est disponible. Avec le mode LBA, GRUB peut accéder au disque en entier.
Support du démarrage depuis un réseau
GRUB est, à l'origine, un chargeur basé sur disque mais il possède un support réseau. Vous pouvez charger des images d'OS sur un réseau en utilisant le protocole TFTP.
Support de terminaux distants
Pour les ordinateurs sans console, GRUB fournit un support de terminaux distants, ce qui permet de le contrôler depuis un hôte distant. Seuls les terminaux série sont supportés pour le moment.

Node:Role du chargeur, Noeud «Previous»:Caracteristiques, Noeud «Up»Introduction

Rôle du chargeur

Le texte qui suit est une citation de Gordon Matzigkeit, un fanatique de GRUB:

Certaines personnes aiment féliciter le système d'exploitation et le noyau quand ils parlent de leurs ordinateurs, ainsi il peuvent dire qu'ils utilisent "GNU/Linux" ou "GNU/Hurd". D'autres personnes semblent penser que le noyau est la partie la plus importante du système, ainsi ils aiment appeler "système Linux"leur système d'exploitation GNU.

Personnellement, je pense qu'il s'agit d'une grave injustice, car le chargeur est le logiciel le plus important de tous. J'avais l'habitude de nommer ces systèmes soit "LILO"3 soit "GRUB".

Malheureusement, jamais personne n'a compris ce dont je parlais; maintenant, je n'utilise que le mot "GNU" comme un pseudonyme pour GRUB.

Donc, si vous entendez des personnes parler de leurs systèmes "GNU" présumés, souvenez-vous qu'ils rendent en fait hommage au meilleur chargeur...GRUB!

Nous, les mainteneurs de GRUB, n'encourageons pas (habituellement) le degré de fanatisme de Gordon, mais cela aide à se souvenir que les chargeurs méritent d'être reconnus. Nous espérons que vous apprécierez l'utilisation de GNU GRUB autant que nous avons aimé l'écrire.


Node:Convention de nommage, Noeud «Next», Noeud «Previous»:Introduction, Noeud «Up»Top

Convention de nommage

La syntaxe des périphériques utilisée dans GRUB est un tout petit peu différente de ce que vous avez pu voir avant avec vos systèmes d'exploitation, et vous devez savoir que c'est de cette manière que vous pourrez désigner un disque ou une partition.

Examinez les exemples et explications suivants:

(fd0)

Tout d'abord, GRUB exige que les noms de périphériques se trouvent entre ( et ). La partie fd signifie qu'il s'agit d'une disquette. Le nombre 0 représente le numéro du lecteur, qui est compté à partir de zéro. Cette expression veut dire que GRUB utilisera la disquette entière.

(hd0,1)

Ici, hd signifie qu'il s'agit d'un disque dur. Le premier nombre 0 indique le numéro du disque, qui est ici le premier disque, alors que le second entier 1 indique le numéro de la partition (ou le numéro de slice dans la terminologie BSD). Encore une fois, notez que les numéros de partitions sont déterminés à partir de zéro, et non depuis un. Cette expression désigne la deuxième partition du premier disque dur. Dans ce cas, GRUB n'utilise qu'une partition du disque à la place du disque entier.

(hd0,4)

Ceci désigne la première partition étendue du premier disque dur. Notez que les numéros des partitions étendues sont comptés à partir de 4, sans tenir compte du nombre réel de partitions primaires sur votre disque dur.

(hd1,a)

Cet exemple désigne la partition BSD a du second disque dur. Si vous avez besoin de spécifier le numéro de slice PC, utilisez quelque chose comme ceci: (hd1,0,a). Si le numéro de slice PC est omis, GRUB recherche le premier slice PC qui a la partition BSD a.

Évidemment, pour accéder aux disques ou aux partitions avec GRUB, vous devez utiliser ces notations dans une commande, comme root (fd0) ou unhide (hd0,2). Pour vous aider à trouver quelle partition vous voulez, la ligne de commande de GRUB (voir Ligne de commande) peut être complétée automatiquement. Cela signifie que, par exemple, vous n'avez qu'à entrer root (, suivi de la touche <TAB>, pour que GRUB vous affiche la liste des disques, des partitions et des noms de fichiers, ainsi il devrait être assez facile de déterminer le nom de la partition voulue, même avec seulement une connaissance minimale de la syntaxe.

Remarquez que GRUB ne distingue pas l'IDE du SCSI, il compte simplement les disques depuis zéro, sans faire attention à leur type. Normalement, les numéros des disques IDE sont inférieurs à ceux des disques SCSI, bien que cela ne soit pas exact si vous changez la séquence de démarrage du BIOS en inversant IDE et SCSI.

Maintenant, vous devez vous demander comment désigner un fichier. De nouveau, regardez cet exemple:

(hd0,0)/vmlinuz

Cette ligne désigne le fichier nommé vmlinuz qui se trouve sur la première partition du premier disque dur. Remarquez que les noms de fichiers peuvent également être complétés automatiquement.

Tout ceci était facile, admettez-le. Lisez le chapitre suivant pour savoir comment installer GRUB sur votre disque.


Node:Installation, Noeud «Next», Noeud «Previous»:Convention de nommage, Noeud «Up»Top

Installation

D'abord, vous devez avoir installé GRUB correctement sur votre système (voir Obtenir et compiler GRUB), depuis les sources, ou depuis un package pour votre système.

Pour utiliser GRUB, vous devez l'installer sur votre disque. Il y a deux manières pour cela - soit utiliser l'utilitaire grub-install, sur un OS de type Unix, soit utiliser le fichier Stage 2. Ils sont tous deux assez similaires, mais l'utilitaire peut trouver un disque incorrect, donc mieux vaut être prudent.

Ainsi, si vous installez GRUB sur un OS de type Unix, assurez-vous d'avoir une disquette de démarrage d'urgence, pour pouvoir toujours démarrer votre ordinateur si, pour une raison quelconque, votre disque dur devenait inutilisable (indémarrable).

GRUB est accompagné d'images de démarrage, qui sont normalement installées dans le répertoire /usr/share/grub/i386-pc. Vous devez copier les fichiers stage1, stage2, et *stage1_5 dans le répertoire /boot/grub. Par la suite, nous appellerons répertoire des images le répertoire où les images de GRUB sont installées, et répertoire de démarrage le répertoire où pourra GRUB les trouver.


Node:Creer une disquette de demarrage, Noeud «Next», Noeud «Up»Installation

Créer une disquette de démarrage

Pour créer une disquette de démarrage de GRUB, vous devez prendre les fichiers stage1 et stage2 pour les copier sur respectivement les premier et deuxième blocs de la disquette.

Attention: Cette procédure détruira toutes les données enregistrées sur la disquette.

Sur un système de type Unix, ceci est realisé avec les commandes suivantes:

# cd /usr/share/grub/i386-pc
# dd if=stage1 of=/dev/fd0 bs=512 count=1
1+0 records in
1+0 records out
# dd if=stage2 of=/dev/fd0 bs=512 seek=1
153+1 records in
153+1 records out
#

Les noms des fichiers de périphériques peuvent être différents, consultez le manuel de votre OS.


Node:Installer GRUB nativement, Noeud «Next», Noeud «Previous»:Creer une disquette de demarrage, Noeud «Up»Installation

Installer GRUB nativement

Attention: L'installation de stage1 de cette manière écrasera le secteur de démarrage normal de votre OS.

GRUB peut actuellement démarrer GNU Mach, Linux, FreeBSD, NetBSD et OpenBSD directement, donc l'utiliser sur un secteur de démarrage ne devrait pas poser de problème. Mais il est généralement préférable de faire une sauvegarde du secteur de démarrage de la partition où vous voulez installer le stage1 de GRUB. Ce n'est pas aussi important si vous l'installez sur le premier secteur d'un disque dur puisqu'il est facile de le réinitialiser (par exemple avec la commande FDISK /MBR depuis DOS).

Si vous décidez d'installer GRUB sur votre ordinateur, ce qui est préférable, vous aurez besoin d'une disquette de démarrage de GRUB et de redémarrer votre ordinateur avec. Sinon, voir Installer GRUB avec grub-install, pour plus de détails.

À son démarrage, GRUB affichera la ligne de commande (voir Ligne de commande). Définissez d'abord le disque racine4 vers le répertoire de démarrage:

grub> root (hd0,0)

Si vous n'êtes pas sûr de la partition qui contient les images, utilisez la commande find (voir find), comme ceci:

grub> find /boot/grub/stage1

Cette commande recherchera le fichier /boot/grub/stage1 et affichera les disques qui contiennent ce fichier.

Dès que vous avez défini correctement la partition racine, entrez la commande setup (voir setup):

grub> setup (hd0)

Cette commande installera GRUB sur le MBR du premier disque. Si vous voulez installer GRUB sur le secteur de démarrage d'une partition au lieu du MBR, précisez la partition sur laquelle vous voulez installer GRUB:

grub> setup (hd0,0)

Si vous installez GRUB sur une partition ou un disque autre que le premier, vous devez lancer GRUB depuis un autre chargeur. Consultez le manuel de votre chargeur pour savoir comment charger GRUB.

Maintenant vous pouvez démarrer GRUB sans disquette. Voir Demarrage pour savoir comment démarrer vos systèmes d'exploitation depuis GRUB.


Node:Installer GRUB avec grub-install, Noeud «Previous»:Installer GRUB nativement, Noeud «Up»Installation

Installer GRUB avec grub-install

Attention: Cette procédure est définitivement déconseillée parce qu'il y a de nombreuses possibilités pour que votre ordinateur devienne indémarrable. Par exemple, la plupart des systèmes d'exploitation ne donnent pas la correspondance entre les disques du BIOS et les disques de l'OS, GRUB essaie de deviner cette correspondance. La procédure réussit dans la plupart des cas, mais pas toujours. GRUB est donc accompagné d'un fichier de correspondances appelé carte des périphériques, que vous devez corriger s'il est faux. Voir Table de correspondances, pour plus de détails.

Malheureusement, vous devez appeler le programme grub-install (voir Invoquer grub-install) sous le compte du super-utilisateur (root) si vous voulez installer GRUB sous un OS de type Unix.

Il est très facile à utiliser. Vous devez seulement passer un argument au programme qui lui indique où installer GRUB. Cet argument peut être soit un fichier de périphérique, soit un disque ou une partition. Ainsi, cette commande installera GRUB sur le MBR du premier disque IDE sous Linux:

# grub-install /dev/hda

Sous le GNU/Hurd, ceci a le même effet:

# grub-install /dev/hd0

S'il s'agit du premier disque du BIOS, cette commande est également équivalente aux deux précédentes:

# grub-install '(hd0)'

Mais tous les exemples ci-dessus considèrent que les images de GRUB se trouvent dans le répertoire racine. Si vous voulez que GRUB utilise les images dans un autre répertoire, vous devez ajouter l'option --root-directory. Cette commande est typiquement utilisée pour créer une disquette de démarrage avec un système de fichiers. Voici un exemple:

# mke2fs /dev/fd0
# mount -t ext2 /dev/fd0 /mnt
# grub-install --root-directory=/mnt '(fd0)'
# umount /mnt

Un autre exemple est le cas où vous avez une partition de démarrage montée dans /boot. Puisque GRUB est un chargeur, il n'a pas du tout connaissance des points de montage. Vous devez donc appeler grub-install comme ceci:

# grub-install --root-directory=/boot /dev/hda

Comme expliqué précédemment, il est assez difficile de deviner les disques du BIOS correctement sous un OS de type Unix. C'est pourquoi grub-install vous demandera de vérifier s'il a pu correctement deviner les correspondances, après l'installation. Le format utilisé est défini dans Table de correspondances. Soyez assez attentifs. Si la sortie est fausse, il est peu probable que votre ordinateur puisse démarrer sans problème.

Notez que grub-install est en fait un simple script pour le shell et le travail est effectué par l'interpréteur GRUB, grub (voir Invoquer le shell grub). Vous pouvez lancer grub directement pour installer GRUB, sans passer par grub-install. Cependant, ne le faites pas si vous ne connaissez pas bien le fonctionnement interne de GRUB. Installer un chargeur sur un OS en marche peut être très dangereux.


Node:Demarrage, Noeud «Next», Noeud «Previous»:Installation, Noeud «Up»Top

Démarrage

GRUB peut charger les noyaux compatibles Multiboot de la même façon mais pour certains systèmes d'exploitation libres, vous devez utiliser des combinaisons spécifiques.


Node:Methodes generales, Noeud «Next», Noeud «Up»Demarrage

Comment démarrer des systèmes

GRUB dispose de deux méthodes de démarrage distinctes. La première consiste à charger un système d'exploitation directement, l'autre à lancer un autre amorceur qui chargera alors le système d'exploitation. En général, la première méthode est préférable puisque vous n'avez pas besoin d'installer ou de maintenir plusieurs gestionnaires et GRUB est assez flexible pour charger un système depuis un disque ou une partition arbitraire. Cependant, la seconde est parfois nécessaire, puisque GRUB ne supporte pas nativement tous les systèmes d'exploitation existants.


Node:Charger un systeme directement, Noeud «Next», Noeud «Up»Methodes generales

Comment démarrer un OS directement avec GRUB

GRUB supporte nativement le format Multiboot (voir Top). Pour rendre les choses plus pratiques, il prend également en charge Linux, FreeBSD, NetBSD et OpenBSD. Si vous voulez démarrer d'autres systèmes d'exploitation, il faudra passer par le chaînage d'amorceur (voir Chainage).

Généralement, GRUB peut amorcer n'importe quel OS compatible Multiboot en suivant les étapes suivantes:

  1. Positionnez la partition racine de GRUB sur le disque où se trouvent les images de l'OS au moyen de la commande root (voir root).
  2. Chargez l'image du noyau avec la commande kernel (voir kernel).
  3. Si vous avez besoin de modules, chargez-les avec la commande module (voir module) ou modulenounzip (voir modulenounzip).
  4. Entrez la commande boot (voir boot).

Linux, FreeBSD, NetBSD et OpenBSD peuvent être démarrés d'une manière similaire. Vous pouvez charger une image d'un noyau avec la commande kernel et ensuite entrer la commande boot. Si le noyau réclame des paramètres, ajoutez-les simplement à la commande kernel, après le nom de fichier du noyau. Voir Notes specifiques a certains OS pour obtenir des informations sur les particularités de votre OS.


Node:Chainage, Noeud «Previous»:Charger un systeme directement, Noeud «Up»Methodes generales

Amorcer un autre chargeur pour démarrer un système non supporté

Si vous voulez démarrer un système d'exploitation non supporté (comme Windows 95), chargez un autre gestionnaire d'amorçage. Normalement, le gestionnaire se trouve dans le secteur de démarrage de la partition sur laquelle est installé le système d'exploitation.

  1. Définissez la partition racine de GRUB avec la commande rootnoverify (voir rootnoverify):
    grub> rootnoverify (hd0,0)
    
  2. Positionnez le drapeau active de la partition avec makeactive5 (voir makeactive):
    grub> makeactive
    
  3. Chargez le gestionnaire d'amorçage avec la commande chainloader (voir chainloader):
    grub> chainloader +1
    

    +1 indique que GRUB doit lire un secteur à partir du début de la partition. Pour une description complète de cette syntaxe, voir Syntaxe des listes de blocs.

  4. Lancez la commande boot (voir boot).

Cependant, DOS et Windows ont des problèmes, ce qui peut vous obliger à utiliser des instructions plus compliquées. Voir DOS/Windows, pour plus d'information.


Node:Notes specifiques a certains OS, Noeud «Previous»:Methodes generales, Noeud «Up»Demarrage

Avertissements spécifiques à certains OS

Dans cette section, nous allons décrire certains problèmes des systèmes d'exploitation.


Node:GNU/Hurd, Noeud «Next», Noeud «Up»Notes specifiques a certains OS

GNU/Hurd

Puisque le GNU/Hurd est compatible Multiboot, il est facile de le démarrer; il n'y a rien de spécial en ce qui le concerne. Mais n'oubliez pas que vous devez préciser la partition racine au noyau.

  1. Positionnez la partition racine de GRUB sur la partition du GNU/Hurd. Une commande du type find /boot/gnumach peut vous aider (voir find).
  2. Chargez le noyau et le module, comme ceci:
    grub> kernel /boot/gnumach root=hd0s1
    grub> module /boot/serverboot
    
  3. Entrez la commande boot (voir boot).

Node:GNU/Linux, Noeud «Next», Noeud «Previous»:GNU/Hurd, Noeud «Up»Notes specifiques a certains OS

GNU/Linux

Il est relativement facile d'amorcer GNU/Linux depuis GRUB, parce que le processus ressemble à celui d'un OS compatible Multiboot.

  1. Positionnez la partition racine de GRUB sur celle de GNU/Linux. La commande comme find /vmlinuz peut vous aider (voir find).
  2. Chargez le noyau:
    grub> kernel /vmlinuz root=/dev/hda1
    

    Si vous avez besoin de passer des arguments au noyau, ajoutez-les simplement à la commande. Par exemple, pour positionner l'option vga sur ext, faites-ceci:

    grub> kernel /vmlinuz root=/dev/hda1 vga=ext
    

    Consultez la documentation dans les sources de Linux pour obtenir une information complète sur les options disponibles.

  3. Si vous utilisez un initrd, exécutez la commande initrd (voir initrd) après kernel:
    grub> initrd /initrd
    
  4. Enfin, lancez la commande boot (voir boot).

Attention: Si vous utilisez un initrd et que vous passez l'option mem= au noyau pour lui faire utiliser une taille de mémoire inférieure à la taille réelle, vous devrez également spécifier la même taille à GRUB. Pour cela, utilisez la commande uppermem avant de charger le noyau. Voir uppermem, pour plus d'information.


Node:FreeBSD, Noeud «Next», Noeud «Previous»:GNU/Linux, Noeud «Up»Notes specifiques a certains OS

FreeBSD

GRUB peut charger le noyau directement, au format ELF ou a.out. Mais ceci n'est pas recommandé, puisque l'interface de démarrage de FreeBSD change parfois considérablement, donc GRUB ne peut pas vous garantir qu'il passe correctement les paramètres au noyau.

Ainsi, nous vous recommandons d'amorcer à la place le chargeur très flexible /boot/loader. Regardez cet exemple:

grub> root (hd0,a)
grub> kernel /boot/loader
grub> boot

Node:NetBSD, Noeud «Next», Noeud «Previous»:FreeBSD, Noeud «Up»Notes specifiques a certains OS

NetBSD

GRUB peut charger NetBSD au format a.out et ELF directement, suivez ces étapes.

  1. Définissez la partition racine de GRUB avec root (voir root).
  2. Chargez le noyau avec kernel (voir kernel). Vous devez ajouter l'horrible option --type=netbsd si vous voulez charger un noyau ELF, comme ceci:
    grub> kernel --type=netbsd /netbsd-elf
    
  3. Lancez boot (voir boot).

Pour le moment, GRUB ne vous permet pas de passer des paramètres au noyau, donc il peut être préférable d'utiliser le chaînage d'amorceur, pour plus d'informations, voir Chainage.


Node:OpenBSD, Noeud «Next», Noeud «Previous»:NetBSD, Noeud «Up»Notes specifiques a certains OS

OpenBSD

Le processus de démarrage est exactement le même que pour NetBSD (voir NetBSD).


Node:DOS/Windows, Noeud «Next», Noeud «Previous»:OpenBSD, Noeud «Up»Notes specifiques a certains OS

DOS/Windows

GRUB ne peut pas démarrer DOS ou Windows directement, vous devez donc passer par le chain-loading (voir Chainage). Cependant, leurs chargeurs comportent de graves problèmes qui font que leur chaînage peut ne pas suffire. Pour dépasser ces problèmes, GRUB vous fournit deux fonctions utiles.

Si vous avez installé DOS (ou Windows) sur un disque qui n'est pas le premier, vous devez utiliser la technique d'échange de disques, parce que cet OS ne être démarré que sur le premier disque. Le problème est contourné avec la commande map (voir map), comme ceci:

grub> map (hd0) (hd1)
grub> map (hd1) (hd0)

Ceci échange virtuellement les premier et second disques durs.

Attention: Cela ne fonctionne que si DOS (ou Windows) utilise le BIOS pour accéder aux disques échangés. Si cet OS utilise un pilote spécial pour les disques, il est probable que cela ne marche pas.

Un autre problème se pose si vous avez installé plus d'une copie de DOS/Windows sur un disque, parce qu'ils peuvent être dérangés par l'existence de plusieurs partitions primaires pour DOS/Windows. Vous devriez certainement éviter ce genre de configuration, mais il existe une solution si vous décidez d'agir ainsi. Utilisez la technique de masquage/démasquage des partitions.

Si GRUB masque une partition DOS/Windows (voir hide), DOS/Windows ignore la partition. Si GRUB démasque une partition DOS/Windows, (voir unhide), il détecte la partition. Ainsi, si vous avez installé DOS (ou Windows) sur la première et la deuxième partition du premier disque dur, et que vous voulez démarrer la copie sur la première partition, faites comme ceci:

grub> unhide (hd0,0)
grub> hide (hd0,1)
grub> rootnoverify (hd0,0)
grub> chainloader +1
grub> makeactive
grub> boot

Node:SCO UnixWare, Noeud «Previous»:DOS/Windows, Noeud «Up»Notes specifiques a certains OS

SCO UnixWare

Il est connu que la signature du chargeur de SCO UnixWare est mauvaise, donc vous devrez passer l'option --force à la commande chainloader (voir chainloader), comme ceci:

grub> rootnoverify (hd1,0)
grub> chainloader --force +1
grub> makeactive
grub> boot

Node:Configuration, Noeud «Next», Noeud «Previous»:Demarrage, Noeud «Up»Top

Configuration

Vous avez probablement noté que vous devez taper plusieurs commandes pour amorcer votre OS. Il y a une solution à cela - GRUB fournit une interface avec menu (voir Interface menu) à partir de laquelle vous pouvez choisir un élément (en utilisant les touches de déplacement du curseur) qui fera tout le nécessaire pour amorcer un OS.

Pour disposer du menu, vous avez besoin d'un fichier de configuration, menu.lst sous le répertoire de boot. Nous analyserons un fichier d'exemple.

Le fichier contient d'abord quelques configurations générales, les options relatives à l'interface du menu. Vous pouvez mettre ces commandes (voir Commandes specifiques au menu) avant n'importe lequel de ces éléments (commençant par title (voir title).

#
# Fichier exemple de configuration de démarrage
#

Comme vous avez pu le deviner, ces lignes sont des commentaires. Des lignes commençant par un caractère dièse (#), et les lignes vides sont ignorées par GRUB.

# Par défaut, démarrer la première entrée
default 0

La première entrée (ici, on compte en partant de zéro, non un!) sera le choix de défaut.

# Démarrage automatique après 30 secs.
timeout 30

Comme le commentaire l'indique, GRUB amorcera automatiquement au bout de 30 secondes, à moins qu'on l'interrompe en pressant une touche.

# Retomber sur la deuxième entrée
fallback 1

Si, pour quelque raison, l'entrée par défaut ne fonctionne pas, retomber sur la deuxième entrée (ceci est rarement utilisé, pour des raisons évidentes).

Notez que les descriptions complètes de ces commandes, qui sont spécifiques à l'interface menu, sont dans Commandes specifiques au menu. D'autres descriptions sont disponibles dans Commandes.

Maintenant, passons aux définitions concrètes des OS. Vous verrez que chaque entrée commence par une commande spéciale, title (voir title), l'action étant décrite après elle. Notez qu'il n'y a aucune commande boot (voir boot) à la fin de chaque entrée. C'est parce que GRUB exécute automatiquement le boot s'il charge les autres commandes avec succès.

(NdT: j'avais noté dans la doc antérieure: il fait un boot si les commandes précédentes fournissent suffisamment d'info pour un boot)

L'argument pour la commande title est employé pour afficher un court titre ou description de l'entrée dans le menu. Puisque le title affiche l'argument tel que, vous pouvez écrire ce que vous voulez à cet endroit.

# Pour démarrer GNU/Hurd
title  GNU/Hurd
root   (hd0,0)
kernel /boot/gnumach.gz root=hd0s1
module /boot/serverboot.gz

Ceci démarre GNU/Hurd depuis le premier disque dur.

# Pour démarrer GNU/Linux
title  GNU/Linux
kernel (hd1,0)/vmlinuz root=/dev/hdb1

Ceci démarre GNU/Linux, mais depuis le deuxième disque dur.

# Pour démarrer Mach (en prenant le noyau sur une disquette)
title  Utah Mach4 multiboot
root   (hd0,2)
pause  Insérer la disquette maintenant^G!!
kernel (fd0)/boot/kernel root=hd0s3
module (fd0)/boot/bootstrap

Ceci démarre Mach avec un noyau sur une disquette, mais avec le système de fichier racine sur hd0s3. L'entrée comporte également une ligne pause, qui laisse GRUB afficher une invite et attendre, avant d'exécuter vraiment le reste des commandes et d'amorcer.

# Pour démarrer FreeBSD
title  FreeBSD
root   (hd0,2,a)
kernel /boot/loader

Cette entrée démarre le noyau FreeBSD chargé depuis la partition a de la troisième tranche PC du premier disque dur.

# Pour démarrer OS/2
title OS/2
root  (hd0,1)
makeactive
# chargement chainé du chargeur OS/2 depuis le premier secteur
chainloader +1
# Similaire à "chainload", mais en chargeant un fichier spécifique
#chainloader /boot/chain.os2

Ceci démarre OS/2, par un chargeur chaîné (voir Chainage).

# Pour démarrer Windows NT ou Windows95
title Menu de démarrage Windows NT / Windows 95
root        (hd0,0)
makeactive
chainloader +1
# Pour démarrer DOS si Windows NT est installé
# chainload /bootsect.dos

Même principe qu'auparavant, mais pour Windows.

# Pour installer GRUB sur le disque dur
title Installer GRUB sur le disque dur
root    (hd0,0)
setup   (hd0)

Ceci (ré)installera juste GRUB sur le disque dur.

# Changer les couleurs.
title Changer les couleurs
color light-green/brown blink-red/blue

Dans la dernière entrée, la commande color est utilisée (voir color), pour changer les couleurs du menu (essayez-la!). Cette commande est quelque peu spéciale, parce qu'elle peut être utilisée en ligne de commande et dans le menuline. GRUB a plusieurs commandes de ce type, voir Commandes generales.

Nous espérons que vous comprenez maintenant comment utiliser les fonctions de base de GRUB. Pour en apprendre plus au sujet de GRUB, voyez les chapitres suivants.


Node:Reseau, Noeud «Next», Noeud «Previous»:Configuration, Noeud «Up»Top

Télécharger des images d'OS depuis un réseau

Bien que GRUB soit un chargeur basé sur disque, il dispose d'un support pour un réseau. Pour utiliser un réseau, vous devez inclure au moins un pilote réseau au moment de la compilation de GRUB. Pour plus d'informations, consultez le fichier netboot/README.netboot qui se trouve avec les fichiers sources.


Node:Utilisation generale du support reseau, Noeud «Next», Noeud «Up»Reseau

Comment faire fonctionner votre réseau

GRUB requiert un serveur de fichiers et éventuellement un serveur qui assignera une adresse IP à la machine sur laquelle GRUB tourne. Pour le premier serveur, seul TFTP est supporté pour le moment. Le second peut être un serveur BOOTP, DHCP ou RARP6. Il n'est pas nécessaire de faire fonctionner les deux serveurs sur un seul ordinateur. La configuration de ces serveurs sort du cadre de ce document, consultez les manuels spécifiques à ces protocoles/serveurs.

Si vous avez décidé d'utiliser un serveur pour assigner une adresse IP, configurez le serveur et lancez bootp (voir bootp), dhcp (voir dhcp) ou rarp (voir rarp) pour BOOTP, DHCP ou RARP, respectivement. Chaque commande affichera l'adresse IP assignée, un masque de réseau, une adresse IP pour votre serveur TFTP et une passerelle. Si une des adresses est fausse ou cause une erreur, la configuration de vos serveurs n'est probablement pas correcte.

Sinon, entrez ifconfig, comme ceci:

grub> ifconfig --address=192.168.110.23 --server=192.168.110.14

Vous pouvez également utiliser ifconfig avec bootp, dhcp ou rarp (par exemple, pour réassigner l'adresse du serveur manuellement). Voir ifconfig, pour plus de détails.

Finalement, téléchargez les images de votre OS depuis le réseau. Vous pouvez y accéder avec le périphérique (nd). Le reste est très similaire aux instructions normales (voir Demarrage).

Voici un exemple:

grub> bootp
Probing... [NE*000]
NE2000 base ...
Address: 192.168.110.23    Netmask: 255.255.255.0
Server: 192.168.110.14     Gateway: 192.168.110.1

grub> root (nd)
grub> kernel /tftproot/gnumach.gz root=sd0s1
grub> module /tftproot/serverboot.gz
grub> boot

Node:Utilisation sans disque, Noeud «Previous»:Utilisation generale du support reseau, Noeud «Up»Reseau

Démarrage depuis un réseau

Il est de temps en temps pratique de démarrer depuis un réseau, spécialement quand vous utilisez une machine qui n'a pas de disque local. Dans ce cas, vous devez acquérir un type de Net Boot ROM, comme une PXE ROM ou un logiciel libre comme Etherboot. Ce type de ROM commence par démarrer la machine, configure la carte réseau installée sur la machine et télécharge la seconde image de démarrage depuis le réseau. Ensuite, la seconde image essaiera démarrer un système d'exploitation depuis le réseau.

GRUB fournit deux images, nbgrub et pxegrub (voir Images). Ces images sont identiques à Stage 2, sauf qu'elles activent un réseau automatiquement et essaient de télécharger un fichier de configuration depuis le réseau. Leur utilisation est très simple: si la machine possède une PXE ROM, utilisez pxegrub. Si la machine a un chargeur NBI comme Etherboot, utilisez nbgrub. Seul le format diffère entre les deux. Pour savoir comment charger la seconde image de démarrage que vous voulez utiliser, consultez le manuel de votre Net Boot ROM.

Cependant, GRUB a une particularité, qui est la manière de spécifier un fichier de configuration dans un serveur BOOTP/DHCP. Pour le moment, GRUB utilise le tag 150 pour obtenir le nom d'un fichier de configuration. Ce qui suit est un exemple de configuration d'un serveur BOOTP:

.allhost:hd=/tmp:bf=null:\
        :ds=145.71.35.1 145.71.32.1:\
        :sm=255.255.254.0:\
        :gw=145.71.35.1:\
        :sa=145.71.35.5:

foo:ht=1:ha=63655d0334a7:ip=145.71.35.127:\
        :bf=/nbgrub:\
        :tc=.allhost:\
        :T150="(nd)/tftpboot/menu.lst.foo":

Notez que vous devez indiquer le périphérique (nd) dans le nom du fichier de configuration, car vous pouvez changer la racine avant de télécharger le fichier de configuration depuis le serveur TFTP, quand le menu prédéfini est utilisé (voir Menu predefini).

Consultez le manuel de votre serveur BOOTP/DHCP pour plus d'informations. La syntaxe exacte peut être différente de l'exemple, plus ou moins.


Node:Terminal serie, Noeud «Next», Noeud «Previous»:Reseau, Noeud «Up»Top

Utiliser GRUB via une ligne série

Ce chapitre décrit comment utiliser le support d'un terminal série dans GRUB.

Si vous disposez de plusieurs ordinateurs ou d'ordinateurs sans écran/clavier, il serait très utile de les contrôler avec des communications série. Pour connecter un ordinateur avec un autre via une ligne série, vous devez préparer un cable série croisé null-modem, et vous pouvez avoir besoin de tableaux avec plusieurs ports série si votre ordinateur ne dispose pas de beaucoup de ports série. De plus, un émulateur de terminal est également requis, comme minicom. Réferrez-vous au manuel de votre système d'exploitation pour plus d'information.

Comme pour GRUB, les instructions pour activer un terminal série sont assez simples. Tout d'abord, assurez-vous que vous n'avez pas passé l'option --disable-serial au script configure quand vous avez compilé les images de GRUB. Si vous les avez obtenues sous forme binaire, vous disposez probablement déjà du support d'un terminal série.

Ensuite, initialisez votre terminal série après le démarrage de GRUB. Voici un exemple:

grub> serial --unit=0 --speed=9600
grub> terminal serial

La commande serial initialise l'unité série 0 à la vitesse de 9600bps. L'unité série 0 est habituellement appelée COM1, donc si vous voulez utiliser COM2, vous devez entrer --unit=1 à la place. Cette commande accepte de nombreuses autres options, voir serial pour plus de détails.

La commande terminal (voir terminal) détermine le type de terminal que vous voulez utiliser. Dans le cas précédent, le terminal sera un terminal série, mais vous pouvez également passer console à la commande, comme terminal serial console. Dans ce cas, un terminal dans lequel vous appuyez sur n'importe quelle touche sera sélectionnée comme un terminal GRUB.

Cependant, notez que GRUB suppose que votre émulateur de terminal est compatible VT100 par défaut. C'est le cas pour la plupart des émulateurs actuellement, mais vous devez passer l'option --dumb à la commande si votre terminal n'est pas compatible VT100 ou ne dispose que de quelques séquences d'échappement VT100. Si vous passez cette option, alors GRUB affiche un menu alternatif car le menu normal requiert plusieurs fonctionnalités particuliàres.


Node:Menu predefini, Noeud «Next», Noeud «Previous»:Terminal serie, Noeud «Up»Top

Intégrer un fichier de configuration dans GRUB

GRUB inclut le support d'un menu prédéfini qui est toujours chargé avant le démarrage. Cette fonction est utile, par exemple, quand votre ordinateur ne possède qu'un câble série comme console. Dans ce cas, il est nécessaire d'activer le terminal série le plus tôt possible, puisqu'aucun message ne peut être affiché avant que ce dernier ne fonctionne. Il est donc pratique d'exécuter les commandes serial (voir serial) et terminal (voir terminal) avant toute autre au démarrage.

Le fonctionnement du menu prédéfini est un peu complexe :

  1. GRUB vérifie si le menu prédéfini est utilisé, et le charge s'il est disponible. Ceci inclut l'exécution des commandes et la lecture des entrées de démarrage, comme pour un fichier de configuration ordinaire.
  2. GRUB vérifie si le fichier de configuration est disponible. Notez que cette action est exécutée que le menu prédéfini existe ou non. Le fichier de configuration est chargé, męme si le menu prédéfini a été lu.
  3. Si le menu prédéfini contient des entrées de démarrage, elles sont effacées quand le fichier de configuration est chargé. Ce dernier peut contenir zéro, une ou plusieurs entrées, cela n'a aucune importance. Les entrées de démarrage du menu de démarrage ne sont utilisées que lorsque GRUB ne parvient pas à lire le fichier de configuration.

Pour activer le menu prédéfini, vous devez indiquer un fichier au script configure avec l'option --enable-preset-menu. Le fichier possède le męme format que les fichiers de configuration normaux (voir Configuration).

Vous devez aussi faire attention au support diskless (voir Utilisation sans disque). Les images diskless incluent un menu prédéfini pour exécuter la commande bootp (voir bootp) automatiquement, sauf si vous précisez votre propre menu prédéfini au script configure. Vous devez donc ajouter les commandes nécessaires pour initialiser un réseau dans votre propre menu prédéfini, car les images diskless ne l'activent pas implicitement, quand vous utiliser explicitement le menu prédéfini.

Ainsi, un menu prédéfini typique utilisé avec le support diskless ressemblerait à ceci :

# Activer avant tout le terminal série.
serial --unit=0 --speed=19200
terminal --timeout=0 serial

# Initialisation du r´seau.
dhcp

Node:Securite, Noeud «Next», Noeud «Previous»:Menu predefini, Noeud «Up»Top

Protégez votre ordinateur d'un piratage

Comment empêcher les utilisateurs ordinaires de faire ce qu'ils veulent, si vous partagez votre ordinateur avec d'autres personnes, peut vous intéresser. Ce chapitre décrit comment améliorer la sécurité de GRUB.

Un point particulier peut être un trou de sécurité: l'utilisateur peut faire trop de choses avec GRUB, car GRUB permet de modifier sa configuration et de lancer des commandes arbitraires pendant son exécution. Par exemple, l'utilisateur peut même lire /etc/passwd dans l'interface en ligne de commande avec la commande cat (voir cat). Il est donc nécessaire de désactiver toutes les options interactives.

Ainsi, GRUB fournit une fonction mot de passe, pour que seuls les administrateurs ne puissent utiliser les opérations interactives (comme éditer des entrées du menu et utiliser la ligne de commande). Pour utiliser cette fonction, vous devez lancer la commande password dans votre fichier de configuration, comme ceci:

password --md5 PASSWORD

Quand cette commande est entrée, GRUB interdit tout contrôle interactif, jusqu'à ce que la touche <p> soit pressée et qu'un mot de passe correct soit entré. L'option --md5 informe GRUB que PASSWORD est au format MD5. Si elle est ommise, GRUB suppose que PASSWORD est en texte clair.

Vous pouvez crypter votre mot de passe avec la commande md5crypt (voir md5crypt). Par exemple, lancez le shell grub (voir Invoquer le shell grub), et entrez votre mot de passe:

grub> md5crypt
Password: **********
Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.

Ensuite, copiez le mot de passe crypté dans votre fichier de configuration.

Vous pouvez aussi passer un argument facultatif à password. Regardez cet exemple:

password PASSWORD /boot/grub/menu-admin.lst

Dans ce cas, GRUB chargera le fichier /boot/grub/menu-admin.lst comme son fichier de configuration quand un mot de passe valide est entré.

Il y a également un autre point dangereux: n'importe quel utilisateur peut choisir n'importe quelle entrée du menu. Habituellement, ce n'est pas un problème, mais vous pouvez vouloir restreindre l'exécution de certaines entrées aux seul administrateurs, comme une entrée qui démarre un système non sûr, DOS par exemple.

GRUB dispose d'une commande lock (voir lock). Cette commande échoue toujours sauf si vous avez entré un mot de passe correct, donc utilisez-la comme ceci:

title Démarrer DOS
lock
rootnoverify (hd0,1)
makeactive
chainload +1

Vous devriez insérer lock juste après title, car n'importe quel utilisateur peut exécuter les commandes d'une entrée jusqu'à ce que GRUB ne recontre lock.

Vous pouvez aussi utiliser la commande password à la place de lock. Dans ce cas, le processus de démarrage demandera le mot de passe et s'arrêtera s'il est incorrect. Puisque password prend son propre argument PASSWORD, vous pouvez utiliser différents mots de passe pour différentes entrées.


Node:Images, Noeud «Next», Noeud «Previous»:Securite, Noeud «Up»Top

Fichiers images de GRUB

GRUB consiste en plusieurs images: deux étapes essentielles, des étapes optionnelles appelées Stage 1.5, et deux images de démarrage réseau. Voici un petit aperçu de ces images. Voir Top, pour plus de détails.

stage1
C'est l'image essentielle utilisée pour lancer GRUB. D'habitude, elle est intégrée dans le MBR ou dans le secteur de démarrage d'une partition. Puisque la taille du secteur de démarrage d'un PC est de 512 octets, la taille de cette image est exactement 512 octets.

stage1 doit uniquement charger Stage 2 ou Stage 1.5 depuis un disque local. À cause d'une restriction de taille, stage1 écrit la position de Stage 2 (ou Stage 1.5) sous la forme d'une liste de blocs, il ne connaît jamais aucune structure de système de fichiers.

stage2
C'est l'image noyau de GRUB. Il se charge de tout sauf de son propre chargement. Il se trouve généralement dans un système de fichiers, mais ce n'est pas indispendable.
e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
vstafs_stage1_5
xfs_stage1_5
Ces images sont appelées Stage 1.5, car leur but est d'être un pont entre stage1 et stage2, c'est-à-dire Stage 1.5 est chargé par Stage 1 et Stage 1.5 charge Stage 2. stage1 et *_stage1_5 se différencient par le fait que le premier ne gère aucun système de fichiers, mais le second en gère un (par exemple e2fs_stage1_5 gère l'ext2fs). Vous pouvez donc changer de position Stage 2 en toute sécurité, même après l'installation de GRUB.

Alors que Stage 2 ne peut généralement pas être intégré dans une zone fixe à cause de sa grande taille, Stage 1.5 peut être installé dans la zone qui suit immédiatement le MBR, ou dans la zone du chargeur de ReiserFS ou de FFS.

nbgrub
C'est l'image de démarrage réseau pour le Network Image Proposal utilisé par certains chargeurs réseau, comme Etherboot. Il est pratiquement identique à Stage 2 mais il configure également un réseau et ouvre une fichier de configuration depuis le réseau.
pxegrub
C'est une autre image de démarrage réseau pour le Preboot Execution Environment utilisé par beaucoup de ROMs Netboot. Il est identique à nbgrub, à l'exception du format.

Node:Systeme de fichiers, Noeud «Next», Noeud «Previous»:Images, Noeud «Up»Top

Système de fichiers: syntaxe et sémantique

GRUB utilise une syntaxe spéciale pour spécifier les disques qui peuvent accédés par le BIOS. À cause de limitations du BIOS, GRUB ne peut faire aucune différence entre IDE, ESDI, SCSI, et autres. Vous devez connaître vous-même quel périphérique du BIOS est équivalent à tel disque pour l'OS. Normalement, la correspondance sera évidente si vous voyez les fichiers du disque, ou utilisez la commande find (voir find).


Node:Syntaxe des peripheriques, Noeud «Next», Noeud «Up»Systeme de fichiers

Comment désigner des périphériques

Voici la syntaxe des périphériques:

(device[,part-num][,bsd-subpart-letter])

[] signifie que le paramètre est optionnel. device devrait être fd ou hd, suivit d'un chiffre, comme fd0. Mais vous pouvez aussi donner une valeur décimale ou hexadécimale pour device, ce qui correspond au numéro du disque pour le BIOS. Ainsi, toutes ces expressions sont équivalentes:

(hd0)
(0x80)
(128)

part-num représente le numéro de la partition sur device, à partir de zéro pour les partitions primaires, de quatre pour les partitions étendues. bsd-subpart-letter représente le label BSD de la sous-partition, comme a ou e.

(device,bsd-subpart-letter) est un raccourci pour désigner une sous-partition BSD, dans ce cas, GRUB recherche la première partition qui contient un disklabel BSD, puis recherche la sous-partition bsd-subpart-letter. Voici un exemple:

(hd0,a)

La syntaxe (hd0) représente le disque entier (ou le MBR lors de l'installation de GRUB), alors que la syntaxe (hd0,0) représente une partition du disque (ou le secteur d'amorçage de la partition lors de l'installation de GRUB).

Si vous avez activé le support réseau, le disque spécial (nd), est également disponible. Avant d'utiliser le périphérique réseau, vous devez initialiser ce réseau. Voir Reseau, pour plus d'informations.


Node:Syntaxe des noms de fichiers, Noeud «Next», Noeud «Previous»:Syntaxe des peripheriques, Noeud «Up»Systeme de fichiers

Comment désigner des fichiers

Il existe deux manières de désigner des fichiers, par un nom de fichier absolu ou par une liste de blocs.

Un nom de fichier absolu ressemble au nom de fichier absolu sous Unix, qui utilise / comme séparateur de répertoires (et non \ comme sous DOS). Un exemple est (hd0,0)/boot/grub/menu.lst. Ceci désigne le fichier /boot/grub/menu.lst de la première partition du premier disque. Si vous ne précisez pas le périphérique, GRUB utilise le périphérique racine implicitement. Donc, si vous positionnez le périphérique racine sur, disons, (hd1,0) avec la commande root (voir root), alors /boot/kernel est identique à (hd1,0)/boot/kernel.


Node:Syntaxe des listes de blocs, Noeud «Previous»:Syntaxe des noms de fichiers, Noeud «Up»Systeme de fichiers

Comment désigner des listes de blocs

Une liste de blocs est utilisée pour désigner un fichier qui n'apparaît pas dans un système de fichiers, comme un chargeur chaîné. La syntaxe d'une liste de blocs est: [offset]+taille[,[offset]+taille]....

Voici un exemple:

0+100,200+1,300+300

GRUB lira les blocs 0 à 99, le bloc 200 et les blocs 300 à 599. Si vous omettez un offset, alors GRUB considère qu'il vaut zéro.

Comme pour les noms de fichiers (voir Syntaxe des noms de fichiers), si une liste de blocs ne contient pas de nom de périphérique, GRUB utilise le périphérique racine. Donc, (hd0,1)+1 est identique à +1 quand la racine est (hd0,1).


Node:Interface, Noeud «Next», Noeud «Previous»:Systeme de fichiers, Noeud «Up»Top

Interface utilisateur de GRUB

GRUB dispose d'une interface menu simple pour choisir des entrées prédéfinies, et une ligne de commande très flexible pour réaliser n'importe quelle combinaison de commande de démarrage.

GRUB cherche son fichier de configuration dès qu'il est lancé. S'il le trouve, alors l'interface menu complète est activée en utilisant les entrées trouvées dans le fichier. Si vous choisissez l'option ligne de commande du menu ou si le fichier de configuration n'a pas été trouvé, alors GRUB affiche la ligne de commande.


Node:Ligne de commande, Noeud «Next», Noeud «Up»Interface

La ligne de commande flexible

La ligne de commande affiche un message et fournit une zone de texte éditable, comme la ligne de commande d'Unix ou de DOS. Chaque commande est exécutée immédiatement après avoir été entrée 7. Les commandes (voir Commandes de la ligne de commande et du menu) sont un sous-ensemble de celles disponibles dans le fichier de configuration, elles s'utilisent exactement avec la même syntaxe.

Les mouvements de curseur et l'édition du texte sur la ligne peuvent être réalisés avec quelques fonctions disponibles dans l'interpréteur Bash:

<C-f>
<Flèche droite PC>
Avancer d'un caractère.
<C-b>
<Flèche gauche PC>
Reculer d'un caractère.
<C-a>
<HOME>
Se déplacer au début de la ligne.
<C-e>
<END>
Aller à la fin de la ligne.
<C-d>
<DEL>
Supprimer le caractère sous le curseur.
<C-h>
<BS>
Supprimer le caractère à gauche du curseur.
<C-k>
Supprimer le texte de la position actuelle du curseur à la fin de la ligne.
<C-u>
Supprimer du curseur au début de la ligne.
<C-y>
Remettre le texte supprimé à partir de la position du curseur.
<C-p>
<Flèche haut PC>
Remonter dans l'historique.
<C-n>
<Flèche bas PC>
Descendre dans l'historique.

Lors de la saisie interactive des commandes, si le curseur se trouve dans ou avant le premier mot de la ligne, la touche <TAB> (ou <C-i>) affichera une liste des commandes disponibles, et si le curseur se trouve après le premier mot, <TAB> complétera avec les noms de disques, de partitions et de fichiers selon le contexte.

Notez que vous ne pouvez pas utiliser cette fonction dans le système de fichiers TFTP. Cette limite est due à TFTP qui ne liste pas les noms de fichiers pour des raisons de sécurité.


Node:Interface menu, Noeud «Next», Noeud «Previous»:Ligne de commande, Noeud «Up»Interface

L'interface menu simple

L'interface menu est assez facile à utiliser. Ses commandes sont raisonnablement intuitives et décrites sur l'écran.

L'interface menu propose un choix parmi une liste d'entrées de démarrage à l'utilisateur. Utilisez les touches fléchées pour sélectionner l'entrée de votre choix, puis appuyez sur <ENTRÉE> pour la lancer. Un délai d'attente optionnel, annulé par n'importe quelle touche, permet de démarrer l'entrée par défaut (cette dernière est définie, mais pas le délai).

La touche <c> vous permet d'accéder à la ligne de commande, qui se comporte exactement comme la version de GRUB sans fichier de configuration, mais vous permet de retourner au menu avec la touche <ESC>. La touche <e> vous permet d'éditer n'importe quelle entrée de démarrage.

Si vous protégez l'interface menu avec un mot de passe (voir Securite), vous ne pouvez que choisir une entrée en appuyant sur <ENTRÉE>, ou appuyer sur <p> pour entrer un mot de passe.


Node:Editer une entree du menu, Noeud «Next», Noeud «Previous»:Interface menu, Noeud «Up»Interface

Éditer une entrée du menu

L'éditeur du menu ressemble beaucoup à l'interface menu principale, mais les lignes du menu sont les commandes individuelles de l'entrée sélectionnée, au lieu d'être les noms des entrées.

Si <ESC> est pressé dans l'éditeur, tous les changements sont annulés et GRUB retourne au menu principal.

Quand une ligne particulière est sélectionnée, l'éditeur place l'utilisateur dans une version spéciale de la ligne de commande de GRUB pour éditer cette ligne. Quand l'utilisateur appuie sur <ENTRÉE>, GRUB remplace la ligne en question dans l'entrée par celle modifiée (sauf si l'action est annulée via <ESC>, dans ce cas, les changements sont effacés).

Si vous voulez ajouter une nouvelle ligne à l'entrée, appuyez sur <o> pour l'ajouter après la ligne actuelle, et sur <O> pour l'ajouter avant.

Pour supprimer une ligne, appuyez sur <d>. Bien que GRUB ne supporte malheureusement pas l'annulation, vous pouvez faire presque la même chose en retournant au menu principal.


Node:Le menu cache, Noeud «Previous»:Editer une entree du menu, Noeud «Up»Interface

L'interface du menu caché

Quand votre terminal ne fonctionne pas totalement ou quand vous demandez explicitement à GRUB de masquer l'interface menu avec la commande hiddenmenu (voir hiddenmenu), GRUB n'affiche pas l'interface menu et démarre automatiquement l'entrée par défaut, sauf si vous pressez <ESC>.

Quand vous interrompez le délai d'attente et que votre terminal n'est pas totalement opérationnel, GRUB retourne en ligne de commande (voir Ligne de commande).


Node:Commandes, Noeud «Next», Noeud «Previous»:Interface, Noeud «Up»Top

Liste des commandes disponibles

Dans ce chapitre, nous listons toutes les commandes qui sont disponibles dans GRUB.

Les commandes appartiennent à différents groupes. Quelques unes ne peuvent être utilisées que dans la section globale du fichier de configuration (ou "menu"); la plupart peuvent être entrées sur la ligne de commande et utilisées dans le menu ou dans les entrées du menu.


Node:Commandes specifiques au menu, Noeud «Next», Noeud «Up»Commandes

Liste des commandes utilisables uniquement dans le menu

Les règles suivantes sont appliquées lors de l'analyse du fichier de configuration.

Seules les commandes suivantes peuvent être utilisées dans le menu.


Node:default, Noeud «Next», Noeud «Up»Commandes specifiques au menu

default

default num Commande
Définit l'entrée par défaut comme l'entrée numéro num. La numérotation commence à zéro, et l'entrée par défaut est 0 si cette commande n'est pas utilisée.

Vous pouvez passer saved au lieu d'un nombre. Dans ce cas, l'entrée par défaut est l'entrée sauvée avec la commande savedefault. Voir savedefault, pour plus d'information.


Node:fallback, Noeud «Next», Noeud «Previous»:default, Noeud «Up»Commandes specifiques au menu

fallback

fallback num Commande
Entrer dans un mode de démarrage non prévu: si l'entrée par défaut provoque une erreur, au lieu d'attendre une action de l'utilisateur, GRUB démarrera l'entrée num (même numérotation que pour la commande default (voir default). Cette option ne sera évidemment pas utile si la machine a été redémarrée par le noyau que GRUB a chargé.

Node:hiddenmenu, Noeud «Next», Noeud «Previous»:fallback, Noeud «Up»Commandes specifiques au menu

hiddenmenu

hiddenmenu Commande
Ne pas afficher le menu. Si la commande est utilisée, aucun menu ne sera affiché sur le terminal de contrôle, et l'entrée par défaut sera démarrée après expiration du délai d'attente. L'utilisateur peut toujours afficher le menu en appuyant sur la touche <ESC> avant l'expiration du délai d'attente. Voir aussi Le menu cache.

Node:timeout, Noeud «Next», Noeud «Previous»:hiddenmenu, Noeud «Up»Commandes specifiques au menu

timeout

timeout sec Commande
Définir un délai d'expiration, au bout de sec secondes, avant de démarrer automatiquement l'entrée par défaut (normalement définie par l'utilisateur).

Node:title, Noeud «Previous»:timeout, Noeud «Up»Commandes specifiques au menu

title

title name ... Commande
Commencer une nouvelle entrée de démarrage. Son nom est défini sur le reste de la ligne, en commençant par le premier caractère qui n'est pas une espace.

Node:Commandes generales, Noeud «Next», Noeud «Previous»:Commandes specifiques au menu, Noeud «Up»Commandes

Commandes générales

Commandes utilisables dans le menu et dans la ligne de commande.


Node:bootp, Noeud «Next», Noeud «Up»Commandes generales

bootp

bootp [--with-configfile] Commande
Initialise un périphérique réseau avec le protocole BOOTP. Cette commande n'est disponible que si GRUB a été compilé avec le support netboot. Voir aussi Reseau.

Si l'argument --with-configfile est passé à cette commande, GRUB téléchargera et lira le fichier de configuration spécifié par votre serveur BOOTP avec l'option 150.


Node:color, Noeud «Next», Noeud «Previous»:bootp, Noeud «Up»Commandes generales

color

color normal [highlight] Commande
Changer les couleurs du menu. La couleur normal est utilisée pour la plupart des lignes du menu (voir Interface menu), et la couleur highlight est utilisée pour la ligne sélectionnée. Si vous ne précisez pas highlight, alors la couleur inverse de normal est utilisée. Le format d'une couleur est foreground/background. foreground et background sont les noms symboliques des couleurs. Un nom symbolique de couleur doit faire partie de cette liste:
  • black (noir)
  • blue (bleu)
  • green (vert)
  • cyan (cyan)
  • red (rouge)
  • magenta (magenta)
  • brown (marron)
  • light-gray (gris clair)

    Les couleurs suivantes ne sont disponibles que pour les caractères (foreground).

  • dark-gray (gris foncé)
  • light-blue (bleu clair)
  • light-green (vert clair)
  • light-cyan (cyan clair)
  • light-red (rouge clair)
  • light-magenta (magenta clair)
  • yellow (jaune)
  • white (blanc)

Seuls les huit premiers noms peuvent être utilisés pour background. Vous pouvez ajouter le préfixe blink- à foreground si vous voulez faire clignoter le texte.

Cette commande peut être utilisée dans le fichier de configuration et dans la ligne de commande, vous pouvez donc écrire dans votre fichier de configuration quelque chose comme:

# Définir les couleurs par défaut
color light-gray/blue black/light-gray

# Changer les couleurs.
title OS-BS like
color magenta/blue black/magenta

Node:device, Noeud «Next», Noeud «Previous»:color, Noeud «Up»Commandes generales

device

device drive file Commande
Dans le shell grub, permet d'utiliser le fichier file comme s'il s'agissait du périphérique BIOS drive. Vous pouvez utiliser cette commande pour créer une image d'un disque, et/ou corriger les périphériques détectés par GRUB quand la détection automatique échoue, comme ceci:
grub> device (fd0) /floppy-image
grub> device (hd0) /dev/sd0

Cette commande n'est disponible que dans le shell grub (voir Invoquer le shell grub).


Node:dhcp, Noeud «Next», Noeud «Previous»:device, Noeud «Up»Commandes generales

dhcp

dhcp [--with-configfile] Commande
Initialise un périphérique réseau avec le protocole DHCP. Actuellement, cette commande n'est qu'un alias pour bootp, puisque les deux protocoles sont très similaires; Cette commande n'est disponible que si GRUB a été compilé avec le support netboot. Voir aussi Reseau.

Si l'argument --with-configfile est passé à cette commande, GRUB téléchargera et lira le fichier de configuration spécifié par votre serveur DHCP avec l'option 150.


Node:hide, Noeud «Next», Noeud «Previous»:dhcp, Noeud «Up»Commandes generales

hide

hide partition Commande
Masque la partition partition en positionnant le bit hidden (masquée) dans le code de type de partition. Cette commande n'est utile que pour démarrer DOS/Windows lorsque plusieurs partitions FAT primaires se trouvent sur un même disque. Voir aussi DOS/Windows.

Node:ifconfig, Noeud «Next», Noeud «Previous»:hide, Noeud «Up»Commandes generales

ifconfig

ifconfig [--server=serveur] [--gateway=passerelle] [--mask=masque] [--address=addresse] Commande
Configure manuellement l'adresse IP, le masque réseau, la passerelle et l'adresse du serveur d'un périphérique réseau. Les valeurs doivent être au format décimal, comme 192.168.11.178. L'ordre des options n'est pas important. Cette commande affiche la configuration actuelle, si aucune option n'est passée. Voir aussi Reseau.

Node:pager, Noeud «Next», Noeud «Previous»:ifconfig, Noeud «Up»Commandes generales

pager

pager [flag] Commande
Inverse ou définit l'état de l'affichage page par page. Si flag est on, il est est activé. Si flag est positionné sur off, il est désactivé. Si aucun argument n'est passé, l'état courant est inversé.

Node:partnew, Noeud «Next», Noeud «Previous»:pager, Noeud «Up»Commandes generales

partnew

partnew part type from to Commande
Crée une nouvelle partition primaire. part désigne la partition selon la syntaxe de GRUB (voir Convention de nommage); type est le type de la partition et doit être un nombre compris entre 0-0xff; from et to sont les secteurs de début et de fin, exprimés sous la forme d'un numéro de secteur absolu.

Node:parttype, Noeud «Next», Noeud «Previous»:partnew, Noeud «Up»Commandes generales

parttype

parttype part type Commande
Change le type d'une partition existante. part est la partition selon la syntaxe de GRUB (voir Convention de nommage); type est le nouveau type de la partition et doit être compris entre 0 et 0xff.

Node:password, Noeud «Next», Noeud «Previous»:parttype, Noeud «Up»Commandes generales

password

password [--md5] passwd [new-config-file] Commande
Si elle est utilisée dans la première section d'un fichier de menu, cette commande désactive l'édition interactive (éditeur d'entrées et ligne de commande) ainsi que les entrées protégées par la commande lock. Si le mot de passe passwd est entrée, la commande charge new-config-file comme nouveau fichier de configuration et redémarre Stage 2, si new-config-file est précisé. Sinon, GRUB débloquera les instructions privilégiées. Vous pouvez aussi utiliser cette commande dans la section de script, dans ce cas le mot de passe sera demandé pour continuer. L'option --md5 informe GRUB que passwd est crypté avec md5crypt (voir md5crypt).

Node:rarp, Noeud «Next», Noeud «Previous»:password, Noeud «Up»Commandes generales

rarp

rarp Commande
Initialise un périphérique réseau avec le protocole RARP. Cette commande n'est disponible que si GRUB a été compilé avec le support netboot. Voir aussi Reseau.

Node:serial, Noeud «Next», Noeud «Previous»:rarp, Noeud «Up»Commandes generales

serial

serial [--unit=unit] [--port=port] [--speed=speed] [--word=word] [--parity=parity] [--stop=stop] [--device=dev] Commande
Initialise un port série. unit est un numéro entre 0 et 3 qui désigne le port à utiliser; 0 par défaut, ce qui correspond au port souvent appelé COM1. port est le port d'E/S où se trouve l'UART; si cette option est passée, elle annule unit. speed est la vitesse de transmission; 9600 par défaut. word et stop sont les numéros des bits de données et d'arrêt. Les bits de données sont compris entre 5 et 8, les bits d'arrêt sont 1 ou 2. Par défaut, il y a 8 bits de données et un bit d'arrêt. parity est no (aucune), odd (impaire) ou even (paire), la valeur par défaut est no. L'option --device n'est utilisable que dans le shell grub pour désigner le périphérique tty à utiliser dans le système d'exploitation hôte (voir Invoquer le shell grub).

Le port série n'est pas utilisé comme une chaîne de communication sauf si la commande terminal est utilisée (voir terminal).

Cette commande n'est disponible que si GRUB a été compilé avec le support série. Voir aussi Terminal serie.


Node:setkey, Noeud «Next», Noeud «Previous»:serial, Noeud «Up»Commandes generales

setkey

setkey [to_key from_key] Commande
Change la table du clavier. La touche to_key remplace alors la touche from_key. Si aucun argument n'est passé, la commande réinitialise les correspondances des touches. Notez que cette commande n'échange pas les touches. Si vous voulez échanger les touches, entrez de nouveau la commande en inversant les arguments, comme ceci:
grub> setkey capslock control
grub> setkey control capslock

Une touche doit être une lettre, un numéro ou un de ces symboles:

escape, exclam, at, numbersign, dollar, percent, caret, ampersand, asterisk, parenleft, parenright, minus, underscore, equal, plus, backspace, tab, bracketleft, braceleft, bracketright, braceright, enter, control, semicolon, colon, quote, doublequote, backquote, tilde, shift, backslash, bar, comma, less, period, greater, slash, question, alt, space, capslock, FX (X est un numéro), et delete. Ce tableau décrit à quel charactère correspond chaque symbole:

exclam
!
at
@
numbersign
#
dollar
$
percent
%
caret
^
ampersand
&
asterisk
*
parenleft
(
parenright
)
minus
-
underscore
_
equal
=
plus
+
bracketleft
[
braceleft
{
bracketright
]
braceright
}
semicolon
;
colon
:
quote
'
doublequote
"
backquote
`
tilde
~
backslash
\
bar
|
comma
,
less
<
period
.
greater
>
slash
/
question
?
space
(espace)

Node:terminal, Noeud «Next», Noeud «Previous»:setkey, Noeud «Up»Commandes generales

terminal

terminal [--dumb] [--timeout=secs] [--lines=lines] [--silent] [console] [serial] [hercules] Commande
Sélectionne un terminal pour l'interaction avec l'utilisateur. Le terminal est supposé compatible VT100, sauf si --dumb est précisé. Si console et serial sont tous deux spécifiés, alors GRUB utilisera le premier dans lequel une touche est entrée, ou le premier si le délai d'expiration est passé. Si aucun des deux n'est passé, la configuration actuelle sera affichée. Cette commande n'est disponible que si GRUB a été compilé avec le support série. Voir aussi Terminal serie.

Cela ne sera probablement pas utile à la plupart des utilisateurs, mais GRUB inclut le support d'une console Hercules. Cette dernière est utilisable comme une console ordinaire, et la commande s'utilise comme pour les terminaux série : passez hercules en argument.

L'option --lines définit le nombre de lignes de voter terminal, et est utilisé pour le défilement page à page. Si vous ne passez pas cette option, le nombre de lignes est supposé être 24.

L'option --silent supprime le message demandant d'appuyer sur n'importe quelle touche. Ceci peut être utile si votre système ne possčde pas de terminal.


Node:tftpserver, Noeud «Next», Noeud «Previous»:terminal, Noeud «Up»Commandes generales

tftpserver

tftpserver ipaddr Commande
Attention: Cette commande n'existe que pour des raisons de compatibilité. Utilisez plutôt ifconfig (voir ifconfig).

Change l'adresse du serveur TFTP retournée par un serveur BOOTP/DHCP/RARP. L'argument ipaddr doit être au format décimal, comme 192.168.0.15. Cette commande n'est disponible que si GRUB a été compilé avec le support netboot. Voir aussi Reseau.


Node:unhide, Noeud «Previous»:tftpserver, Noeud «Up»Commandes generales

unhide

unhide partition Commande
Dé-masque la partition partition en enlevant le bit hidden (masqué) du code de type de la partition. Cette commande n'est utile que pour le démarrage de DOS/Windows avec plusieurs partitions primaires sur un disque. Voir aussi DOS/Windows.

Node:Commandes de la ligne de commande et du menu, Noeud «Previous»:Commandes generales, Noeud «Up»Commandes

Liste des commandes de la ligne de commande et du menu

Ces commandes sont utilisables avec la ligne de commande et dans les entrées du menu. Si vous oubliez une de ces commandes, vous pouvez utiliser la commande help (voir help).


Node:blocklist, Noeud «Next», Noeud «Up»Commandes de la ligne de commande et du menu

blocklist

blocklist file Commande
Affiche la notation en liste de blocs du fichier file. Voir Syntaxe des listes de blocs.

Node:boot, Noeud «Next», Noeud «Previous»:blocklist, Noeud «Up»Commandes de la ligne de commande et du menu

boot

boot Commande
Lance l'OS/le chargeur chaîné qui a été chargé. N'est nécessaire que pour le fonctionnement interactif en ligne de commande (cette commande est sous-entendue à la fin d'une entrée du menu).

Node:cat, Noeud «Next», Noeud «Previous»:boot, Noeud «Up»Commandes de la ligne de commande et du menu

cat

cat file Commande
Affiche le contenu du fichier file. Cette commande peut être utile pour vous souvenir de la partition racine de votre OS:
grub> cat /etc/fstab

Node:chainloader, Noeud «Next», Noeud «Previous»:cat, Noeud «Up»Commandes de la ligne de commande et du menu

chainloader

chainloader [--force] file Commande
Charge file comme chargeur chaîné. Comme n'importe quel autre fichier chargé par le code du système de fichiers, il peut utiliser la notation des listes de blocs pour charger le premier secteur de la partition actuelle avec +1. Si vous précisez l'option --force, alors file sera obligatoirement chargé, qu'il ait une signature correcte ou non. Cette option est nécessaire pour ouvrir des chargeurs défectueux, comme celui de SCO UnixWare 7.1 (voir SCO UnixWare).

Node:cmp, Noeud «Next», Noeud «Previous»:chainloader, Noeud «Up»Commandes de la ligne de commande et du menu

cmp

cmp file1 file2 Commande
Compare le fichier file1 avec file2. Si leurs tailles diffèrent, la commande affiche les tailles comme ceci:
Differ in size: 0x1234 [foo], 0x4321 [bar]

Si les tailles sont égales mais que le contenu diffère à un endroit, la commande affiche les valeurs comme ceci:

Differ at the offset 777: 0xbe [foo], 0xef [bar]

Si les fichiers sont complètement identiques, rien n'est affiché.


Node:configfile, Noeud «Next», Noeud «Previous»:cmp, Noeud «Up»Commandes de la ligne de commande et du menu

configfile

configfile file Commande
Charger le fichier de configuration file.

Node:debug, Noeud «Next», Noeud «Previous»:configfile, Noeud «Up»Commandes de la ligne de commande et du menu

debug

debug Commande
Basculer le mode débogage (par défaut inactif). Quand le mode débogage est activé, des messages supplémentaires sont affichés pour montrer l'activité des disques. Ce drapeau de débogage est principalement utile aux développeurs de GRUB pour tester un nouveau code.

Node:displayapm, Noeud «Next», Noeud «Previous»:debug, Noeud «Up»Commandes de la ligne de commande et du menu

displayapm

displayapm Commande
Affiche les informations APM du BIOS.

Node:displaymem, Noeud «Next», Noeud «Previous»:displayapm, Noeud «Up»Commandes de la ligne de commande et du menu

displaymem

displaymem Commande
Display what GRUB thinks the system address space map of the machine is, including all regions of physical RAM installed. GRUB's upper/lower memory display uses the standard BIOS interface for the available memory in the first megabyte, or lower memory, and a synthesized number from various BIOS interfaces of the memory starting at 1MB and going up to the first chipset hole for upper memory (the standard PC upper memory interface is limited to reporting a maximum of 64MB).

Node:embed, Noeud «Next», Noeud «Previous»:displaymem, Noeud «Up»Commandes de la ligne de commande et du menu

embed

embed stage1_5 device Commande
Intègre l'image Stage 1.5 stage1_5 dans les secteurs après le MBR si device est un disque, ou dans la zone du chargeur si device est une partition FFS ou ReiserFS8. La commande affiche le nombre de secteurs occupés par stage1_5, si elle réussit.

Habituellement, vous n'avez pas besoin de lancer cette commande directement. Voir setup.


Node:find, Noeud «Next», Noeud «Previous»:embed, Noeud «Up»Commandes de la ligne de commande et du menu

find

find filename Commande
Recherche le nom de fichier filename dans toutes les partitions et affiche la liste des périphériques qui contiennent le fichier. Le nom de fichier filename doit être un nom de fichier absolu, comme /boot/grub/stage1.

Node:fstest, Noeud «Next», Noeud «Previous»:find, Noeud «Up»Commandes de la ligne de commande et du menu

fstest

fstest Commande
Bascule le mode de test du système de fichiers. Ce mode de test, quand il est activé, affiche les données correspondant à toutes les lectures sur le disque et quelles valeurs sont envoyées aux routines de bas niveau. Le format est <partition-offset-sector, byte-offset, byte-length> pour les lectures de haut-niveau dans une partition, et [disk-offset-sector] pour les requêtes de secteur au bas niveau.

Le mode de test est arrêté par l'utilisation des commandes install (voir install) ou testload (voir testload)


Node:geometry, Noeud «Next», Noeud «Previous»:fstest, Noeud «Up»Commandes de la ligne de commande et du menu

geometry

geometry drive [cylinder head sector [total_sector]] Commande
Affiche les informations pour le disque drive. Dans le shell grub, vous pouvez définir arbitrairement la géométrie. Les nombres de cylindres, de têtes, de secteurs et le total des secteurs sont respectivement définis par cylinder, head, sector et total_sector. Si vous omettez total_sector, alors la valeur sera calculée automatiquement en se basant sur les valeurs C/H/S.

Node:halt, Noeud «Next», Noeud «Previous»:geometry, Noeud «Up»Commandes de la ligne de commande et du menu

halt

halt --no-apm Commande
Cette commande arrête l'ordinateur. Si l'option --no-apm est passée, aucun appel BIOS APM n'est réalisé. Sinon, l'ordinateur est éteint en utilisant APM.

Node:help, Noeud «Next», Noeud «Previous»:halt, Noeud «Up»Commandes de la ligne de commande et du menu

help

help --all [pattern ...] Commande
Affiche des informations utiles à propos des commandes internes. Si vous ne précisez pas pattern, cette commande affiche une courte description de la plupart des commandes disponibles. Si vous passez l'option --all à cette commande, les descriptions des commandes rarement utilisés (comme testload) sont affichées aussi.

Si vous donnez une valeur pour patterns, une description plus longue est affichée pour chaque commande qui correspond à patterns.


Node:impsprobe, Noeud «Next», Noeud «Previous»:help, Noeud «Up»Commandes de la ligne de commande et du menu

impsprobe

impsprobe Commande
Teste la table de configuration Intel Multiprocessor Specification 1.1 ou 1.4 et démarre les différents processeurs qui se trouvent dans une boucle infinie. Cette commande n'est utilisable que dans Stage 2.

Node:initrd, Noeud «Next», Noeud «Previous»:impsprobe, Noeud «Up»Commandes de la ligne de commande et du menu

initrd

initrd file ... Commande
Charge un ramdisk initial pour une image de démarrage au format Linux et définit les paramètres adéquats dans la zone de configuration de Linux en mémoire. Voir aussi GNU/Linux.

Node:install, Noeud «Next», Noeud «Previous»:initrd, Noeud «Up»Commandes de la ligne de commande et du menu

install

install [--force-lba] [--stage2=os_stage2_file] stage1_file [d] dest_dev stage2_file [addr] [p] [config_file] [real_config_file] Commande
Cette commande est vraiment compliquée, et vous ne devriez pas l'utiliser si vous n'êtes pas familier avec GRUB. Utilisez plutôt setup (voir setup).

Cette commande effectuera une installation complète en supposant que Stage 2 ou Stage 1.59 se trouvent à leur emplacement final.

In slightly more detail, it will load stage1_file, validate that it is a GRUB Stage 1 of the right version number, install a blocklist for loading stage2_file as a Stage 2. If the option d is present, the Stage 1 will always look for the actual disk stage2_file was installed on, rather than using the booting drive. The Stage 2 will be loaded at address addr, which must be 0x8000 for a true Stage 2, and 0x2000 for a Stage 1.5. If addr is not present, GRUB will determine the address automatically. It then writes the completed Stage 1 to the first block of the device dest_dev. If the options p or config_file are present, then it reads the first block of stage2, modifies it with the values of the partition stage2_file was found on (for p) or places the string config_file into the area telling the stage2 where to look for a configuration file at boot time. Likewise, if real_config_file is present and stage2_file is a Stage 1.5, then the Stage 2 config_file is patched with the configuration file name real_config_file. This command preserves the DOS BPB (and for hard disks, the partition table) of the sector the Stage 1 is to be installed into.

Caution: Several buggy BIOSes don't pass a booting drive properly when booting from a hard disk drive. Therefore, you will have to specify the option d, whether your Stage2 resides at the booting drive or not, if you have such a BIOS unfortunately. We know these are defective in that:

Fujitsu LifeBook 400 BIOS version 31J0103A
HP Vectra XU 6/200 BIOS version GG.06.11

Caution2: A number of BIOSes don't return a correct LBA support bitmap even if they do have the support. So GRUB provides a solution to ignore the wrong bitmap, that is, the option --force-lba. Don't use this option if you know that your BIOS doesn't have LBA support.

Caution3: You must specify the option --stage2 in the grub shell, if you cannot unmount the filesystem where your stage2 file resides. The argument should be the file name in your operating system.


Node:ioprobe, Noeud «Next», Noeud «Previous»:install, Noeud «Up»Commandes de la ligne de commande et du menu

ioprobe

ioprobe drive Commande
Tester les ports d'E/S pour le disque drive. Cette commande listera les ports d'E/S sur l'écran. Pour des informations plus techniques, Voir Top.

Node:kernel, Noeud «Next», Noeud «Previous»:ioprobe, Noeud «Up»Commandes de la ligne de commande et du menu

kernel

kernel [--type=type] [--no-mem-option] file ... Commande
Essaie de charger la première image de démarrage (Multiboot a.out ou ELF, Linux zImage ou bzImage, FreeBSD a.out, NetBSD a.out, etc.) depuis file. Le reste de la ligne est passé à la ligne de commande du noyau. N'importe quel module doit être rechargé après cette commande.

Cette commande accepte aussi l'option --type qui permet de préciser explicitement le type du noyau de file. L'argument type doit faire partie de cette liste: netbsd, freebsd, openbsd, linux, biglinux, et multiboot. Cependant, vous n'êtes obligé de passer cette option que si vous voulez charger un noyau NetBSD ELF, car GRUB peut déterminer automatiquement le type du noyau dans les autres cas.

L'option --no-mem-option ne sert que pour Linux. Si elle est précisée, GRUB ne passe pas l'option mem= au noyau.


Node:lock, Noeud «Next», Noeud «Previous»:kernel, Noeud «Up»Commandes de la ligne de commande et du menu

lock

lock Commande
Empêche les utilisateurs normaux d'exécuter des entrées arbitraires du menu. Vous devez utiliser la commande password pour rendre cette commande utile (voir password).

Cette commande s'utilise dans le menu, comme dans cet exemple:

title Entrée trop dangereuse pour les utilisateurs normaux
lock
root (hd0,a)
kernel /os-non-securise

Voir aussi Securite.


Node:makeactive, Noeud «Next», Noeud «Previous»:lock, Noeud «Up»Commandes de la ligne de commande et du menu

makeactive

makeactive Commande
Positionne la partition active du disque racine sur la partition racine de GRUB. Cette commande est limitée aux partitions primaires d'un disque dur.

Node:map, Noeud «Next», Noeud «Previous»:makeactive, Noeud «Up»Commandes de la ligne de commande et du menu

map

map to_drive from_drive Commande
Fait correspondre le disque from_drive au disque to_drive. Cette opération est nécessaire pour le chargement chaîné de certains systèmes d'exploitation, comme DOS, si un tel OS n'est pas sur le premier disque. Voici un exemple:
grub> map (hd0) (hd1)
grub> map (hd1) (hd0)

L'exemple échange l'ordre entre le premier disque dur et le second. Voir aussi DOS/Windows.


Node:md5crypt, Noeud «Next», Noeud «Previous»:map, Noeud «Up»Commandes de la ligne de commande et du menu

md5crypt

md5crypt Commande
Demande d'entrer un mot de passe et le crypte au fomat MD5. Le mot de passe peut être utilisé avec la commande password (voir password). Voir aussi Securite.

Node:module, Noeud «Next», Noeud «Previous»:md5crypt, Noeud «Up»Commandes de la ligne de commande et du menu

module

module file ... Commande
Charge le module de démarrage file pour une image Multiboot (aucune interprétation du contenu du fichier n'est réalisée, l'utilisateur doit donc savoir ce que le noyau en question attend). Le reste de la ligne est passé à la ligne de commande du module, comme avec la commande kernel. Vous devez charger une image de noyau Multiboot avant tout module. Voir aussi modulenounzip.

Node:modulenounzip, Noeud «Next», Noeud «Previous»:module, Noeud «Up»Commandes de la ligne de commande et du menu

modulenounzip

modulenounzip file ... Commande
Comme module (voir module), sauf que la décompression automatique est désactivée.

Node:pause, Noeud «Next», Noeud «Previous»:modulenounzip, Noeud «Up»Commandes de la ligne de commande et du menu

pause

pause message ... Commande
Affiche le message, et attend qu'une touche soit appuyée. Notez que l'utilisation de <^G> (code ASCII 7) dans le message provoquera l'émission du son standard par le haut-parleur, ce qui est utile pour demander à l'utilisateur de changer de disquette.

Node:quit, Noeud «Next», Noeud «Previous»:pause, Noeud «Up»Commandes de la ligne de commande et du menu

quit

quit Commande
Quitte le shell grub grub (voir Invoquer le shell grub). Cette commande n'est disponible que dans le shell grub.

Node:reboot, Noeud «Next», Noeud «Previous»:quit, Noeud «Up»Commandes de la ligne de commande et du menu

reboot

reboot Commande
Redémarre l'ordinateur.

Node:read, Noeud «Next», Noeud «Previous»:reboot, Noeud «Up»Commandes de la ligne de commande et du menu

read

read addr Commande
Lit une valeur 32-bit en mémoire à l'adresse addr et l'affiche au format hexadécimal.

Node:root, Noeud «Next», Noeud «Previous»:read, Noeud «Up»Commandes de la ligne de commande et du menu

root

root device [hdbias] Commande
Définit device comme étant la partition racine, puis essaie de la monter pour obtenir la taille de la partition (pour passer le descripteur de la partition en ES:ESI, utilisé par certains chargeurs chaînés), le type de disque BSD (pour démarrer des noyaux BSD en utilisant leur format de démarrage natif), et déterminer correctement la partition PC ou se trouve la sous-partition BSD. Le paramètre facultatif hdbias est un nombre pour informer un noyau BSD du nombre de disque BIOS qui se trouvent sur un contrôleur avant le disque actuel. Par exemple, s'il y a un disque IDE et un disque SCSI, et que votre partition racine FreeBSD se trouve sur le disque SCSI, utilisez 1 pour hdbias.

Voir aussi rootnoverify.


Node:rootnoverify, Noeud «Next», Noeud «Previous»:root, Noeud «Up»Commandes de la ligne de commande et du menu

rootnoverify

rootnoverify device [hdbias] Commande
Cette commande est similaire à root (voir root), mais elle n'essaie pas de monter la partition. C'est utile pour un OS qui se trouve en dehors de la zone lisible par GRUB, mais il est toujours préférable de définir le périphérique racine correct. Notez que les éléments mentionnés dans root, obtenus au montage ne fonctionneront pas correctement.

Node:savedefault, Noeud «Next», Noeud «Previous»:rootnoverify, Noeud «Up»Commandes de la ligne de commande et du menu

savedefault

savedefault Commande
Enregistre l'entrée actuelle comme l'entrée par défaut. Voici un exemple:
default saved
timeout 10

title GNU/Linux
root (hd0,0)
kernel /boot/vmlinuz root=/dev/sda1 vga=ext
initrd /boot/initrd
savedefault

title FreeBSD
root (hd0,a)
kernel /boot/loader
savedefault

Avec cette configuration, l'entrée par défaut sera celle utilisée précédemment. Voir aussi default.


Node:setup, Noeud «Next», Noeud «Previous»:savedefault, Noeud «Up»Commandes de la ligne de commande et du menu

setup

setup [--force-lba] [--stage2=os_stage2_file] [--prefix=dir] install_device [image_device] Commande
Installe GRUB automatiquement. Cette commande utilise en arrière plan la commande install (voir install) plus flexible et installe GRUB sur le périphérique install_device. Si image_device est précisé, alors la commande cherche les images de GRUB (voir Images) sur le disque image_device, sinon GRUB utilise le périphérique racine acutel, qui peut être défini à la main avec la commande root. Si install_device est un disque dur, alors Stage 1.5 sera intégré sur le disque, si possible.

L'option --prefix précise le répertoire dans lequel les images de GRUB se trouvent. Si elle n'est pas passée, GRUB les recherche automatiquement dans /boot/grub et /grub.

Les options --force-lba et --stage2 sont simplement passées à install. Voir install, pour plus d'information.


Node:testload, Noeud «Next», Noeud «Previous»:setup, Noeud «Up»Commandes de la ligne de commande et du menu

testload

testload file Commande
Lit le contenu entier de file de différentes façons, les compare, pour tester le code du système de fichiers. La sortie est quelque peu énigmatique, mais si aucune erreur n'est affichée et que dans la lecture finale i=X, filepos=Y, X et Y sont égaux, alors le test est concluant. Dans ce cas, l'étape suivante est le chargement d'un noyau.

Node:testvbe, Noeud «Next», Noeud «Previous»:testload, Noeud «Up»Commandes de la ligne de commande et du menu

testvbe

testvbe mode Commande
Teste le mode VESA BIOS EXTENSION. Cette commande passera la carte graphique en mode graphique, et affichera une animation sans fin. Appuyez sur une touche pour retourner. Voir aussi vbeprobe.

Node:uppermem, Noeud «Next», Noeud «Previous»:testvbe, Noeud «Up»Commandes de la ligne de commande et du menu

uppermem

uppermem kbytes Commande
Force GRUB à supposer qu'il n'y a que kbytes kilo-octets de mémoire étendue. N'importe quelle table d'adressage du système est ignorée.

Attention: Cette commande ne doit être utilisée qu'avec certaines précautions, et ne devrait être nécessaire que sur d'anciennes machines. GRUB est capable de détecter toute la RAM sur les nouvelles machines dont l'auteur a entendu parler. Cette commande peut aussi servir pour le débogage, pour mentir à un OS.


Node:vbeprobe, Noeud «Previous»:uppermem, Noeud «Up»Commandes de la ligne de commande et du menu

vbeprobe

vbeprobe [mode] Commande
Examine les informations VESA BIOS EXTENSION. Si le mode mode est précisé, n'affiche que les informations concernant mode. Sinon, cette commande affiche tous les modes VBE disponibles sur l'écran. Voir aussi testvbe.

Node:Depannage, Noeud «Next», Noeud «Previous»:Commandes, Noeud «Up»Top

Messages d'erreur de GRUB

Ce chapite décrit les messages d'erreur affichés par GRUB quand vous rencontrez un problème. Voir Invoquer le shell grub, si votre problème est spécifique au shell grub.


Node:Erreurs de Stage1, Noeud «Next», Noeud «Up»Depannage

Erreurs affichées par Stage 1

Stage 1 gère les erreurs en affichant un message d'erreur et en s'arrêtant. Les touches <CTRL>-<ALT>-<DEL> redémarreront la machine.

La suite est une liste des messages d'erreurs pour Stage 1:

Hard Disk Error
stage2 ou stage1.5 est sur le point d'être lu, mais la détermination de la taille et de la géométrie du disque dur a échoué.
Floppy Error
stage2 ou stage1.5 est sur le point d'être lu depuis une disquette, mais la détermination de la taille et de la géométrie de la disquette a échoué. L'erreur est différenciée de la précédente car la séquence de détermination est différente.
Read Error
Une erreur de lecteur s'est produite pendant la lecture de stage2 ou de stage1.5.
Geom Error
L'emplacement de stage2 ou de stage1.5 n'est pas sur une portion de disque supportée directement par le BIOS. Cette erreur se produit quand le mode de traduction de géométrie du BIOS a été modifié par l'utilisateur ou quand le disque a été changé de machine ou de contrôleur après l'installation, ou alors GRUB n'a pas été installé par lui-même (si tel était le cas, la version de Stage 2 aurait été lue et l'installation aurait échoué).

Node:Erreurs de Stage1.5, Noeud «Next», Noeud «Previous»:Erreurs de Stage1, Noeud «Up»Depannage

Erreurs affichées par Stage 1.5

Stage 1.2 gère les erreurs en affichant un code d'erreur de la forme Error num puis s'arrête. Les touches <CTRL>-<ALT>-<DEL> redémarreront la machine.

Les codes d'erreur correspondent à ceux affichés par Stage 2. Voir Erreurs de Stage2.


Node:Erreurs de Stage2, Noeud «Previous»:Erreurs de Stage1.5, Noeud «Up»Depannage

Erreurs affichées par Stage 2

Stage 2 annule l'opération en cours lorsqu'il rencontre une erreur, affiche un message d'erreur, et (si possible) continue comme si aucune erreur ne s'était produite, ou attend l'intervention de l'utilisateur.

La suite est une liste des messages d'erreur pour Stage 2 (les codes d'erreur pour Stage 1.5 sont listés avant les deux-points):

1 : Filename must be either an absolute filename or blocklist
Cette erreur est retournée si un nom de fichier ne respecte pas les règles listées dans la section voir Systeme de fichiers.
2 : Bad file or directory type
Cette erreur est retournée si un fichier n'est pas un fichier régulier, mais quelque chose comme un lien symbolique, un répertoire ou un tube FIFO.
3 : Bad or corrupt data while decompressing file
Cette erreur est retournée quand le code de décompression rencontre une erreur interne. Elle est généralement due à un fichier corrompu.
4 : Bad or incompatible header in compressed file
Cette erreur est retournée si l'en-tête d'un fichier supposé compressé est mauvaise.
5 : Partition table invalid or corrupt
Cette erreur est retournée si les vérifications de l'intégrité de la table de partitions échouent. C'est un mauvais signe.
6 : Mismatched or corrupt version of stage1/stage2
Cette erreur est retournée si la commande d'installation trouve des versions incompatibles ou corrompues de stage1 et stage2. GRUB ne détecte généralement pas la corruption d'un fichier, mais il s'agit d'une vérification sur les numéros de version, qui devraient être corrects.
7 : Loading below 1MB is not supported
Cette erreur est retournée si la plus basse adresse dans un noyau est en-dessous de la limite d'un méga-octet. Le format zImage de Linux est un cas spécial et peut être géré puisqu'il a une adresse de chargement et une taille maximum fixes.
8 : Kernel must be loaded before booting
Cette erreur est retournée si vous demandez à GRUB d'exécuter la séquence de démarrage sans avoir précisé de noyau à lancer.
9 : Unknown boot failure
Cette erreur est retournée si le processus de démarrage a échoué pour une raison inconnue.
10 : Unsupported Multiboot features requested
Cette erreur est retournée quand le noyau utilise une fonctionnalité Multiboot non reconnue. Le noyau requiert sûrement un traitement particulier que GRUB n'est probablement pas capable d'assurer.
11 : Unrecognized device string
Cette erreur est retournée si une chaîne de périphérique est attendue et que la chaîne entrée ne correspond pas à la syntaxe décrite dans Systeme de fichiers.
12 : Invalid device requested
Cette erreur est retournée si la chaîne de périphérique est valide mais que l'erreur ne correspond à aucune autre erreur de périphérique.
13 : Invalid or unsupported executable format
Cette erreur est retournée si l'image du noyau à charger n'est pas reconnue comme Multiboot ou n'est pas un des formats natifs (Linux zImage ou bzImage, FreeBSD, NetBSD).
14 : Filesystem compatibility error, cannot read whole file
Certains codes de lecture des systèmes de fichiers dans GRUB ont une limite sur la taille des fichiers qu'ils peuvent lire. Cette erreur est retournée quand l'utilisateur dépasse cette limite.
15 : File not found
Cette erreur est retournée si le fichier n'est pas trouvé, mais le reste est correct (comme les informations du disque et de la partition).
16 : Inconsistent filesystem structure
Cette erreur est retournée par le code du système de fichiers pour signaler une erreur interne causée par l'échec des vérifications de la structure du système de fichiers. Cette erreur est habituellement causée par un système de fichiers corrompu ou par des bugs dans le code de GRUB qui le prend en charge.
17 : Cannot mount selected partition
Cette erreur est retournée si la partition demandée existe, mais le type du système de fichiers n'est pas reconnu par GRUB.
18 : Selected cylinder exceeds maximum supported by BIOS
Cette erreur est retournée quand une tentative de lecture est réalisée sur un bloc au-delà de ceux gérés par de BIOS. Elle se produit généralement si votre disque est plus grand que les limites du BIOS (512MO pour les disques (E)IDE sur les anciennes machines, ou plus de 8GO en général).
19 : Linux kernel must be loaded before initrd
Cette erreur est retournée si la commande initrd est utilisée avant de charger un noyau Linux. De même que l'erreur suivante, cette erreur n'a de signification que dans ce cas.
20 : Multiboot kernel must be loaded before modules
Cette erreur est retournée si la commande de chargement d'un module est utilisée avant le chargement d'un noyau Multiboot. Cela n'a de toutes façons de signfication que dans ce cas, puisque GRUB ne sait pas comment communiquer l'emplacement de tels modules à un noyau non Multiboot.
21 : Selected disk does not exist
Cette erreur est retournée si une chaîne désigne un disque ou un périphérique BIOS qui n'est pas présent ou n'est pas reconnu par le BIOS.
22 : No such partition
Cette erreur est retournée si une partition demandée n'existe pas sur le disque sélectionné.
23 : Error while parsing number
Cette erreur est retournée si GRUB attendait un nombre et a lu des données incorrectes.
24 : Attempt to access block outside partition
Cette erreur est retournée si une adresse linéaire de bloc se trouve au-delà de la partition du disque. Cette erreur se produit généralement à cause d'un système de fichiers corrompu ou d'un bug dans le code de GRUB qui le gère (c'est un formidable outil de débogage).
25 : Disk read error
Cette erreur est retournée si une erreur de lecture se produit lors d'une tentative de test ou de lecture depuis un disque particulier.
26 : Too many symbolic links
Cette erreur est retournée si le nombre de liens dépasse le maximum autorisé (actuellement 5), probablement à cause d'une boucle dans les liens.
27 : Unrecognized command
Cette erreur est retournée si une commande non reconnue est entrée dans la ligne de commande ou dans la séquence de démarrage d'un fichier de configuration lorsque l'entrée est saisie.
28 : Selected item cannot fit into memory
Cette erreur est retournée si un noyau, un module, ou un fichier à charger ne peut pas tenir dans la mémoire, ou est simplement trop gros.
29 : Disk write error
Cette erreur est retournée si une erreur d'écriture disque se produit sur un disque particulier. Elle ne devrait se produire que pendant l'installation d'une partition setactive.
30 : Invalid argument
Cette erreur est retournée si un argument passé à une commande est invalide.
31 : File is not sector aligned
Cette erreur ne peut se produire que pendant un accès à une partition ReiserFS avec des listes de blocs (ex. la commande install). Dans ce cas, vous devez monter la partition avec l'option -o notail.
32 : Must be authenticated
Cette erreur est retournée si vous essayez de lancer une entrée bloquée. Vous devez entrer un mot de passe correct avant de lancer ce type d'entrées.
33 : Serial device not configured
Cette erreur est retournée si vous essayez de passer sur un terminal série avant d'avoir initialisé un port série.
34 : No spare sectors on the disk
Cette erreur est retournée si un disque ne possède pas assez d'espace libre. Elle se produit quand vous essayez d'écrire Stage 1.5 dans les secteurs inutilisés après le MBR, mais la première partition commence juste après le MBR, ou ils sont utilisés par EZ-BIOS.

Node:Invoquer le shell grub, Noeud «Next», Noeud «Previous»:Depannage, Noeud «Up»Top

Invoquer le shell grub

Ce chapitre documente le shell grub grub. Notez que le shell grub est un émulateur; il ne fonctionne pas dans l'environnement natif; donc il fait parfois des erreurs. Par conséquent, vous ne devriez pas lui faire trop confiance. Si une quelque chose ne fonctionne pas normalement, n'hésitez pas à utiliser l'environnement natif de GRUB, en particulier quand le shell trouve une mauvaise table de correspondances entre les disques pour BIOS et ceux pour l'OS.


Node:Utilisation basique, Noeud «Next», Noeud «Up»Invoquer le shell grub

Introduction au shell grub

Vous pouvez utiliser la commande grub pour installer GRUB sous votre système d'exploitation ou pour effectuer des tests quand vous ajoutez une nouvelle fonction ou quand vous corrigez un bug. grub est pratiquement identique à Stage 2, et, en fait, il partage le même code source que Stage 2. Vous pouvez donc utiliser les mêmes commandes (voir Commandes) dans grub. Stage 2 est émulé en remplaçant les appels du BIOS par des appels systèmes UNIX et des fonctions de la bibliothèque C.

La commande grub accepte les options suivantes:

--help
Affiche un résumé des options et quitte.
--version
Affiche la version de GRUB et quitte.
--verbose
Affiche des messages supplémentaires pour le débogage.
--device-map=file
Utilise le fichier de correspondances file. Son format est décrit dans Table de correspondances.
--no-floppy
Ne tester aucun lecteur de disquettes. Cette option n'a pas d'effets si --device-map est précisé (voir Table de correspondances).
--probe-second-floppy
Tester le deuxième lecteur de disquettes. Si cette option n'est pas passée, le shell grub ne teste pas le lecteur, puisque cette opération peut être longue. Si vous précisez un fichier de correspondances (voir Table de correspondances), le shell grub ignore simplement cette option.
--config-file=file
Lit le fichier de configuration file à la place de /boot/grub/menu.lst. Le format suit la syntaxe normale de GRUB. Voir Systeme de fichiers, pour plus d'informations.
--boot-drive=drive
Positionne le périphérique de démarrage (boot_drive) de stage2 sur drive. La valeur doit être un entier (décimal, octal ou hexadécimal).
--install-partition=par
Positionne la partition d'installation (install_partition) de stage2 sur par. La valeur doit être un entier (décimal, octal ou hexadécimal).
--no-config-file
Ne pas utiliser de fichier de configuration, même s'il peut être lu.
--no-curses
Ne pas utiliser l'interface curses même si elle est disponible.
--batch
Cette option est équivalente à --no-config-file --no-curses.
--read-only
Désactive l'écriture sur n'importe quel disque.
--hold
Attendre qu'un débogeur s'attache au programme. Cette option est utile quand vous voulez déboguer le code de démarrage.

Node:Installation sous UNIX, Noeud «Next», Noeud «Previous»:Utilisation basique, Noeud «Up»Invoquer le shell grub

Comment installer GRUB via grub

La procédure d'installation est identique à celle sous le Stage 2 natif. Voir Installation, pour plus d'information. Les informations spécifiques à la commande grub sont décrites ici.

Vous devriez faire attention au tampon de cache. grub accède aux périphériques directement au lieu d'utiliser les systèmes de fichiers que votre système d'exploitation fournit, donc il existe un problème potentiel qu'un cache incohérent ne vienne corrompre vos systèmes de fichiers. Voici ce que nous vous recommandons de faire:

De plus, entrez la commande quit quand vous avez terminé l'installation. Cette étape est très importante car quit rend le tampon de cache cohérent. Ne pressez pas <C-c>.

Si vous voulez installer GRUB non-interactivement, passez l'option --batch sur la ligne de commande. Voici un exemple simple:

#!/bin/sh

# Utilisez /usr/sbin/grub si vous êtes sur un ancien système.
/sbin/grub --batch <<EOT 1>/dev/null 2>/dev/null
root (hd0,0)
setup (hd0)
quit
EOT

Node:Table de correspondances, Noeud «Previous»:Installation sous UNIX, Noeud «Up»Invoquer le shell grub

Les correspondances des disques entre le BIOS et l'OS.

Quand vous passez l'option --device-map (voir Utilisation basique), le shell grub crée le fichier de correspondances des disques automatiquement sauf s'il existe déjà. Le nom de fichier /boot/grub/device.map est préféré.

Si le fichier de correspondances existe, le shell grub le lit pour établir les correspondances entre les disques pour le BIOS et les disques pour l'OS. Ce fichier consiste en plusieurs lignes, comme celle-ci:

périphérique fichier

périphérique est un périphérique, selon la syntaxe de GRUB (voir Syntaxe des peripheriques), et fichier est un fichier pour l'OS, qui est normalement un fichier de périphérique.

Le shell grub vous permet d'utiliser ce fichier de correspondances car il ne peut pas établir correctement les correspondances entre les disques pour le BIOS et les disques pour l'OS dans certains environnements. Par exemple, si vous échangez la séquence de démarrage entre IDE et SCSI dans votre BIOS, l'ordre du shell grub sera faux.

Donc, éditez le fichier si le shell grub fait une erreur. Vous pouvez ajouter des commentaires dans le fichier si nécessaire, puisque le shell grub suppose qu'une ligne est un commentaire si elle commence par le caractère #.


Node:Invoquer grub-install, Noeud «Next», Noeud «Previous»:Invoquer le shell grub, Noeud «Up»Top

Invoquer grub-install

Le programme grub-install installe GRUB sur votre disque en utilisant le shell grub (voir Invoquer le shell grub). Vous devez préciser le nom du périphérique sur lequel vous voulez installer GRUB, comme ceci:

grub-install peripherique_d_installaton

Le nom du périphérique peripherique_d_installaton est le nom du périphérique pour l'OS ou pour GRUB.

grub-install accepte les options suivantes:

--help
Affiche un résumé des options et se termine.
--version
Affiche le numéro de version de GRUB et se termine.
--force-lba
Force GRUB à utiliser le mode LBA même si le BIOS est buggé. N'utilisez cette option que si le BIOS ne travaille pas en mode LBA alors qu'il supporte ce mode.
--root-directory=dir
Installe les images de GRUB dans le répertoire dir au lieu du répertoire racine. Cette option est utile quand vous voulez installer GRUB sur une partition séparée ou sur un disque amovible. Voici un exemple d'installation sur une partition de démarrage montée sur /boot:
grub-install --root-directory=/boot '(hd0)'

--grub-shell=file
Utilise file comme étant le shell grub. Vous pouvez ajouter des options arbitraires à file après le nom de fichier, comme ceci:
grub-install --grub-shell="grub --read-only" /dev/fd0

--recheck
Re-vérifie la carte des périphériques, même si /boot/grub/device.map existe déjà. Vous ne devriez utilisez cette option que lorsque vous ajouter/enlevez des disques de votre ordinateur.

Node:Invoquer grub-md5-crypt, Noeud «Next», Noeud «Previous»:Invoquer grub-install, Noeud «Up»Top

Invoquer grub-md5-crypt

Le programme grub-md5-crypt crypte un mot de passe au format MD5. Il ne s'agit que d'une interface au shell grub (voir Invoquer le shell grub). Les mots de passe cryptés par ce programme peuvent être utilisés par la commande password (voir password).

grub-md5-crypt accepte les options suivantes:

--help
Affiche un résumé des options et quitte.
--version
Affiche la version de GRUB et quitte.
--grub-shell=file
Utilise file comme le shell grub.

Node:Invoquer mbchk, Noeud «Next», Noeud «Previous»:Invoquer grub-md5-crypt, Noeud «Up»Top

Invoquer mbchk

Le programme mbchk vérifie le format d'un noyau Multiboot. Nous vous recommandons d'utiliser ce programme avant de démarrer votre propre noyau avec GRUB.

mbchk accepte les options suivantes:

--help
Affiche un résumé des options et quitte.
--version
Affiche la version de GRUB et quitte.
--quiet
Supprime les messages normaux.

Node:FAQ, Noeud «Next», Noeud «Previous»:Invoquer mbchk, Noeud «Up»Top

Questions fréquemment posées

En quoi GNU GRUB diffère-t-il du GRUB original d'Erich ?
GNU GRUB est le successeur du grand GRUB d'Erich. Il ne pouvait plus travailler sur GRUB à cause d'autres tâches, donc les mainteneurs actuels Yoshinori K. Okuji et Gordon Matzigkeit se sont chargés de la maintenance, et ont ouvert le développement pour permettre à tous d'y participer.

Techniquement parlent, GNU GRUB a de nombreuses fonctions qui ne sont pas présentes dans le GRUB original. Par exemple, GNU GRUB peut être installé sur un système UNIX-like (comme le GNU/Hurd) via le shell grub /sbin/grub (ou /usr/sbin/grub sur des systèmes plus anciens), il support le Logical Block Address (LBA) qui résoud le problème des 1024 cylindres, et <TAB> complète un nom de fichier quand il est unique. Évidemment, de nombreuses corrections de bugs ont été réalisées, il est donc recommandé d'utiliser GNU GRUB.

GRUB peut-il démarrer mon système d'exploitation des disques durs de plus de 8GO ?
Cela dépend de votre BIOS et de votre système d'exploitation. Vous devez vous assurer que votre disque est accessible en mode LBA. Généralement, ce paramètre est configurable avec l'utilitaire de configuration du BIOS. Lisez le manuel de votre BIOS pour plus d'information.

Cependant, certains systèmes d'exploitation (comme DOS) ne peuvent pas accéder au grands disques, le problème n'est donc résolu par aucun chargeur. GNU/Hurd et GNU/Linux peuvent sûrement démarrer depuis de tels disques.

Stage2 peut-il se trouver sur une partition au-delà des 1024 cylindres ?
Oui, si votre BIOS supporte le mode LBA.
Comment créer une disquette de démarrage GRUB avec l'interface menu ?
Voici la méthode la plus facile:
  1. Créez un système de fichiers sur votre disquette. Par exemple:
    $ mke2fs /dev/fd0
    
  2. Montez la disquette quelque part, disons /mnt.
  3. Copiez les images de GRUB vers /mnt/boot/grub. Seuls stage1, stage2 et menu.lst sont nécessaires. Vous pouvez ne pas copier les stage1.5s.
  4. Lancez la commande suivante (remplacez /sbin/grub par
    /usr/sbin/grub si vous utilisez un ancien système):
    $ /sbin/grub --batch <<EOT
    root (fd0)
    setup (fd0)
    quit
    EOT
    

Comment désigner une partition ?
Voir Syntaxe des peripheriques.
GRUB ne reconnaît pas ma partition GNU/Hurd.
Je ne sais pas pourquoi, mais les auteurs des programmes FDISK ont assigné le type de partition 0x63 au GNU/Hurd incorrectement. Utilisez donc le type 0x83 si la partition contient un système de fichiers ext2fs, et utilisez le type 0xA5 s'il s'agit d'un système de fichiers ffs, que la partition appartienne au Hurd ou non. Nous utiliserons 0x63 pour le système de fichiers du GNU/Hurd quand il existera.
J'ai installé une version récente des binutils, mais GRUB plante toujours.
Vérifiez la version des binutils avec cette commande:
ld -v

Elle affichera deux versions, mais seule la deuxième est importante. Si la version est identique à celle que vous avez installée, l'installation n'était pas mauvaise.

Bon, essayez:

gcc -Wl,-v 2>&1 | grep "GNU ld"

Si la sortie n'est pas identique avec le résultat précédent, vous devriez préciser l'emplacement des binutils au script configure, comme ceci:

./configure --with-binutils=/usr/local/bin

Si vous suivez les intructions précédentes et GRUB plante toujours, il s'agit probablement d'un bug sérieux dans GRUB. Voir Signaler des bugs.

GRUB se bloque lorsqu'il accède à un disque SCSI.
Vérifiez si vous avez activé le support pour l'extension INT 13 (LBA). Si tel est le cas, désactivez ce support et regardez si GRUB peut maintenant accéder à votre disque SCSI. Cela montrera que votre BIOS SCSI fonctionne mal.

Pour le moment, nous savons que le mode LBA n'est pas fonctionnel avec:

Adaptec AIC-7880

Si vous avez un tel contrôleur SCSI, malheureusement vous ne pouvez pas utiliser le mode LBA, mais GRUB fonctionne toujours correctement avec le mode CHS (et le très connu problème des 1024 cylindres réapparaît).

Attention: En fait, aucune vérification n'a été faite pour savoir s'il s'agissait d'un bug dans le BIOS SCSI ou dans GRUB lui-même. C'est pourquoi il est préférable que vous cherchiez la cause du problème si vous le rencontrez.

Comment faire pour passer une taille de mémoire arbitraire à Linux ?
Passez l'option mem= à votre noyau Linux, comme ceci:
grub> kernel /vmlinuz mem=128M

Vous pouvez passer d'autres options de la même façon. Voir GNU/Linux, pour plus de détails.

J'ai une partition de démarrage à part et GRUB ne la reconnaît pas.
Il s'agit d'une caractéristique souvent signalée comme un bug, mais ce n'en est pas un.

Comme GRUB est un gestionnaire d'amorçage et qu'il ne tourne normalement sous aucun système d'exploitation, il ne connaît pas les points de montage des partitions. Donc si vous avez une partition /boot et que vous installez les images de GRUB dans le répertoire /boot/grub, GRUB les trouve dans le répertoire /grub et non /boot/grub. C'est normal, puisque qu'il n'est pas garanti que tous vos systèmes d'exploitation utilisent la même partition pour /boot.

Il existe plusieurs solutions à cette situation.

  1. Installer GRUB dans le répertoire /boot/boot/grub au lieu de
    /boot/grub. Cela peut sembler affreux mais devrait bien fonctionner.
  2. Créer un lien symbolique avant d'installer GRUB, comme cd /boot && ln -s . boot. Cela ne marche correctement que si le système de fichiers de la partition de démarrage et GRUB supportent les liens symboliques.
  3. Installer GRUB avec la commande install, pour préciser les chemins des images de GRUB. Voici un exemple:
    grub> root (hd0,1)
    grub> install /grub/stage1 d (hd0) /grub/stage2 p /grub/menu.lst
    

Comment désinstaller GRUB de mon disque dur ?
Il n'y a pas de concept de désinstallation pour les chargeurs, car si vous désinstallez un chargeur, il ne restera qu'une machine indémarrable. La seule chose que vous avez à faire est d'écraser GRUB avec un autre chargeur, ce qui installe le chargeur sans désinstaller GRUB.

Par exemple, si vous voulez installer le chargeur de Windows, tapez simplement FDISK /MBR sous Windows. Si vous voulez installer LILO10, lancez /sbin/lilo sous GNU/Linux.

GRUB se bloque lors d'accès aux grands disques IDE.
Si votre disque est plus grand que 32GO, la mise à jour du BIOS de votre carte mère résoudra certainement le problème. Ce bug est bien connu et la plupart des vendeurs devraient fournir des versions corrigées. Par exemple, si vous avez une ASUS-P3BF, la mise à jour du BIOS avec la version V1007beta1 ou plus récente corrigera le problème. Contactez votre vendeur pour plus d'informations.
Pourquoi Linux, FreeBSD, NetBSD, etc. ne deviennent pas compatibles Multiboot ?
Demandez cela aux mainteneurs concernés. Si tous les noyaux libres étaient compatibles Multiboot (voir Top), le mondre serait une utopie...

Node:Obtenir et compiler GRUB, Noeud «Next», Noeud «Previous»:FAQ, Noeud «Up»Top

Comment obtenir et compiler GRUB

Attention: GRUB nécessite les binutils version 2.9.1.0.23 ou plus
récents car l'assembleur GNU a été changé entre les versions 2.9.1
et 2.9.1.0.x pour produire du code machine réel 16bits. Voir
http://sources.redhat.com/binutils/, pour obtenir les informations sur la dernière version.

GRUB est disponible depuis le site d'archivage GNU alpha
ftp://alpha.gnu.org/gnu/grub ou n'importe lequel de ses mirroirs. Le fichier s'appellera grub-version.tar.gz. La version actuelle est 0.92, donc vous devriez télécharger le fichier: ftp://alpha.gnu.org/gnu/grub/grub-0.92.tar.gz

Pour extraire GRUB, utilisez l'instruction:

zcat grub-0.92.tar.gz | tar xvf -

ce qui créera un répertoire appelé grub-0.92 avec toutes les sources. Vous pouvez regarder le fichier INSTALL pour obtenir des instructions détaillées sur la compilation et l'installation de GRUB, mais vous devriez pouvoir ne faire que:

cd grub-0.92
./configure
make install

Ces commandes installeront le shell grub (voir Invoquer le shell grub), le vérificateur Multiboot mbchk (voir Invoquer mbchk), et les images de GRUB. Le manuel sera lui aussi installé.

La toute dernière version est aussi disponible depuis le CVS. Le dépôt est:

:pserver:anoncvs@subversions.gnu.org:/cvsroot/grub

et le module est:

grub

Le mot de passe pour annoncvs est vide. Pour récupérer GRUB, faites donc:

cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub login
Password: <ENTER>
cvs -d :pserver:anoncvs@subversions.gnu.org:/cvsroot/grub co grub

Node:Signaler des bugs, Noeud «Next», Noeud «Previous»:Obtenir et compiler GRUB, Noeud «Up»Top

Signaler des bugs

Voici comment signaler des bugs. Lisez d'abord la liste suivante avant d'envoyer un email à bug-grub@gnu.org:

  1. Lisez tout le manuel, en particuler Voir FAQ.
  2. Envoyez toujours les informations à propos de votre version de GRUB. La version et la configuration sont particulèrement importantes. Si vous avez compilé GRUB, envoyez les options passées au script configure, la version de votre système d'exploitation, ainsi que celles de gcc et des binutils.
  3. Si vous avez des problèmes avec l'installation, dites-nous comment vous avez installé GRUB. N'omettez aucun message d'erreur, s'il y en a. Ne dire que: GRUB se bloque au démarrage n'est pas suffisant.

    Les informations concernant le matériel sont aussi essentielles, particulièrement les géométries et les tables de partitions de vos disques durs, ainsi que la version de votre BIOS.

  4. Si GRUB ne peut pas démarrer votre système d'exploitation, envoyez tout ce qui a été affiché à l'écran. Ne paraphrasez pas l'affichage, comme Tel OS plante avec GRUB alors qu'il démarre correctement avec tel chargeur. Précisez les commandes que vous avez entrées, les messages qu'elles ont retournés, et les informations sur le système d'exploitation, avec la version.
  5. Expliquez ce que vous vouliez faire. Il est très utile de connaître votre but, et en quoi GRUB n'y est pas parvenu.
  6. Si vous pouvez examiner le problème vous-même, faites-le. Cela nous permettra d'avoir plus d'informations sur le problème. Il est encore mieux d'attacher un patch.

    Quand vous ajoutez un patch, créez-le au format diff unifié, et ajoutez une entrée au fichier ChangeLog. Mais, quand vous faites un patch, n'oubliez pas d'expliquer votre problème, pour nous permettre de comprendre à quoi sert votre patch.

  7. Envoyez tout ce qui pourrait avoir un rapport. Comprenez que nous avons souvent besoin de reproduire le même problème. Les informations que vous donnez devraient être suffisantes pour faire la même chose-- N'oubliez pas que nous ne voyons pas directement votre ordinateur. Si vous ne savez pas si vous devez préciser ou non tel point, faites-le! Mieux vaut trop que pas assez, d'autant plus que vous pouvez oublier un point important.

Quand vous avez suivi les instructions précédentes, envoyez un email à bug-grub@gnu.org (en anglais !), et nous essaierons de réparer l'erreur.


Node:Futur, Noeud «Next», Noeud «Previous»:Signaler des bugs, Noeud «Up»Top

Quelle orientation prendra GRUB

Voici quelques idées de ce qui pourrait se passer dans le futur:

Regardez le fichier TODO dans les sources pour plus d'informations.


Node:Index, Noeud «Previous»:Futur, Noeud «Up»Top

Index

Table des matičres


Notes en bas de page

  1. Le chain-loading, ou chargement chaîné est le mécanisme qui permet de charger des systèmes d'exploitation non-supportés en activant un autre chargeur. Il est typiquement utilisé pour démarrer DOS ou Windows.

  2. Il y a quelques cas où le chargement d'un noyau ELF très mal organisé peut prendre plus de temps, mais dans la pratique, cela n'arrive jamais.

  3. LInux LOader, un chargeur que tout le monde utilise, mais que personne n'apprécie.

  4. La partition racine de GRUB ne correspond pas forcément à la partition racine de votre OS; si vous devez préciser une partition racine à votre OS, passez-la en argument à la commande kernel.

  5. Cette étape n'est pas nécessaire pour la plupart des systèmes d'exploitation modernes.

  6. L'utilisation de RARP est déconseillée car le protocole ne fournit que peu d'informations.

  7. Cependant, ce comportement changera dans une version future, d'un manière invisible pour l'utilisateur.

  8. Cette fonction n'est pas encore fonctionnelle pour le second.

  9. Tous deux sont chargés de la même façon, donc nous ne parlerons que de Stage 2 par la suite.

  10. Je n'imagine pas pourquoi vous voudriez faire une chose pareille, quoique.