User Tools

Site Tools


informatique:logiciels:grub

système "boot loader" MBR

Grub

Grub est un boot loader ce qui signifie que c'est un petit programme qui est lancé au démarrage de la machine et qui sert à localiser et lancer le système d'exploitation à proprement parlé.

Dans l'ordre, quand on allume un PC, les étapes suivantes se déroulent :

  • lancement du BIOS, qui vérifie le bon fonctionnement du matériel (Power On Self Test ou POST) et qui bip quand ça va mal.
  • le BIOS lit le MBR (Master Boot Record) qui est le premier secteur du disque dur (les 512 premiers octets), et charge le boot loader qui est contenu dessus. Ce MBR ne peut contenir que quelques information : c'est l'étape 1 (stage 1) du lancement de Grub.
  • l'étape 1 se charge de trouver et de charger le gros du programme de Grub, qui va permettre de lancer l'étape 2.
  • l'étape 2 consiste souvent à afficher le menu Grub, afin de sélectionner le système d'exploitation sur lequel démarrer la machine.
  • lancement de l'OS choisi

Syntaxe de grub

Grub utilise une syntaxe qui suit la logique des partitions Linux. Il identifie un disque dur par hdX, avec X le numéro du disque ; puis il identifie le numéro de la partition sur ce disque. La numérotation commence à 0, comme en langage C. Le tout doit être entouré de parenthèses pour indiquer que ce n'est pas une commande. Par exemple : hd0,0identifie la première partition du premier disque ; (hd1,2) identifie la 3ème partition du 2nd disque, etc…

Grub numérote les disques dans l'ordre sans tenir compte de leur interface (ATA, SATA, SCSI).

Installation éclair

aptitude install grub
mkdir /boot/grub
cp /usr/lib/grub/i386-pc/* /boot/grub
grub-install

NB : i386-pc indique votre architecture. Si vous être en archi 64 bits, modifiez-le en conséquence.

Commandes utiles

On peut les passer dans le fichier de configuration, ou dans le Grub shell. Ce dernier s'obtient en lançant la commande grub (en root) tout simplement.

Ce shell complète les commandes, dispose d'une aide (<tab>) ainsi qu'un doc pour chaque commande (help <cmd>) :

grub> 
 Possible commands are: blocklist boot cat chainloader clear cmp color configfile debug device disp
layapm displaymem dump embed find fstest geometry halt help hide impsprobe initrd install ioprobe k
ernel lock makeactive map md5crypt module modulenounzip pager partnew parttype password pause print
 quit read reboot root rootnoverify savedefault serial setkey setup terminal terminfo testload test
vbe unhide uppermem vbeprobe

grub> help cat
cat: cat FILE
    Print the contents of the file FILE.

Pour voir où est installé grub (ici sur /dev/hda1) :

grub> find /boot/grub/stage1
 (hd0,0)

Pour désigner la partition racine, sur laquelle seront recherchés par défaut les fichiers :

 grub> root (hd0,0)

Pour installer grub sur (hd0) :

 grub> setup (hd0)

Il existe également un programme bash sensé simplifier la procédure d'installation de grub : elle se lance depuis un shell normal (bash par exemple) :

grub-install

Configuration

# defini sur quel OS booter par defaut
default 0

# defini le second choix si le premier default) echoue
fallback 1

Liens

Grub2

Grub 2 est la dernière version de grub, complètement de recodée.

OS par défaut

Pour définir l'OS par défaut au boot, c'est plus compliqué qu'avec grub1 ; pour ma part j'ai choisi de booter par défaut sur le dernier OS utilisé. Pour cela il faut éditer le fichier /etc/default/grub :

#modifier ce paramètre :
GRUB_DEFAULT=saved
 
#et ajouter cette ligne si elle n'existe pas déjà :
GRUB_SAVEDEFAULT=true

Puis on prend en charge la nouvelle configuration :

sudo update-grub
informatique/logiciels/grub.txt · Last modified: 2013/10/14 20:45 by 127.0.0.1