Table of Contents
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,0
identifie 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
- HOWTO Grub en français : http://www.citic74.fr/linux/howto/grub-howto.html
- Grub, gestionnaire d'amorçage : http://doc.ubuntu-fr.org/grub#installer_grub_dans_le_mbr
- Installation et configuration de GRUB : http://www.linux-france.org/article/sys/chargeurs/ix86/grub/installation.html
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