Node:Top,
Noeud «Next»Introduction,
Noeud «Up»(dir)
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»Convention de nommage,
Noeud «Previous»:Top,
Noeud «Up»Top
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»Historique,
Noeud «Up»Introduction
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»Caracteristiques,
Noeud «Previous»:Apercu,
Noeud «Up»Introduction
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»Role du chargeur,
Noeud «Previous»:Historique,
Noeud «Up»Introduction
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):
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.
Node:Role du chargeur,
Noeud «Previous»:Caracteristiques,
Noeud «Up»Introduction
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»Installation,
Noeud «Previous»:Introduction,
Noeud «Up»Top
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»Demarrage,
Noeud «Previous»:Convention de nommage,
Noeud «Up»Top
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»Installer GRUB nativement,
Noeud «Up»Installation
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»Installer GRUB avec grub-install,
Noeud «Previous»:Creer une disquette de demarrage,
Noeud «Up»Installation
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
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»Configuration,
Noeud «Previous»:Installation,
Noeud «Up»Top
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»Notes specifiques a certains OS,
Noeud «Up»Demarrage
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»Chainage,
Noeud «Up»Methodes generales
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:
root (voir root).
kernel (voir kernel).
module
(voir module) ou modulenounzip (voir modulenounzip).
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
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.
rootnoverify (voir rootnoverify):
grub> rootnoverify (hd0,0)
makeactive5 (voir makeactive):
grub> makeactive
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.
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
Dans cette section, nous allons décrire certains problèmes des systèmes d'exploitation.
Node:GNU/Hurd,
Noeud «Next»GNU/Linux,
Noeud «Up»Notes specifiques a certains OS
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.
find /boot/gnumach peut vous aider
(voir find).
grub> kernel /boot/gnumach root=hd0s1 grub> module /boot/serverboot
boot (voir boot).
Node:GNU/Linux,
Noeud «Next»FreeBSD,
Noeud «Previous»:GNU/Hurd,
Noeud «Up»Notes specifiques a certains OS
Il est relativement facile d'amorcer GNU/Linux depuis GRUB, parce que le processus ressemble à celui d'un OS compatible Multiboot.
find /vmlinuz peut vous aider (voir find).
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.
initrd
(voir initrd) après kernel:
grub> initrd /initrd
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»NetBSD,
Noeud «Previous»:GNU/Linux,
Noeud «Up»Notes specifiques a certains OS
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»OpenBSD,
Noeud «Previous»:FreeBSD,
Noeud «Up»Notes specifiques a certains OS
GRUB peut charger NetBSD au format a.out et ELF directement, suivez ces étapes.
root (voir root).
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
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»DOS/Windows,
Noeud «Previous»:NetBSD,
Noeud «Up»Notes specifiques a certains OS
Le processus de démarrage est exactement le même que pour NetBSD (voir NetBSD).
Node:DOS/Windows,
Noeud «Next»SCO UnixWare,
Noeud «Previous»:OpenBSD,
Noeud «Up»Notes specifiques a certains OS
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
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»Reseau,
Noeud «Previous»:Demarrage,
Noeud «Up»Top
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»Terminal serie,
Noeud «Previous»:Configuration,
Noeud «Up»Top
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»Utilisation sans disque,
Noeud «Up»Reseau
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
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»Menu predefini,
Noeud «Previous»:Reseau,
Noeud «Up»Top
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»Securite,
Noeud «Previous»:Terminal serie,
Noeud «Up»Top
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 :
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»Images,
Noeud «Previous»:Menu predefini,
Noeud «Up»Top
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»Systeme de fichiers,
Noeud «Previous»:Securite,
Noeud «Up»Top
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
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
e2fs_stage1_5
fat_stage1_5
ffs_stage1_5
jfs_stage1_5
minix_stage1_5
reiserfs_stage1_5
vstafs_stage1_5
xfs_stage1_5
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
pxegrub
nbgrub, à l'exception du format.
Node:Systeme de fichiers,
Noeud «Next»Interface,
Noeud «Previous»:Images,
Noeud «Up»Top
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»Syntaxe des noms de fichiers,
Noeud «Up»Systeme de fichiers
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»Syntaxe des listes de blocs,
Noeud «Previous»:Syntaxe des peripheriques,
Noeud «Up»Systeme de 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
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»Commandes,
Noeud «Previous»:Systeme de fichiers,
Noeud «Up»Top
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»Interface menu,
Noeud «Up»Interface
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:
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»Editer une entree du menu,
Noeud «Previous»:Ligne de commande,
Noeud «Up»Interface
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»Le menu cache,
Noeud «Previous»:Interface menu,
Noeud «Up»Interface
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
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»Depannage,
Noeud «Previous»:Interface,
Noeud «Up»Top
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»Commandes generales,
Noeud «Up»Commandes
Les règles suivantes sont appliquées lors de l'analyse du fichier de configuration.
# au début d'une ligne signifie qu'il ne s'agit que d'un
commentaire.
0x, et
n'est pas sensible aux majuscules/minuscules.
Seules les commandes suivantes peuvent être utilisées dans le menu.
Node:default,
Noeud «Next»fallback,
Noeud «Up»Commandes specifiques au menu
| 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 |
Node:fallback,
Noeud «Next»hiddenmenu,
Noeud «Previous»:default,
Noeud «Up»Commandes specifiques au menu
| 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»timeout,
Noeud «Previous»:fallback,
Noeud «Up»Commandes specifiques au menu
| 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»title,
Noeud «Previous»:hiddenmenu,
Noeud «Up»Commandes specifiques au menu
| 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 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»Commandes de la ligne de commande et du menu,
Noeud «Previous»:Commandes specifiques au menu,
Noeud «Up»Commandes
Commandes utilisables dans le menu et dans la ligne de commande.
Node:bootp,
Noeud «Next»color,
Noeud «Up»Commandes generales
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 |
Node:color,
Noeud «Next»device,
Noeud «Previous»:bootp,
Noeud «Up»Commandes generales
| 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:
Seuls les huit premiers noms peuvent être utilisés pour background.
Vous pouvez ajouter le préfixe 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»dhcp,
Noeud «Previous»:color,
Noeud «Up»Commandes generales
| 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»hide,
Noeud «Previous»:device,
Noeud «Up»Commandes generales
| 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 |
Node:hide,
Noeud «Next»ifconfig,
Noeud «Previous»:dhcp,
Noeud «Up»Commandes generales
| 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»pager,
Noeud «Previous»:hide,
Noeud «Up»Commandes generales
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»partnew,
Noeud «Previous»:ifconfig,
Noeud «Up»Commandes generales
| 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»parttype,
Noeud «Previous»:pager,
Noeud «Up»Commandes generales
| 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»password,
Noeud «Previous»:partnew,
Noeud «Up»Commandes generales
| 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»rarp,
Noeud «Previous»:parttype,
Noeud «Up»Commandes generales
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»serial,
Noeud «Previous»:password,
Noeud «Up»Commandes generales
| 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»setkey,
Noeud «Previous»:rarp,
Noeud «Up»Commandes generales
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 Cette commande n'est disponible que si GRUB a été compilé avec le support série. Voir aussi Terminal serie. |
Node:setkey,
Noeud «Next»terminal,
Noeud «Previous»:serial,
Noeud «Up»Commandes generales
| 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:
|
Node:terminal,
Noeud «Next»tftpserver,
Noeud «Previous»:setkey,
Noeud «Up»Commandes generales
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 L'option L'option |
Node:tftpserver,
Noeud «Next»unhide,
Noeud «Previous»:terminal,
Noeud «Up»Commandes generales
| 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
|
Node:unhide,
Noeud «Previous»:tftpserver,
Noeud «Up»Commandes generales
| 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
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»boot,
Noeud «Up»Commandes de la ligne de commande et du menu
| blocklist file | Commande |
| Affiche la notation en liste de blocs du fichier file. Voir Syntaxe des listes de blocs. |
Node:boot,
Noeud «Next»cat,
Noeud «Previous»:blocklist,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»chainloader,
Noeud «Previous»:boot,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»cmp,
Noeud «Previous»:cat,
Noeud «Up»Commandes de la ligne de commande et du menu
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»configfile,
Noeud «Previous»:chainloader,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»debug,
Noeud «Previous»:cmp,
Noeud «Up»Commandes de la ligne de commande et du menu
| configfile file | Commande |
| Charger le fichier de configuration file. |
Node:debug,
Noeud «Next»displayapm,
Noeud «Previous»:configfile,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»displaymem,
Noeud «Previous»:debug,
Noeud «Up»Commandes de la ligne de commande et du menu
| displayapm | Commande |
| Affiche les informations APM du BIOS. |
Node:displaymem,
Noeud «Next»embed,
Noeud «Previous»:displayapm,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»find,
Noeud «Previous»:displaymem,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»fstest,
Noeud «Previous»:embed,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»geometry,
Noeud «Previous»:find,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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
|
Node:geometry,
Noeud «Next»halt,
Noeud «Previous»:fstest,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»help,
Noeud «Previous»:geometry,
Noeud «Up»Commandes de la ligne de commande et du menu
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»impsprobe,
Noeud «Previous»:halt,
Noeud «Up»Commandes de la ligne de commande et du menu
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»initrd,
Noeud «Previous»:help,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»install,
Noeud «Previous»:impsprobe,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»ioprobe,
Noeud «Previous»:initrd,
Noeud «Up»Commandes de la ligne de commande et du menu
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 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
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 Caution3: You must specify the option |
Node:ioprobe,
Noeud «Next»kernel,
Noeud «Previous»:install,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»lock,
Noeud «Previous»:ioprobe,
Noeud «Up»Commandes de la ligne de commande et du menu
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 L'option |
Node:lock,
Noeud «Next»makeactive,
Noeud «Previous»:kernel,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»map,
Noeud «Previous»:lock,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»md5crypt,
Noeud «Previous»:makeactive,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»module,
Noeud «Previous»:map,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»modulenounzip,
Noeud «Previous»:md5crypt,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»pause,
Noeud «Previous»:module,
Noeud «Up»Commandes de la ligne de commande et du menu
| modulenounzip file ... | Commande |
Comme module (voir module), sauf que la décompression
automatique est désactivée.
|
Node:pause,
Noeud «Next»quit,
Noeud «Previous»:modulenounzip,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»reboot,
Noeud «Previous»:pause,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»read,
Noeud «Previous»:quit,
Noeud «Up»Commandes de la ligne de commande et du menu
| reboot | Commande |
| Redémarre l'ordinateur. |
Node:read,
Noeud «Next»root,
Noeud «Previous»:reboot,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»rootnoverify,
Noeud «Previous»:read,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»savedefault,
Noeud «Previous»:root,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»setup,
Noeud «Previous»:rootnoverify,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»testload,
Noeud «Previous»:savedefault,
Noeud «Up»Commandes de la ligne de commande et du menu
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 Les options |
Node:testload,
Noeud «Next»testvbe,
Noeud «Previous»:setup,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»uppermem,
Noeud «Previous»:testload,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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»vbeprobe,
Noeud «Previous»:testvbe,
Noeud «Up»Commandes de la ligne de commande et du menu
| 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 [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»Invoquer le shell grub,
Noeud «Previous»:Commandes,
Noeud «Up»Top
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»Erreurs de Stage1.5,
Noeud «Up»Depannage
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:
Node:Erreurs de Stage1.5,
Noeud «Next»Erreurs de Stage2,
Noeud «Previous»:Erreurs de Stage1,
Noeud «Up»Depannage
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
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):
install). Dans
ce cas, vous devez monter la partition avec l'option -o notail.
Node:Invoquer le shell grub,
Noeud «Next»Invoquer grub-install,
Noeud «Previous»:Depannage,
Noeud «Up»Top
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.
grub
Node:Utilisation basique,
Noeud «Next»Installation sous UNIX,
Noeud «Up»Invoquer le 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
--version
--verbose
--device-map=file
--no-floppy
--device-map est précisé (voir Table de correspondances).
--probe-second-floppy
--config-file=file
/boot/grub/menu.lst. Le format suit la syntaxe normale de GRUB.
Voir Systeme de fichiers, pour plus d'informations.
--boot-drive=drive
--install-partition=par
--no-config-file
--no-curses
--batch
--no-config-file --no-curses.
--read-only
--hold
Node:Installation sous UNIX,
Noeud «Next»Table de correspondances,
Noeud «Previous»:Utilisation basique,
Noeud «Up»Invoquer le shell grub
grubLa 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:
grub.
grub.
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
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»Invoquer grub-md5-crypt,
Noeud «Previous»:Invoquer le shell grub,
Noeud «Up»Top
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
--version
--force-lba
--root-directory=dir
/boot:
grub-install --root-directory=/boot '(hd0)'
--grub-shell=file
grub-install --grub-shell="grub --read-only" /dev/fd0
--recheck
/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»Invoquer mbchk,
Noeud «Previous»:Invoquer grub-install,
Noeud «Up»Top
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
--version
--grub-shell=file
Node:Invoquer mbchk,
Noeud «Next»FAQ,
Noeud «Previous»:Invoquer grub-md5-crypt,
Noeud «Up»Top
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
--version
--quiet
Node:FAQ,
Noeud «Next»Obtenir et compiler GRUB,
Noeud «Previous»:Invoquer mbchk,
Noeud «Up»Top
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.
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.
$ mke2fs /dev/fd0
/mnt.
/mnt/boot/grub. Seuls stage1,
stage2 et menu.lst sont nécessaires. Vous pouvez ne pas
copier les stage1.5s.
/sbin/grub par/usr/sbin/grub si vous utilisez un ancien système):
$ /sbin/grub --batch <<EOT root (fd0) setup (fd0) quit EOT
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.
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.
Pour le moment, nous savons que le mode LBA n'est pas fonctionnel avec:
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.
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.
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.
/boot/boot/grub au lieu de/boot/grub. Cela peut sembler affreux mais devrait bien fonctionner.
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.
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
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.
Node:Obtenir et compiler GRUB,
Noeud «Next»Signaler des bugs,
Noeud «Previous»:FAQ,
Noeud «Up»Top
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»Futur,
Noeud «Previous»:Obtenir et compiler GRUB,
Noeud «Up»Top
Voici comment signaler des bugs. Lisez d'abord la liste suivante avant d'envoyer un email à bug-grub@gnu.org:
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.
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.
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.
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»Index,
Noeud «Previous»:Signaler des bugs,
Noeud «Up»Top
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
blocklist: blocklist
boot: boot
bootp: bootp
cat: cat
chainloader: chainloader
cmp: cmp
color: color
configfile: configfile
debug: debug
default: default
device: device
dhcp: dhcp
displayapm: displayapm
displaymem: displaymem
embed: embed
fallback: fallback
find: find
fstest: fstest
geometry: geometry
halt: halt
help: help
hiddenmenu: hiddenmenu
hide: hide
ifconfig: ifconfig
impsprobe: impsprobe
initrd: initrd
install: install
ioprobe: ioprobe
kernel: kernel
lock: lock
makeactive: makeactive
map: map
md5crypt: md5crypt
module: module
modulenounzip: modulenounzip
pager: pager
partnew: partnew
parttype: parttype
password: password
pause: pause
quit: quit
rarp: rarp
read: read
reboot: reboot
root: root
rootnoverify: rootnoverify
savedefault: savedefault
serial: serial
setkey: setkey
setup: setup
terminal: terminal
testload: testload
testvbe: testvbe
tftpserver: tftpserver
timeout: timeout
title: title
unhide: unhide
uppermem: uppermem
vbeprobe: vbeprobe
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.
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.
LInux LOader, un chargeur que tout le monde utilise, mais que personne n'apprécie.
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.
Cette étape n'est pas nécessaire pour la plupart des systèmes d'exploitation modernes.
L'utilisation de RARP est déconseillée car le protocole ne fournit que peu d'informations.
Cependant, ce comportement changera dans une version future, d'un manière invisible pour l'utilisateur.
Cette fonction n'est pas encore fonctionnelle pour le second.
Tous deux sont chargés de la même façon, donc nous ne parlerons que de Stage 2 par la suite.
Je n'imagine pas pourquoi vous voudriez faire une chose pareille, quoique.