Page suivantePage précédenteTable des matières

3. Partage de l'espace de swap entre Linux et FreeBSD

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. Vous pouvez, si vous voulez, installer FreeBSD avant Linux mais faites attention à l'ordre des partitions dans la tranche FreeBSD.

3.1 Installer et préparer Linux

La première étape est d'installer Linux normalement. Il faut laisser de la place pour la tranche 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 UFS filesystem support (read only) et BSD disklabel (FreeBSD partition tables) support:

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 redémarrez. 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 en état de marche avec le nouveau noyau. Vous voilà prêts à installer FreeBSD.

3.2 Installer FreeBSD

Installez FreeBSD comme cela est décrit dans sa documentation. 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 tranche FreeBSD. Si vous utilisez le nommage par défaut la seconde partition sera le swap. Terminez l'installation de FreeBSD et redémarrez sous Linux en utilisant la disquette de démarrage.

3.3 Utiliser la partition de swap FreeBSD sous Linux

Après avoir redémarré 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 tranche 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 tranche, 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 démarrez 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 de l'espace de swap. Vous devriez aussi redémarrer 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. :-)


Page suivantePage précédenteTable des matières