GRUB
De Diablotins.org.
| GRUB, le système d'amorçage de Linux pour FreeBSD.
|
| ||
| Grub est le gestionnaire de démarrage le plus connu et le plus éprouvé, il peut avantageusement remplace BootEasy de FreeBSD et a déjà remplacé LILO sur les distributions Linux, car il permet d'amorcer sur la quasi totalité des OS connu. Aujourd'hui, il se décline en deux versions grub legacy, l'ancêtre et grub2 ou grub-PC, livré avec le dernier opus de Ubuntu par exemple. |
Sommaire |
Amorcer sur FreeBSD
Par exemple, à partir d'une distribution Ubuntu équipée de grub-PC.
Éditez le fichier /etc/grub.d/40_custom:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
menuentry "FreeBSD, way of shotgun" {
set root=(hd0,1)
chainloader +1
}
menuentry "FreeBSD, boot easy" {
insmod ufs2
set root=(hd0,1,a)
kfreebsd /boot/loader
}
menuentry "FreeBSD, direct boot" {
insmod ufs2
set root=(hd0,1,a)
search --no-floppy --fs-uuid --set 4a86db44195cac47
kfreebsd /boot/kernel/kernel
kfreebsd_loadenv /boot/device.hints
set kFreeBSD.vfs.root.mountfrom=ufs:/dev/ad4s1a
set kFreeBSD.vfs.root.mountfrom.options=rw
}
Notez le «k» de «kfreebsd», requis par les dernières versions de Grub-PC.
La première technique est universelle: C'est un «passe à ton voisin», Grub va laisser la main au chargeur du disque d'à coté...
La deuxième charge l'amorce de FreeBSD et la seconde tente de charger le noyau tout seul, sur le disque /dev/ad4s1a(4).
La ligne «search» est la méthode canonique qui va vérifier le disque requis grâce à son label. Elle n'est de fait, pas nécessaire.
Ensuite, tapez sous Linux:
update-grub2
ou
grub-mkconfig -o /boot/grub/grub.cfg
...pour ceux qui n'ont pas le premier raccourci.
Attention, par défaut, le menu ne s'affiche que si vous gardez la touche «shift» appuyée.
La dernière méthode pose encore un problème, si vous utilisez des “tunable“ dans /boot/loader.conf: ils ne sont pas pris en compte.
Installer grub sur FreeBSD
Dans notre cas nous allons expliquer un dual-boot Win9X/FreeBSD sur deux disque dur IDE, hd0 et hd1 avec sur hd0 une partition Windows FAT32 (hd0,0) et sur hd1 un slice FreeBSD (hd1,0) . si le slice et la partition FAT était sur le même disque IDE ont aurait eut par exemple (hd0,0) et (hd0,1) .
Configuration
Installez simplement le port sysutil/grub
Toutes les commandes jusqu'à la fin seront passé avec l'id (0) root.
Il est impératif que la configuration de GRUB soit dans /boot/grub:
# mkdir /boot/grub # cd /boot/grub
Copiez distfile dans le répertoire :
# cp /usr/local/share/grub/i386-freebsd/* .
Éditez le fichier de configuration du stage 1 /boot/grub/menu.lst pour définir son chargement au démarrage de la machine :
# vi /boot/grub/menu.lst -- default 0 # l'os par défaut, FreeBSD timeout 5 # FreeBSD: index 0 title FreeBSD # titre dans le menu Grub root (hd1,0,a) # localisation : 2eme disque, 1er slice, disklabel a (/) kernel /boot/loader # Le loader de FreeBSD # Windows 98: index 1 title Windows 9x # Le titre root (hd0,0) # 1er disque, 1ere partition makeactive # Rendre la partition active chainloader +1 # Utiliser le boot de Windows
| |
le dernier sysutils/grub2/ est désormais dans les ports. |
Installation sur le MBR
Vous avez la possibilité d'amorcer GRUB sur une disquette. On convient du premier lecteur comme cible.
# cd /boot/grub # dd if=stage1 of=/dev/fd0 bs=512 count=1 # dd if=stage2 of=/dev/fd0 bs=512 seek=1
Si l'on considère que votre disque d'amorce est le disque 0 (le 1er disque), séquence de boot A, C dans le BIOS:
# grub grub> root (hd1,0,a) grub> setup (hd0) grub> quit
C'est fini, relancez la machine:
# reboot

