nkbj@image.dk
fdisk
) avant de lire ce document. Les
trucs ont �t� test�s avec FreeBSD 2.2.2 mais devraient �tre valables pour
les versions plus r�centes. N'h�sitez pas � me m�ler si vous avez des
commentaires, questions ou suggestions concernant ce document. J'aimerais
aussi avoir des infos des gens ayant utilis� Linux avec NetBSD ou OpenBSD.
FreeBSD est un syst�me d'exploitation libre de la famille Unix, tout comme Linux. La principale diff�rence r�side dans le fait que, au contraire de Linux qui a �t� �crit � partir de rien, FreeBSD est bas� sur 4.4BSD-lite, les parties librement distribuables de 4.4BSD (Berkeley Software Distribution). Ce fait am�ne certaines personnes � sugg�rer que FreeBSD est plus proche du ``vrai'' UNIX® que Linux. FreeBSD tourne uniquement sur les plateformes PC Intel (i386 et suivants), des ports sur les plateformes DEC Alpha et Sun Sparc sont en cours. NetBSD et OpenBSD sont similaires � FreeBSD, et tournent tous deux sur plusieurs plateformes. Les exigences mat�rielles de tous ces syst�mes *BSD sont � peu pr�s les m�mes que celles de Linux.
Le d�veloppement de FreeBSD est g�r� diff�rement de celui de Linux. Une �quipe (le noyau) de d�veloppeurs sert d'arbitre et dirige le projet. Les gros changements sont d'abord discut�s sur les listes de discussion (mailing lists). Le projet FreeBSD comprend deux arbres de d�veloppement (comme Linux) : ``-current'' (courant) et ``-stable''. Le d�veloppement des nouvelles fonctionnalit�s est fait dans ``-current'', alors que les �volutions des versions ``-stable'' sont limit�es � des corrections de bogues ou � de nouvelles fonctionnalit�s minitieusement test�es.
FreeBSD peut �tre utilis� et (re-)distribu� librement comme Linux. La majorit� du syst�me est plac�e sous le copyright BSD, le reste est sous la licence GNU GPL ou d'autres licences open-source.
Linux et FreeBSD nomment les disques durs et les partitions selon deux principes diff�rents. Cette section d�crit les principales diff�rences entre les deux syst�mes. En fait le principe de nommage de FreeBSD est une variation du style de nommage BSD traditionnel adapt� aux partitions de PC. Il est donc tr�s proche sur ce point des autres syst�mes Unix bas�s sur BSD tels que NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS et Solaris.
FreeBSD a besoin d'une entr�e dans la table de partition primaire de votre
disque dur. Cette partition primaire est appel�e ``tranche'' (slice en
anglais) dans la terminologie FreeBSD. Il utilise ensuite le programme
disklabel
pour cr�er plusieurs partitions logiques dans cette partition
primaire. Ces partitions logiques sont appel�es ``partitions'' dans la
terminologie FreeBSD. Ce concept est similaire � la fa�on dont Linux (et
DOS) manipule les partitions logiques dans une partition �tendue. Vous ne
pouvez pas installer FreeBSD dans une partition �tendue cr��e par Linux (ou
DOS). Notez que le programme fdisk
de Linux n'affiche pas les
partitions d'une tranche FreeBSD depuis le menu principal, mais il peut
afficher l'information de nommage de disque (disklabel) BSD si on
utilise la commande 'b'. Le r�sultat sera quelque chose comme ceci
(/dev/hda4
est la tranche FreeBSD) :
# fdisk /dev/hda
Command (m for help): p
Disk /dev/hda: 64 heads, 63 sectors, 621 cylinders
Units = cylinders of 4032 * 512 bytes
Device Boot Begin Start End Blocks Id System
/dev/hda1 * 1 1 27 54400+ 83 Linux native
/dev/hda2 28 28 55 56448 83 Linux native
/dev/hda3 56 56 403 701568 83 Linux native
/dev/hda4 404 404 621 439488 a5 BSD/386
Command (m for help): b
Reading disklabel of /dev/hda4 at sector 1624897.
BSD disklabel command (m for help): p
8 partitions:
# size offset fstype [fsize bsize cpg]
a: 64512 1624896 4.2BSD 0 0 0 # (Cyl. 404 - 419)
b: 104832 1689408 swap # (Cyl. 420 - 445)
c: 878976 1624896 unused 0 0 # (Cyl. 404 - 621)
e: 64512 1794240 4.2BSD 0 0 0 # (Cyl. 446 - 461)
f: 645120 1858752 4.2BSD 0 0 0 # (Cyl. 462 - 621)
BSD disklabel command (m for help): q
#
Les lettres `a'...`f' dans la premi�re colonne sont les m�mes �tiquettes (labels) que celles utilis�es plus bas dans l'exemple d'une tranche FreeBSD. Il y a trois partitions sp�ciales dans le jargon FreeBSD. La lettre `a' d�signe la partition racine, `b' la partition de swap tandis que `c' d�signe la tranche en entier. Voyez la documentation pour plus d'information sur la fa�on ``standard'' d'affecter ces lettres aux diff�rents types de partitions.
Les disques durs sont nomm�s des fa�ons suivantes sous Linux et FreeBSD :
Linux FreeBSD
Premier disque IDE /dev/hda /dev/wd0
Second disque IDE /dev/hdb /dev/wd1
Premier disque SCSI /dev/sda /dev/sd0
Second disque SCSI /dev/sdb /dev/sd1
Les partitions (tranches FreeBSD) d'un disque IDE sont nomm�es de la fa�on
suivante (/dev/hda
est utilis� comme exemple) :
Linux FreeBSD
Premi�re partition primaire /dev/hda1 /dev/wd0s1
Deuxi�me partition primaire /dev/hda2 /dev/wd0s2
Troisi�me partition primaire /dev/hda3 /dev/wd0s3
Quatri�me partition primaire /dev/hda4 /dev/wd0s4
Les partitions de ma tranche FreeBSD sont nomm�es de la fa�on suivante. Ceci
est le nommage par d�faut, qu'il est possible de changer en faisant une
installation personnalis�e de FreeBSD (/dev/hda4
est la tranche
FreeBSD) :
Nom Linux Nom FreeBSD Point de montage FreeBSD
/dev/hda5 /dev/wd0s4a /
/dev/hda6 /dev/wd0s4b swap
/dev/hda7 /dev/wd0s4e /var
/dev/hda8 /dev/wd0s4f /usr
Si vous lancez dmesg
sous Linux vous verrez (le noyau linux doit avoir
�t� compil� avec le support UFS. Voyez la section
Installer et pr�parer Linux):
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
Si vous avez install� FreeBSD dans la tranche /dev/sd1s3
(/dev/sdb3
dans le jargon Linux), et que /dev/sdb2
est
une partition Linux �tendue contenant deux partitions logiques
(/dev/sdb5
et /dev/sdb6
), l'exemple pr�c�dent ressemblera
plut�t � ceci :
Nom Linux Nom FreeBSD Point de montage FreeBSD
/dev/sdb7 /dev/sd1s3a /
/dev/sdb8 /dev/sd1s3b swap
/dev/sdb9 /dev/sd1s3e /var
/dev/sdb10 /dev/sd1s3f /usr
La commande dmesg
montrera ceci sous la forme
Partition check:
sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >
Si vous avez une partition �tendue Linux apr�s votre tranche FreeBSD,
vous allez avoir des probl�mes. La plupart des noyaux des disquettes
d'installation Linux ne contiennent pas le support UFS, ils ne
reconna�tront donc pas les partitions FreeBSD � l'int�rieur de la tranche. Ce
qui qui aurait d� �tre vu comme (/dev/hda3
est la tranche FreeBSD et
/dev/hda4
est la partition �tendue Linux)
Partition check:
hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >
est vu comme:
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
Cela peut r�sulter en un mauvais assignement de p�riph�rique et provoquer des pertes de donn�es. Je conseille de toujours mettre votre tranche FreeBSD apr�s toutes les partitions �tendues Linux, et de ne changer aucune partition logique dans vos partitions �tendues Linux une fois que FreeBSD est install� !
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.
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.
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.
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. :-)
Vous pouvez facilement d�marrer FreeBSD avec LILO. N'installez pas le
chargeur de FreeBSD (Booteasy
) si vous voulez utiliser LILO. Ajoutez
les lignes suivantes � votre fichier /etc/lilo.conf
et relancez
lilo
(la tranche FreeBSD �tant /dev/hda4
) :
other=/dev/hda4
table=/dev/hda
label=FreeBSD
Si vous avez install� FreeBSD sur le second disque SCSI, utilisez quelque
chose du type (la tranche FreeBSD �tant /dev/sdb2
):
other=/dev/sdb2
table=/dev/sdb
loader=/boot/chain.b
label=FreeBSD
Malheureusement le support pour UFS dans les noyaux Linux 2.0.xx est bogu�. Quand on essaye de monter un syst�me de fichiers UFS, on obtient juste des messages d'erreur (le syst�me de fichiers est mont�, mais on ne peut rien y lire ou �crire). Ce probl�me a �t� r�solu dans les versions r�centes du noyau (depuis 2.1.87).
Il y a une autre version du support du syst�me de fichiers UFS pour les
noyaux Linux 2.0.xx (xx <= 30) �
SunSite. Son nom
est U2FS et la version actuelle est u2fs-0.4.3.tar.gz
. Une
version d'U2FS (ufs-0.4.4.tar.gz
) pour Linux 2.0.31 et suivants
(2.0.xx, pas 2.1.xx) se trouve sur
ce site avec d'autres informations sur U2FS (et UFS.)
Maintenant il faut construire un nouveau noyau avec le support pour U2FS file system et BSD disklabel. Voyez la section Installer et pr�parer Linux pour plus d'informations. Vous pouvez laissez tomber le support pour UFS file system quand vous utilisez U2FS file system.
Quand vous avez install� le nouveau noyau, vous pouvez monter les syst�mes de fichiers UFS (toutes les partitions dans la tranche FreeBSD sauf la partition de swap) avec une commande du type :
mount -t u2fs /dev/hda8 /mnt
Il faudra utiliser une commande du type :
mount -t ufs /dev/hda8 /mnt
si vous utilisez un noyau 2.1.87 ou sup�rieur. � partir de la version 2.1.112 il faut ajouter � la commande l'option -o ufstype=44bsd
:
mount -t ufs -o ufstype=44bsd /dev/hda8 /mnt
Le support UFS (et U2FS) est en lecture seule. Donc, vous pouvez lire depuis les syst�mes de fichiers UFS mais pas y �crire. Un pilote UFS exp�rimental en lecture/�criture a remplac� le pilote en lecture seule � partir du noyau 2.1.112. L'�criture dans des partitions FreeBSD est support�e depuis la version 2.1.127.
Pour monter des syst�mes de fichiers ext2fs sous FreeBSD, il faut construire un nouveau noyau avec le support pour ext2fs. Lisez le manuel FreeBSD en anglais ou en fran�ais si vous ne savez pas faire. Placez la ligne
options "EXT2FS"
dans votre fichier de configuration du noyau pour le nouveau noyau.
Quand vous avez d�marr� avec le nouveau noyau, vous pouvez monter un syst�me de fichiers ext2fs avec une commande comme :
mount -t ext2fs /dev/wd0s3 /mnt
� cause d'une bogue dans FreeBSD 2.2.8 et pr�c�dents vous devrez d�monter
tous les syst�mes de fichiers ext2fs avant d'arr�ter (shutdown)
FreeBSD. Si vous arr�tez FreeBSD avec un syst�me de fichiers ext2fs mont�,
FreeBSD ne peut pas faire le sync
sur les syst�mes de fichiers
UFS. Cela r�sultera en un fsck
au prochain d�marrage de FreeBSD. Vous pouvez arranger �a en pla�ant la ligne:
umount -a -t ext2fsdans le fichier
/etc/rc.shutdown
. Cette bogue a �t� corrig�e dans
FreeBSD-3.x.
Le paquetage iBCS
permet d'ex�cuter des binaires FreeBSD sous Linux,
mais il est vieux et non maintenu. Je n'arrive pas � le faire marcher. Si
vous avez eu plus de r�ussite que moi, merci de m'en informer.
FreeBSD a la capacit� d'ex�cuter des binaires Linux, dans les deux formats a.out et ELF. Il faut proc�der en trois �tapes :
/etc/rc.conf
et changer
linux_enable="NO"
en
linux_enable="YES"
et red�marrer. Une autre fa�on de charger le support des binaires Linux est
d'ex�cuter la commande /usr/bin/linux
. Vous n'aurez pas �
red�marrer, et le support ne sera pas syst�matiquement charg� (gain de
m�moire). N'oubliez pas d'ajouter la ligne
options COMPAT_LINUXau fichier de configuration du noyau FreeBSD si vous compilez un nouveau noyau.
linux_lib-2.4.tgz
(il y a peut �tre des versions plus
r�centes). Lancez la commande
pkg_add <rep_paquetage>/linux_lib-2.4.tgz
pour installer le paquetage. <rep_paquetage> est le
r�pertoire o� se trouve le paquetage.
Vous pouvez aussi le charger depuis le r�seau par :
pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgzou en relan�ant
/stand/sysinstall
. Entrez ``Configure'', ``Packages'' et utilisez les menus. Si vous ex�cutez des binaires Linux statiquement li�s, ex�cutez la commande suivante :
brandelf -t Linux <nom_du_binaire_linux_statiquement_li�>
J'ai ex�cut� avec succ�s les versions Linux d'Applixware 4.3 et de Netscape 3.01 (toutes deux en format ELF) sous FreeBSD 2.2.2 en utilisant cette m�thode (oui, je sais qu'il existe une version FreeBSD de Netscape 4). Les versions Linux d'acroread et StarOffice 3 et 4 marchent bien sous FreeBSD. StarOffice 5 d�pend des threads natives Linux et ne marche pas sous FreeBSD. Lisez la documentation de FreeBSD pour plus d'informations � ce sujet.
La derni�re version de ce mini-HOWTO peut �tre trouv�e sur ma page web en plusieurs formats (y compris SGML et PostScript). La version fran�aise peut �tre trouv�e sur celle du traducteur. Ce document a �t� traduit en Japonais par M. Teruyoshi Fujiwara comme partie du projet JF.
Quelques articles sur la diff�rence entre Linux et FreeBSD se trouvent ici.
Vous pouvez trouver plus d'informations sur FreeBSD (et rapatrier tout le syst�me) � l'url FreeBSD Inc.. Vous pouvez aussi acheter le syst�me sur CDROM chez Walnut Creek CDROM (leurs serveurs sont sous FreeBSD).
Le HOWTO du noyau Linux fait partie du Projet de Documentation Linux.
Merci aux membres du groupe d'utilisateurs *BSD du Danemark pour avoir r�pondu aux questions d'un nul en FreeBSD, � M. Takeshi Okazaki pour avoir port� � ma connaissance l'existence de U2FS et � M. David O'Brien pour ses pr�cieuses suggestions.
Les marques appartiennent � leurs propri�taires.
Bien qu'ils pensent que les informations donn�es dans ce document sont correctes, les auteurs n'accepteront aucune responsabilit� quant au contenu de ce document. Utilisez les trucs et exemples � vos risques et p�ril.
Copyright © 1997-2000 par Niels Kristian Bech Jensen. Ce document peut �tre distribu� uniquement sous les termes et conditions de la licence LDP tels que donn�s � http://www.linuxdoc.org/COPYRIGHT.html.
La version fran�aise est ©opyright Christophe Deleuze et peut �tre distribu�e selon les m�mes termes.