Dual boot entre FreeBSD et openSUSE

Je n'utilise pas de BIOS UEFI.

Cette page va détailler les différentes étapes pour mettre en place un dual boot entre FreeBSD et openSUSE. La table des partitions est du type MBR (Master Boot Record), cela veut dire que le nombre de partitions primaires est limité à quatre.

Je parts du principe, que la partie consacrée à Linux est fonctionnelle, il est installé sur trois partitions primaire (swap, /, et /home).

L'installation de FreeBSD est relativement simple, à l'étape du partitionnement, il ne faut pas choisir l'installation sur la totalité du disque dur, mais une partie du disque (l'espace qui reste sur le disque dur).

Au redémarrage, le GRUB n'est pas visible, il est « remplacé » par le chargeur de démarrage de FreeBSD. Nous allons installé sysutils/grub2.

# pkg install grub2

############################################################
To install GRUB on the master boot record of your hard drive
use 'grub-install <drive-to-install>' command.

A typical menu entry in /boot/grub/grub.cfg for FreeBSD:
menuentry "FreeBSD" {
        set root="(hd0,msdos1,bsd1)"
        kfreebsd /boot/loader
}
Or use grub-mkconfig to create the config file.
#############################################################

Ensuite nous allons mettre en place le bootloader :

Sous FreeBSD le disque se nomme /dev/ada0 (j'ai qu'un seul disque).

# grub-install /dev/ada0

Le fichier /usr/local/etc/grub.d/10_kfreebsd est déjà remplie. Nous allons modifier le fichier 40_custom, c'est lui qui nous permettra de rajouter une entrée dans GRUB.

Il faut connaître la partition racine qui contient Linux.

# gpart show ada0
=>        63  1953525105  ada0  MBR  (932G)
          63        1985        - free -  (993K)
        2048     2103296     1  linux-swap  (1.0G)
     2105344    52434944     2  linux-data  (25G)
    54540288   260044800     3  linux-data  (124G)
   314585088          57        - free -  (29K)
   314585145  1638939960     4  freebsd  [active]  (782G)
  1953525105          63        - free -  (32K)

On constate que la deuxième partition, /dev/ada0s2 correspond à la racine. Donc on rajoute ces lignes dans le fichier

 menuentry "Linux" {
        set root=(hd0,2)
        chainloader +1
}

On peut désormais créer le fichier de configuration grub.cfg comme mentionné après l'installation.

# grub-mkconfig -o //boot/grub/grub.cfg

Cette commande, nous renvoie une erreur 1), il suffit d'apporter les correctifs, et tout rentre dans l'ordre.

On redémarre l'ordinateur est on teste les différentes entrées, pour constater que tout est fonctionnel.

1)
En fait certaines tabulations sont mal interprétées.