Pour créer une disquette de démarrage de GNU GRUB, placez les fichiers stage1 et stage2 respectivement sur les premier et deuxième blocs de la disquette :
# apt-get install grub # mkdir /boot/grub # cd /usr/lib/grub/i386-pc # cp stage? *stage1.5 /boot/grub # cd /boot/grub # 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
Redémarrez maintenant avec cette disquette afin de tester la configuration.
Au prompt du GRUB-shell9, positionnez la partition racine :
grub> root (hd0,0)
Remarque : Ma partion /boot est sur /dev/hda1, la commande find /vmlinuz
permet de déterminer la bonne partition.
Chargez le noyau et bootez cette image :
grub> kernel /vmlinuz-2.4.22-k7-bunny root=/dev/hda3 grub> boot
Une fois cette étape franchie (avec succès), on peut maintenant s'atteler à la configuaration de GNU GRUB.
GNU GRUB possède un fichier de configuration lu à chaque démarrage. Ce fichier s'appelle /boot/grub/menu.lst qui, dans mon cas, est de la forme :
timeout 30 default 0 fallback 1 # Voici l'entree 0 title Debian GNU/Linux Woody 3.0r1 root (hd0,0) kernel /vmlinuz-2.4.22-k7-bunny root=/dev/hda3 # L'entree 1 title Debian GNU/Linux Woody 3.0r1 failsafe root (hd0,0) kernel /vmlinuz-2.4.22 root=/dev/hda3 failsafe # L'entree 2 title Debian GNU/Linux Knoppix 3.3 root (hd0,9) kernel /boot/vmlinuz-2.4.22-xfs root=/dev/hda10 initrd /boot/initrd.gz # L'entree 3 title Floppy root (fd0) chainloader +1 # L'entree 4 (si Windows sur 2eme disque) title Windows map (hd0) (hd1) map (hd1) (hd0) root (hd0,0) makeactive chainloader +1 # L'entree 5 (si GNU/Hurd sur 2eme disque) title Debian GNU/Hurd K2 root (hd1,0) kernel /boot/gnumach root=/dev/hd1s0 module /boot/serverboot
Pour installer GNU GRUB sur l'ordinateur, redémarrez l'ordinateur
avec la disquette de boot.
Comme d'habitude, définissez d'abord le disque racine vers le répertoire de démarrage :
grub> root (hd0,0)
Installez ensuite GNU GRUB dans le MBR :
grub> setup (hd0)
Et rebootez à partir du disque dur :
grub> reboot
Tout comme Lilo, GNU GRUB a la possibilité d'être personnalisable en plaçant une image
de fond au menu de démarrage ; Cependant il lui faut pour cela rajouter le support
des splashimage.
Téléchargez alors et installez la version testing de GNU GRUB :
# wget ftp.fr.debian.org/.../grub_0.93+cvs20031008-1_i386.deb # dpkg -i grub_0.93+cvs20031008-1_i386.deb
Maintenant convertissez une image d'un format quelconque vers un format acceptable par GNU GRUB, grâce à imagemagick :
# mkdir -p /usr/share/images # convert -geometry 640x480 -colors 14 image.png /usr/share/images/image.xpm # cd /usr/share/images && gzip image.xpm
Rajoutez à présent l'image dans le fichier /boot/grub/menu.lst :
splashimage=(hd0,4)/share/grub/images/image.xpm.gz
Rq: Chez moi /usr est monté sur la partition /dev/hda5.
Lors de l'installation d'un noyau sous Debian, le chargeur par défaut Lilo
et automatiquement mis à jour ; Et ben il est possible d'en faire autant
avec GNU GRUB !
Une fois le paquet GNU GRUB installé, entrez la commande :
# update-grub
Éditez ensuite le fichier /boot/grub/menu.lst et modifiez y les lignes #groot et #kopt :
## DO NOT UNCOMMENT THEM, Just edit them to your needs ## default kernel options # kopt=root=/dev/hda3 ## default grub root device # groot=(hd0,0) ...
Relancez une dernière fois update-grub. Et insèrez ensuite les lignes suivantes dans le fichier /etc/kernel-img.conf :
postinst_hook=/sbin/update-grub postrm_hook=/sbin/update-grub
Dorénavant update-grub sera lancé lors de l'installation d'un nouveau noyau, il scannera le répertoire /boot et écrira une nouvelle entrée dans le fichier menu.lst.