Léa-Linux & amis :   LinuxFR   GCU-Squad   Zarb.Org   GNU
Grub


GRUB : The GRand Unified Bootloader

GRUB : The GRand Unified Bootloader
par fraazz
Visitez la nébuleuse du Crabe

Qu'est-ce que GRUB ?

GRUB est un chargeur de démarrage à  l'instar de LILO. Il est extrêmement flexible et peut charger un système sans enregistrer la position physique du noyau sur le disque. Vous pouvez lancer un noyau simplement en précisant son nom de fichier et le disque (et la partition) sur lequel il réside. Pour ce faire, vous pouvez utiliser l'interface ligne de commande ou l'interface menu. Il est inutile de relancer GRUB après une modification de sa configuration. Toute modification du fichier de configuration /boot/grub/menu.lst est immédiatement prise en compte. Rappelons enfin que Linux peut être installé sur n'importe quelle partition.

Conventions de numérotation

Avec GRUB la numérotation des disques et partitions est différente de ce que vous avez pu voir par ailleurs. GRUB nécessite que le nom du périphérique soit entre parenthèses.

Important : GRUB compte à  partir de zéro.

  1. premier disque : (hd0)
  2. lecteur de disquette : (fd0)
  3. second disque, troisième partition : (hd1,2)
  4. première partition logique du premier disque : (hd0,4)
  5. second disque, partition BSD 'a' : (hd1,a)

GRUB n'effectue aucune distinction entre les disques IDE et SCSI. N'oubliez pas que les partitions étendues sont nommées (hdx,4) et ce, même si vous avez moins de quatre partitions primaires.

Comment spécifier un fichier ? (hd0,0)/vmlinuz

Installation de GRUB

GRUB s'installe comme n'importe quel autre logiciel. Une fois installé sur votre disque dur, vous pouvez le démarrer avec la commande :

$ grub

Au démarrage de GRUB, vous obtenez un prompt (le shell GRUB) qui intègre un interpréteur de commande avec tabulation:

grub>

Pour afficher la liste des commandes, appuyer sur TAB, pour connaître l'utilisation d'une commande :

grub>help commande

Vous pouvez également créez une disquette de démarrage GRUB.Pour ce faire, copiez les fichiers /usr/share/grub/i386-pc/stage1 (image utilisée pour lancer GRUB) et /usr/share/grub/i386-pc/stage2 (image noyau de GRUB) sur les blocs respectifs 1 et 2 de la disquette :

# 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

Appelé depuis le système ou démarré à  partir d'une disquette, vous accédez au shell GRUB :

grub> root (hd0,0)

indique le disque et la partition contenant le noyau à  démarrer.

grub> setup (hd0)

cette commande installe GRUB sur le MBR du premier disque.

grub> setup (hd0,0)

et celle-ci sur le secteur de démarrage de la première partition du premier disque. Si vous installez GRUB sur une partition ou un disque autre que le premier vous devez le chaîner avec un autre chargeur de démarrage.

grub> quit

Charger un OS directement

GRUB peut démarrer tout OS supportant le multiboot (inclus *BSD). Comment ?

  1. indiquer le disque et la partition o๠réside l'OS, commande : root
    grub> root (hd0,0)
  2. charger l'image du noyau, commande : kernel
    grub> kernel file
  3. charger les modules (facultatif), commande : module
    grub> module file
  4. lancer le démarrage, commande : boot
    grub> boot

Des paramètres peuvent être passés au noyau, à  ajouter après la commande kernel.

Chaîner un OS

GRUB peut démarrer tout OS dont le noyau n'est pas supporté (ex. MS Windows 95) par chaînage. Comment ?

  1. indiquer le disque et la partition ou réside l'OS, commande : rootnoverify
    grub> rootnoverify (hd0,0)
  2. activer la partition, commande : makeactive
    grub> makeactive
  3. charger le chargeur tiers, commande : chainloader
    grub> chainloader +1
  4. lancer le démarrage, commande : boot
    grub> boot

Si MS Windows n'est pas installé sur le premier disque, vous devrez utiliser la technique du swapping disque qui consiste à  le leurrer en lui faisant croire qu'il est bien sur le premier disque.

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

Cette technique fonctionne si MS Windows utilise le BIOS pour accéder aux disques, mais peut échouer s'il en est autrement.

Si plusieurs systèmes MS Windows sont utilisés sur le même disque, vous devrez utiliser les commandes hide et unhide.

Exemples de fichiers de configuration

Le fichier de configuration de GRUB est : /boot/grub/menu.lst

Démarrer Linux

title GNU/Linux
kernel (hd1,0)/vmlinuz root=/dev/hdb1

Démarrer MS Windows

title MS Windows
rootnoverify (hd0,0)
makeactive
chainloader +1

Démarrer MS Windows (disque 2 / partition 2)

title MS Windows
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,1)
makeactive
chainloader +1

Démarrer MS Windows (seconde mouture installée sur le 1er disque)

title MS Windows
unhide (hd0,0)  #la première partition est masquée
hide (hd0,1)  #la seconde partition est vue ou démasquée
rootnoverify (hd0,0)
makeactive
chainloader +1

Démarrer FreeBSD

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

Linux, /boot/grub/menu.lst généré par anaconda RH 8.0 puis modifié :

default=0  #démarre la première entrée par défaut
timeout=10  #démarrage automatique après 10 secondes
splashimage=(hd0,0)/boot/grub/splash.xpm.gz
password --md5 $ki47DRy2a1quIitvskl745sFRsm
title Red Hat Linux (2.4.18-19.8.0)
root (hd0,0)
kernel /boot/vmlinuz-2.4.18-19.8.0 ro root=LABEL=/ hdd=ide-scsi hdc=ide-scsi
initrd /boot/initrd-2.4.18-19.8.0.img

Sécurité

Vous pouvez protéger l'accès à votre chargeur de démarrage à l'aide d'un mot de passe crypté.

Lancer le shell GRUB (su to root) :

# grub
grub> md5crypt

entrez votre mot de passe :
Password: **********
Encrypted: $ki47DRy2a1quIitvskl745sFRsm

puis, copiez le mot de passe crypté dans votre fichier de configuration /boot/grub/menu.lst :

password --md5 $ki47DRy2a1quIitvskl745sFRsm

L'argument password peut être utilisé pour restreindre certaines entrées; dans ce cas il est inséré juste sous la ligne "title" à démarrer.

Restauration de Grub

... en cas d'écrasement par, par exemple, une installation de Windows.

Il arrive, si vous réinstallez windows sur le même disque dur que votre installation de Linux, que celui-ci écrase le master boot record qui charge directement la partition windows au lieu de passer par Grub ou Lilo, je ne sais pas pour les autres distributions (je suppose que cela doit être plus ou moins semblable) mais en ce qui concerne la mandriva 2006, il suffit de :

  1. booter avec le DVD ou 1er CD
  2. appuyer sur F1 pour les options avancées
  3. comme le texte vous le dit : taper "rescue"
  4. puis un utilitaire se lance, appuyer sur Entrée dans la partie Rescue Bootloader
  5. 3 fois Entrée aux questions qu'ils vous posent (il n'est pas interdit de les lire...)
  6. rebooter l'ordinateur

Et le tour est joué

Pour en savoir plus (beaucoup plus) sur GRUB



@ Retour à la rubrique Administration système

Cette page est issue de la documentation 'pré-wiki' de Léa a été convertie avec HTML::WikiConverter. Elle fut créée par franco le 02/02/2002.

Copyright

© 02/02/2002 fraazz

Creative Commons License
Creative Commons Attribution iconCreative Commons Share Alike iconCreative Commons Noncommercial
Ce document est publié sous licence Creative Commons
Attribution, Partage à l'identique, Contexte non commercial 2.0 :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
Affichages
(Redirigé depuis Admin-admin boot-grub)

Serveur hébergé par ST-Hebergement et Lost-Oasis / IRC hébergé par FreeNode / NS secondaire hébergé par XName
Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons CC-BY-SA