Dans la série je ne sais pas quoi faire le week-end, j’ai testé pour vous Grub2. Pour ceux qui ne savent pas, c’est le petit soft qui permet de démarrer votre machine, le mystérieux boot loader qui n’a rien d’effrayant. La version 2 permet d’avoir quelques fonctions gadgets histoire d’épater vos amis.
C’est quoi
GRand Unified Bootloader, c’est le boot loader: un petit programme qui se loge dans le premier secteur du disque dur est qui permet de choisir l’OS sur lequel vous voulez démarrer. Dans les temps anciens, lilo permettait de faire cela: mais les temps changent et les besoins en souplesse ont pris le dessus.
La première version permettait déjà pas mal de choses:
- rechercher un fichier de boot (ext2/ext3/reiserfs)
- passer en mode graphique
- mettre des paramètres au kernel
- démarrer différents OS
La version 2
Dans la version 2 l’équipe de Dev a ajouté la notion de module pour permettre de charger les différentes fonctionnalités. Cela permet de charger divers systèmes de fichiers différents de votre ext4.
Cela permet aussi de charger des drivers VESEA pour afficher des images 65000 couleurs, des fonts sympas … L’équipe a aussi pensé à une notion de script avancée (loop, tests, variables, …)
Tous les plus sont aussi des moins … en toute logique la segmentation est bonne pour pouvoir charger différents modules. Mais cela complique l’affaire car il faut connaitre les éléments nécessaires pour utiliser les diverses fonctionnalités. Heureusement que les “packageurs” maîtrisent les fichiers de configuration.
Le test
Une bonne vieille clef usb fera l’affaire.
Test de boot et hop, éclatez vous sans abimer votre machine.
Compilez les sources dans le prefix que vous souhaitez.
mkfs.ext2 /dev/sdf1
./grub-install --root-directory=/media/disk/ '(hd1)'
Il faut ensuite faire un fichier de configuration qui va bien pour booter.
set default=0
set timeout=20
set root=(hd0,1)
if font /boot/ascii.pff; then
set gfxmode=640x480
insmod gfxterm
insmod vbe
if terminal_output gfxterm ; then true ; else
terminal gfxterm
fi
fi
insmod tga
if background_image /boot/Lake_mapourika_NZ.tga; then
true
else
set menu_color_normal=cyan/blue
set menu_color_highlight=white/blue
fi
if terminal_output gfxterm ; then true ; else
terminal gfxterm
fi
menuentry "Gentoo GNU/Linux" {
set root=(hd1,1)
linux /boot/vmlinuz root=/dev/sda2 quiet
}
menuentry "other" {
set root=(hd1,1)
chainloader +1
}
Si vous voulez utiliser le mode graphique il faut avoir un fichier de font pour que vous puissiez voir le texte (ascii.pff)
Un reboot sur la clef usb et le miracle devrait fonctionner…
Si cela vous plait … il suffit d’installer grub sur hd0
/!\ Attention, vous pouvez tout casser, et la seule solution sera le CD de rescue pour booter votre système
Dominique DERRIER

Leave a Reply