Cette section décrit comment j'ai pu utiliser la même partition de swap pour Linux et FreeBSD. Il peut y avoir d'autres façons d'obtenir le même résultat. Ceci est basé sur Red Hat Linux 4.1 et 4.2 (noyau Linux 2.0.29 et 2.0.30) et FreeBSD 2.2.2. Vous pouvez, si vous voulez, installer FreeBSD avant Linux mais faites attention à l'ordre des partitions dans la slice FreeBSD.
La première étape est d'installer Linux normalement. Il faut laisser de la place pour la slice FreeBSD sur le disque dur. Il n'est pas nécessaire de créer une partition de swap Linux, mais si vous en voulez une, placez-la dans l'espace que vous voulez allouer à FreeBSD. De cette façon, vous pourrez plus tard effacer la partition de swap de Linux et récupérer l'espace pour FreeBSD.
Quand Linux est installé, il faut compiler un nouveau noyau. Lisez le HOWTO du noyau Linux si vous ne savez pas faire. Il faut inclure le support pour UFS file system et BSD disklabel (FreeBSD partition tables).
UFS filesystem support (read only) (CONFIG_UFS_FS) [N/y/m/?] y
BSD disklabel (FreeBSD partition tables) support (CONFIG_BSD_DISKLABEL) [N/y/?]
(NEW) y
Installez le nouveau noyau et reboutez. Enlevez toutes les lignes contenant
le mot swap dans votre fichier /etc/fstab
si vous avez créé
une partition de swap pour Linux. Soyez bien sûr d'avoir une disquette
de démarrage Linux avec le nouveau noyau et qui marche. Vous êtes
maintenant prêts à installer FreeBSD.
Installez FreeBSD comme cela est décrit dans la documentation
FreeBSD. Supprimez la partition de swap Linux si vous en avez fait une (vous
pouvez utiliser le programme fdisk
de FreeBSD). Faites attention à
l'ordre des partitions dans la slice FreeBSD. Si vous utilisez le nommage
par défaut la seconde partition sera le swap. Terminez l'installation de
FreeBSD et reboutez sous Linux en utilisant la disquette de démarrage.
Après avoir rebouté Linux, lancez dmesg
, ce qui devrait donner quelque
chose comme ça :
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
Cela signifie que /dev/hda4
est votre slice FreeBSD, alors que
/dev/hda5
, /dev/hda6
, /dev/hda7
et
/dev/hda8
sont les partitions FreeBSD. Si votre partition de swap
est la seconde partition de la slice, c'est /dev/hda6
.
Il faut placer la ligne suivante dans votre fichier /etc/fstab
pour
valider la partition de swap :
/dev/hda6 none swap sw 0 0
Alors que FreeBSD peut utiliser n'importe quelle partition comme espace de
swap, Linux a besoin d'une signature spéciale dans cette partition. Cette
signature est créée par mkswap
. FreeBSD la détruit quand il utilise la
partition de swap partagée, il faudra donc lancer mkswap
à chaque fois
que vous boutez sous Linux. Pour faire ceci automagiquement, il faut trouver
le script qui lance swapon
au démarrage. Dans Red Hat Linux c'est
/etc/rc.d/rc.sysinit
. Dans Debian GNU/Linux, c'est
/etc/init.d/boot
. Placez la ligne suivante dans ce fichier juste
avant swapon -a
:
awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
Ceci lancera mkswap
sur toutes les partitions de swap définies dans
/etc/fstab
à chaque démarrage sauf si elles sont commentées (ont
``#'' comme premier caractère de la ligne).
Sous Linux, lancez free
pour vérifier la taille du swap. Vous devriez
aussi rebouter sous FreeBSD et vous assurer que tout marche comme prévu. Si
ce n'est pas le cas, vous avez probablement utilisé la mauvaise partition
pour le swap (depuis Linux). La seule solution est de réinstaller FreeBSD et
réessayer. On apprend beaucoup par l'expérience. :-)
Chapitre suivant, Chapitre Précédent
Table des matières de ce chapitre, Table des matières générale
Début du document, Début de ce chapitre