Multiboot avec GRUB2
Par olivier le dimanche 14 septembre 2014, 16:42 - Documentation - Lien permanent
Dans ce billet, nous allons voir comment mettre en place rapidement un dual boot à partir de FreeBSD.
Ce week-end, j'ai profité d'un peu de temps pour mettre à jour la partition qui héberge Linux sur mon disque dur. N'ayant plus trop de préférence pour ce système je suis parti sur OpenSUSE [1]
Mon disque dur (320G) est divisé de cette manière (du côté de Linux) :
/
, partition primaire (34G)swap
, partition primaire (1G)/home
, partition primaire (196G)- le reste du disque n'est pas formaté
Après les quelques réglages, et la réinstallation des sauvegardes, OpenSUSE est pleinement fonctionnelle.
Durant l'installation de FreeBSD, j'ai opté pour un partitionnement guidé, afin de bien choisir la bonne partition (je ne souhaite pas utilisé la totalité du disque dur).
Sous FreeBSD (il s'agit de la version 10), le disque dur s'appelle ada0
(0 représentant le premier disque). Donc la quatrième partition se nomme ada0s4
.
Les slices, sont les suivants :
ada0s4a
,/
(5G)ada0s4b
,swap
(1G)ada0s4d
,/var
(3G)ada0s4e
,/usr
(54G)ada0s4f
,/home
L'installation s'est parfaitement déroulée, après le reboot, j'ai uniquement le chargeur de démarrage de FreeBSD. Pas de panique, les partitions Linux n'ont pas été touchées. Donc j'installe GRUB sous FreeBSD.
Comme Subversion n'est pas encore dans le système de base, il faut l'installer. J'utilise pour cela portsnap
portsnap fetch extract
Ensuite, make -C /usr/ports/devel/subversion make install clean
.
Puis GRUB, make -C /usr/ports/sysutils/grub2 make install clean
.
Pour mettre en place le bootloader, il faut procéder par étapes :
grub-install /dev/ada0
Je donne aucune caractéristique concernant la table des partitions, car j'utilise le type MBR.
Si c'est en GPT :
grub-install --modules=part_gpt /dev/ada0
L'étape suivante consiste à lancer grub-mkconfig
sans option. Le fichier /usr/local/etc/grub.d/10_kfreebsd
est rempli.
Enfin, on peut créer le fichier /boot/grb/grub.cfg
:
grub-mkconf -o /boot/grub/grub.cfg
Cette commande, nous renvoie une erreur, les tabulations ne sont pas interprétées [2] Après correction tout rentre dans l'ordre.
Pour tester que tout fonctionne, on peut redémarrer la machine.
Maintenant, nous pouvons ajouter une nouvelle entrée. Pour cela, on édite le fichier /usr/local/etc/grub.d/40_custom
.
menuentry "Linux" { set root=(hd0,1) chainloader +1 }
On regénère le fichier /boot/grub/grub.cfg
, avec la commande grub-mkconf -o /boot/grub/grub.cfg
.
Si tout se passe bien, une nouvelle entrée apparaît.