système "boot loader" MBR
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 :
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).
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.
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
# defini sur quel OS booter par defaut default 0 # defini le second choix si le premier default) echoue fallback 1
Grub 2 est la dernière version de grub, complètement de recodée.
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