  Le mini-HOWTO Linux+FreeBSD
  Niels Kristian Bech Jensen, nkbj@image.dk
  v1.4, 23 Janvier 1998

  _T_r_a_d_u_c_t_i_o_n        _r_e_a_l_i_s_e_e        _p_a_r        _C_h_r_i_s_t_o_p_h_e        _D_e_l_e_u_z_e
  _(_C_h_r_i_s_t_o_p_h_e_._D_e_l_e_u_z_e_@_l_i_p_6_._f_r_) _4 _f_e_v_r_i_e_r _1_9_9_8.  Ce document decrit  com-
  ment  utiliser  Linux  et  FreeBSD  sur  le  meme systeme. Il presente
  FreeBSD et decrit comment les deux systemes  peuvent  inter-agir,  par
  exemple  en partageant la zone de swap. Il faut probablement avoir une
  certaine experience de Linux  et  du  partitionnement  de  disque  dur
  (fdisk)  avant  de lire ce document. N'hesitez pas a me mailer si vous
  avez des commentaires, questions ou suggestions  concernant  ce  docu-
  ment.  J'aimerais  aussi  avoir des infos des gens ayant utilise Linux
  avec NetBSD ou OpenBSD.

  11..  QQuu''eesstt--ccee qquuee FFrreeeeBBSSDD ??

  FreeBSD est un systeme d'exploitation de la famille Unix,  tout  comme
  Linux.  La principale difference reside dans le fait que, au contraire
  de Linux qui a ete ecrit a  partir  de  rien,  FreeBSD  est  base  sur
  4.4BSD-lite,  les  parties librement distribuables de 4.4BSD (Berkeley
  Software Distribution). Ce fait amene certaines personnes  a  declarer
  que  FreeBSD  est  plus proche du ``vrai'' UNIX(TM) que Linux. FreeBSD
  tourne uniquement sur les plateformes PC Intel (i386 et suivants),  un
  port  sur  la  plateforme  DEC  Alpha est en discussion. Les exigences
  materielles de FreeBSD sont a peu pres les memes que celles de  Linux.

  Le developpement de FreeBSD est plus ``ferme'' que celui de Linux. Une
  equipe (le noyau) de developpeurs prend les decisions  importantes  du
  projet.  Les  gros  changements  sont d'abord discutes sur les mailing
  lists. Le projet FreeBSD comprend deux arbres de developpement  (comme
  Linux)  :  _`_`_-_c_u_r_r_e_n_t_'_' (courant) et _`_`_-_s_t_a_b_l_e_'_'. Le developpement des
  nouvelles fonctionnalites est fait dans ``-current'',  alors  que  les
  evolutions   des   versions   ``-stable''   sont  essentiellement  des
  corrections de bogues.

  FreeBSD peut etre utilise et (re-)distribue librement comme Linux.  La
  majorite  du  systeme  est  placee sous le copyright BSD, le reste est
  sous la licence GNU GPL ou la GNU LGPL.

  Vous pouvez trouver plus d'informations sur FreeBSD (et rapatrier tout
  le  systeme)  a  l'url  FreeBSD  Inc.  <http://www.freebsd.org/>.  Les
  dernieres versions ``-stable'' et des instantanes (_s_n_a_p_s_h_o_t_s) du  code
  de  la  version  ``-current''  sont  vendus sur CDROM par Walnut Creek
  CDROM <http://www.cdrom.com/> (leurs serveurs ftp  et  web  sont  sous
  FreeBSD).

  22..  NNoommmmaaggee ddeess ddiissqquueess dduurrss ssoouuss FFrreeeeBBSSDD

  Linux et FreeBSD nomment les disques durs et les partitions selon deux
  principes differents. Cette section decrit les principales differences
  entre les deux systemes.

  22..11..  ````ppaarrttiittiioonnss'''' eett ````sslliicceess'''' ssoouuss FFrreeeeBBSSDD

  FreeBSD  n'a  besoin  que  d'une  entree  dans  la  table de partition
  primaire de votre disque dur. Cette  partition  primaire  est  appelee
  ``slice''  (en francais tranche de gateau ou part de pizza :-) dans la
  terminologie FreeBSD. Il utilise ensuite le programme  disklabel  pour
  creer plusieurs partitions logiques dans cette partition primaire. Ces
  partitions logiques sont appelees _`_`_p_a_r_t_i_t_i_o_n_s_'_' dans la  terminologie
  FreeBSD.  Ce  concept  est  similaire  a  la facon dont Linux (et DOS)
  manipule les partitions logiques dans une partition etendue. Notez que
  le  programme fdisk de Linux ne peut pas afficher les partitions d'une
  slice  FreeBSD  depuis  le  menu  principal,  mais  il  peut  afficher
  l'information  de  nommage  de disque (_d_i_s_k_l_a_b_e_l) BSD si on utilise la
  commande 'b'. Le resultat sera quelque chose comme ceci (/dev/hda4 est
  la slice 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  premiere  colonne  sont  les  memes
  etiquettes (_l_a_b_e_l_s) que celles utilisees plus bas dans l'exemple d'une
  slice  FreeBSD.  La lettre `b' designe la partition de swap tandis que
  `c' designe la slice en  entier.  Voyez  la  documentation  pour  plus
  d'informations  sur  la  facon ``standard'' d'affecter ces lettres aux
  differents types de partition.

  22..22..  NNoommmmaaggee ddeess ddiissqquueess eett ddeess ppaarrttiittiioonnss ssoouuss LLiinnuuxx eett FFrreeeeBBSSDD

  Les  disques  durs  sont  nommes  des  facons  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 (slices FreeBSD) d'un disque sont nommees de  la  facon
  suivante (/dev/hda est utilise comme exemple) :

                                  Linux           FreeBSD
  Premiere partition primaire     /hda1           /dev/wd0s1
  Deuxieme partition primaire     /dev/hda2       /dev/wd0s2
  Troisieme partition primaire    /dev/hda3       /dev/wd0s3
  Quatrieme partition primaire    /dev/hda4       /dev/wd0s4

  Les  partitions  d'une slice FreeBSD sont nommees de la facon suivante
  (/dev/hda4 est la slice FreeBSD) :

       Linux label     FreeBSD label   Point de montage par defaut 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
  ete  compile  avec  le  support  UUFFSS.  Voyez la section ``Installer et
  preparer Linux''):

       Partition check:
        hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >

  Si vous  avez  installe  FreeBSD  dans  la  slice  /dev/sdb3,  et  que
  /dev/sdb2  est  une  partition Linux etendue contenant deux partitions
  logiques (/dev/sdb5 et  /dev/sdb6),  l'exemple  precedent  ressemblera
  plutot a ceci :

       Nom Linux       Nom FreeBSD     Point de montage par defaut 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 etendue Linux _a_p_r_e_s votre slice FreeBSD,
  vous allez avoir des problemes. La plupart des noyaux  des  disquettes
  d'installation  Linux  ne  contiennent  pas  le  support  UUFFSS,  ils ne
  reconnaitront donc pas les partitions  FreeBSD  a  l'interieur  de  la
  slice.  Ce  qui  donnera  donc  (/dev/hda3  est  la  slice  FreeBSD et
  /dev/hda4 est la partition etendue Linux)

  Partition check:
   hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >

  is seen as:

       Partition check:
        hda: hda1 hda2 hda3 hda4 < hda5 hda6 >

  Cela peut resulter  en  un  mauvais  assignement  de  peripherique  et
  provoquer des pertes de donnees. Je conseille de _t_o_u_j_o_u_r_s mettre votre
  slice FreeBSD apres toutes les partitions etendues  Linux,  et  de  ne
  changer  aucune  partition  logique dans vos partitions etendues Linux
  une fois que FreeBSD est installe.

  33..  PPaarrttaaggee ddee ll''eessppaaccee ddee sswwaapp eennttrree LLiinnuuxx eett FFrreeeeBBSSDD

  Cette section decrit comment j'ai pu utiliser  la  meme  partition  de
  swap  pour Linux et FreeBSD. Il peut y avoir d'autres facons d'obtenir
  le meme resultat. Ceci est base 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  a  l'ordre  des
  partitions dans la slice FreeBSD.

  33..11..  IInnssttaalllleerr eett pprreeppaarreerr LLiinnuuxx

  La  premiere  etape est d'installer Linux normalement. Il faut laisser
  de la place pour la slice FreeBSD sur le  disque  dur.  Il  n'est  pas
  necessaire  de  creer  une  partition  de  swap Linux, mais si vous en
  voulez une, placez-la dans l'espace que vous voulez allouer a FreeBSD.
  De cette facon, vous pourrez plus tard effacer la partition de swap de
  Linux et recuperer l'espace pour FreeBSD.

  Quand Linux est installe, il faut compiler un nouveau noyau. Lisez  le
  HHOOWWTTOO  dduu  nnooyyaauu  LLiinnuuxx si vous ne savez pas faire. Il _f_a_u_t inclure le
  support pour UUFFSS ffiillee  ssyysstteemm  et  BBSSDD  ddiisskkllaabbeell  ((FFrreeeeBBSSDD  ppaarrttiittiioonn
  ttaabblleess)).

       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 _s_w_a_p dans votre fichier /etc/fstab si vous avez  cree
  une partition de swap pour Linux. _S_o_y_e_z _b_i_e_n _s_u_r _d_'_a_v_o_i_r _u_n_e _d_i_s_q_u_e_t_t_e
  _d_e _d_e_m_a_r_r_a_g_e _L_i_n_u_x _a_v_e_c _l_e _n_o_u_v_e_a_u _n_o_y_a_u  _e_t  _q_u_i  _m_a_r_c_h_e_.  Vous  etes
  maintenant prets a installer FreeBSD.

  33..22..  IInnssttaalllleerr FFrreeeeBBSSDD

  Installez FreeBSD comme cela est decrit 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 a
  l'ordre des partitions dans la slice  FreeBSD.  Si  vous  utilisez  le
  nommage  par  defaut  la  seconde  partition  sera  le  swap. Terminez
  l'installation de FreeBSD et  reboutez  sous  Linux  _e_n  _u_t_i_l_i_s_a_n_t  _l_a
  _d_i_s_q_u_e_t_t_e _d_e _d_e_m_a_r_r_a_g_e.

  33..33..  UUttiilliisseerr llaa ppaarrttiittiioonn ddee sswwaapp FFrreeeeBBSSDD ssoouuss LLiinnuuxx

  Apres avoir reboute Linux, lancez dmesg, ce qui devrait donner quelque
  chose comme ca :

       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 speciale dans cette
  partition. Cette signature est creee par mkswap.  FreeBSD  la  detruit
  quand  il utilise la partition de swap partagee, il faudra donc lancer
  mkswap a chaque fois que vous  boutez  sous  Linux.  Pour  faire  ceci
  automagiquement,  il  faut  trouver  le  script  qui  lance  swapon au
  demarrage. 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 _a_v_a_n_t swapon -a :

       awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab

  Ceci lancera mkswap sur toutes les partitions de  swap  definies  dans
  /etc/fstab a chaque demarrage sauf si elles sont commentees (ont ``#''
  comme premier caractere de la ligne).

  Sous Linux, lancez free pour verifier la taille du swap. Vous  devriez
  aussi  rebouter  sous  FreeBSD  et  vous assurer que tout marche comme
  prevu. Si ce n'est pas le  cas,  vous  avez  probablement  utilise  la
  mauvaise  partition pour le swap (depuis Linux). La seule solution est
  de  reinstaller  FreeBSD  et  reessayer.  On  apprend   beaucoup   par
  l'experience. :-)
  44..  BBoouutteerr FFrreeeeBBSSDD aavveecc LLIILLOO

  Vous  pouvez  facilement  bouter FreeBSD avec LILO. N'installez pas le
  chargeur de FreeBSD (Booteasy) si vous voulez utiliser  LILO.  Ajoutez
  les  lignes  suivantes a votre fichier /etc/lilo.conf et relancez lilo
  (la slice FreeBSD etant /dev/hda4) :

       other=/dev/hda4
               table=/dev/hda
               label=FreeBSD

  Si vous avez installe FreeBSD sur  le  second  disque  SCSI,  utilisez
  quelque chose du type (la slice FreeBSD etant /dev/sdb2):

       other=/dev/sdb2
               table=/dev/sdb
               loader=/boot/chain.b
               label=FreeBSD

  55..  MMoonntteerr lleess ssyysstteemmeess ddee ffiicchhiieerrss

  55..11..  MMoonntteerr uunn ssyysstteemmee ddee ffiicchhiieerrss UUFFSS ssoouuss LLiinnuuxx

  Malheureusement  le  support  pour  UFS dans le noyau Linux est bogue.
  Quand on essaye de monter un systeme de fichiers UFS, on obtient juste
  des  messages  d'erreur  (le systeme de fichiers est monte, mais on ne
  peut rien y lire ou ecrire).

  Cependant, il y a une nouvelle version (ALPHA) du support  du  systeme
  de  fichiers  UFS  pour  les  noyaux Linux 2.0.xx (xx <= 30) a SunSite
  <ftp://sunsite.unc.edu/pub/Linux/ALPHA/ufs/>. Son nom est UU22FFSS  et  la
  version  actuelle est u2fs-0.4.3.tar.gz. UU22FFSS s'installe de la maniere
  suivante (en supposant que u2fs-0.4.3.tar.gz est place dans /usr/src):

       cd /usr/src
       tar xvzf u2fs-0.4.3.tar.gz
       patch -p0 -E < u2fs-0.4.3.patch

  Les  versions  de  UU22FFSS  pour  les  noyaux  Linux  2.0.31  et suivants
  (u2fs-0.4.4.tar.gz) et pour les derniers noyaux 2.1.xx se trouvent sur
  ce site <http://www.image.dk/~nkbj/u2fs/>

  Maintenant  il  faut  construire un nouveau noyau avec le support pour
  UU22FFSS ffiillee ssyysstteemm et BBSSDD ddiisskkllaabbeell. Voyez  la  section  ``Installer  et
  preparer  Linux'' pour plus d'informations. Vous pouvez laissez tomber
  le support pour UUFFSS ffiillee ssyysstteemm quand vous utilisez UU22FFSS ffiillee  ssyysstteemm.

  Quand  vous  avez  installe  le  nouveau noyau, vous pouvez monter les
  systemes de fichiers UFS (toutes les partitions dans la slice  FreeBSD
  sauf la partition de swap) avec une commande du type :
       mount -t u2fs /dev/hda8 /mnt

  Le support UFS est en lecture seule. Donc, vous pouvez lire depuis les
  systemes de fichiers UFS mais pas y ecrire.

  55..22..  MMoonntteerr ddeess ssyysstteemmeess ddee ffiicchhiieerrss eexxtt22ffss ssoouuss FFrreeeeBBSSDD

  Pour monter des systemes de fichiers  ext2fs  sous  FreeBSD,  il  faut
  construire  un  nouveau  noyau  avec  le support pour ext2fs. Lisez la
  documentation FreeBSD 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 boute avec le nouveau noyau,  vous  pouvez  monter  un
  systeme de fichiers ext2fs avec une commande comme :

       mount -t ext2fs /dev/wd0s3 /mnt

  Notez  que  vous  ne  pouvez  pas monter de systeme de fichiers ext2fs
  d'une partition etendue depuis FreeBSD.

  A cause d'une  bogue  dans  FreeBSD  vous  devrez  demonter  tous  les
  systemes  de  fichiers  ext2fs  _a_v_a_n_t d'arreter (shutdown) FreeBSD. Si
  vous arretez FreeBSD avec un systeme de fichiers ext2fs monte, FreeBSD
  ne  peut  pas  faire  le  sync  sur les systemes de fichiers UFS. Cela
  resultera en un fsck au prochain demarrage de FreeBSD. Cette  bogue  a
  ete corrigee dans les versions de developpement ``-current''.

  66..  EExxeeccuutteerr ddeess bbiinnaaiirreess ````eettrraannggeerrss''''

  66..11..  EExxeeccuutteerr ddeess bbiinnaaiirreess FFrreeeeBBSSDD ssoouuss LLiinnuuxx

  Le  paquetage  iBCS permet d'executer des binaires FreeBSD sous Linux,
  mais il est vieux et non maintenu. Je n'arrive pas a le faire marcher.
  Si vous avez eu plus de reussite que moi, merci de m'en informer.

  66..22..  EExxeeccuutteerr ddeess bbiinnaaiirreess LLiinnuuxx ssoouuss FFrreeeeBBSSDD

  FreeBSD  a  la  capacite  d'executer des binaires Linux, dans les deux
  formats a.out et ELF. Il faut proceder en trois etapes :

  1. Il faut valider  la  compatibilite  Linux.  Pour  ce  faire,  (pour
     FreeBSD  2.2.2  ---  les  details  peuvent  changer  avec  d'autres
     versions) il faut editer votre fichier /etc/rc/conf et changer

        linux_enable="NO"

  en

       linux_enable="YES"

  2. Il faut  installer  les  bibliotheques  partagees  de  Linux.  Pour
     FreeBSD    2.2.2,   elles   sont   incluses   dans   le   paquetage
     linux_lib-2.4.tgz (il y a peut etre  maintenant  une  version  plus
     recente). Lancez la commande

        pkg_add <rep_paquetage>/linux_lib-2.4.tgz

  pour  installer  le paquetage. <rep_paquetage> est le repertoire ou le
  paquetage est place.

  3. Installez les  programmes  Linux  que  vous  voulez  executer.  Les
     programmes  peuvent  etre  installes  aussi  bien sur un systeme de
     fichiers UFS que ext2fs. Voir la section ``Monter des  systemes  de
     fichiers  ext2fs  sous  FreeBSD''  pour  plus d'informations sur la
     facon d'utiliser des systemes de fichiers ext2fs sous FreeBSD.

  J'ai execute avec succes 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 methode (oui, je sais qu'il y a une version FreeBSD de
  Netscape   4).   Lisez   la   documentation   de   FreeBSD  pour  plus
  d'informations a ce sujet.

  77..  RReeffeerreenncceess eett aauuttrreess ddooccuummeennttss dd''iinntteerreett

  La derniere version de ce mini-HOWTO peut etre trouvee sur ma page web
  <http://www.image.dk/~nkbj/>  en  plusieurs formats (y compris SGML et
  PostScript). La version francaise  peut  etre  trouvee  sur  celle  du
  traducteur    <http://www-rp.lip6.fr/~deleuze/HOWTOS/lfbsd.html>.   Ce
  document a ete traduit en Japonais par  M.  Teruyoshi  Fujiwara  comme
  partie du projet JF <ftp://jf.linux.or.jp/pub/JF/other-formats/>.

  Le  guide  et  la  FAQ  FreeBSD  sont distribues avec FreeBSD. On peut
  egalement les trouver a  FreeBSD  Inc.  <http://www.freebsd.org/>.  Ce
  site contient aussi beaucoup d'autres informations sur FreeBSD.

  Le  HOWTO  du noyau Linux fait partie du Projet de Documentation Linux
  <http://sunsite.unc.edu/LDP/>.

  88..  RReemmeerrcciieemmeennttss eett ccooppyyrriigghhtt

  Merci  aux  membres  du  groupe   d'utilisateur   *BSD   du   Danemark
  <http://hotel.prosa.dk/bsd-dk/>  pour avoir repondu aux questions d'un
  nul en FreeBSD  et  a  M.  Takeshi  Okazaki  pour  avoir  porte  a  ma
  connaissance l'existence de UU22FFSS.

  88..11..  DDiissccllaaiimmeerr

  Bien qu'ils pensent que les informations donnees dans ce document sont
  correctes, les auteurs n'accepteront aucune  responsabilite  quant  au
  contenu  de  ce document. Utilisez les trucs et exemples a vos risques
  et peril.

  88..22..  CCooppyyrriigghhtt

  Copyright (c) 1997, 1998 par Niels Kristian Bech Jensen.  Ce  document
  peut  etre  distribue  uniquement  sous les termes et conditions de la
  licence    LDP    tels    que    donnes    a    the    LDP     license
  <http://sunsite.unc.edu/LDP/LICENSE.html>.

  La  version  francaise est (c)opyright Christophe Deleuze et peut etre
  distribuee selon les memes termes.

