The Linux+FreeBSD mini-HOWTO
  Niels Kristian Bech Jensen, nkbj@image.dk
  v1.10, 15 gennaio 1999
  Questo documento descrive come usare Linux e FreeBSD sullo stesso sis
  tema. Introduce FreeBSD e illustra come i due sistemi operativi pos
  sano cooperare, es. condividendo l'area di swap. Prima di leggere
  questo documento dovreste avere un po' di esperienza con Linux o
  FreeBSD e sul partizionamento di un disco (fdisk). I suggerimenti che
  trovate qui sono stati testati usando FreeBSD 2.2.2 ma dovrebbero
  essere validi anche per le nuove versioni. Non esitate a inviarmi un
  messaggio e-mail se avete commenti, domande o suggerimenti riguardo
  questo documento. Mi piacerebbe anche avere contatti con persone che
  hanno esperienza nell'uso di Linux insieme a NetBSD e OpenBSD.
  1.  Che cos'è FreeBSD?
  FreeBSD  è un sistema operativo Unix-like
  libero simile a Linux. La differenza maggiore è che, mentre il kernel
  di Linux è stato scritto ex-novo, FreeBSD è basato sulle parti
  gratuite e ridistribuibili di 4.4BSD (Berkeley Software Distribution)
  conosciuto come 4.4BSD-lite. Questo fatto può condurre certe persone a
  pensare che FreeBSD sia più vicino ad essere un ``vero'' UNIX®
  rispetto a Linux. FreeBSD gira solo su piattaforma Intel PC (i386 e
  superiori); i porting su piattaforma DEC Alpha e Sun Sparc sono
  attualmente in lavorazione. NetBSD  e OpenBSD
   sono simili a FreeBSD, e ambedue girano su
  più piattaforme. Le richieste hardware per tutti questi sistemi *BSD
  sono simili a quelle per Linux.
  Lo sviluppo di FreeBSD è gestito in modo diverso rispetto allo
  sviluppo di Linux. Un gruppo ristretto di sviluppatori serve come
  arbitrato e centro direzionale per il progetto. I grossi cambiamenti
  vengono prima discussi sulle mailing list. Il progetto FreeBSD ha due
  diramazioni di sviluppo (tipo Linux): ``-CURRENT'' e ``-STABLE''. La
  parte ``-CURRENT'' è quella dove si sviluppano le novità. Lo sviluppo
  nella parte ``-STABLE'' è ristretta alla correzione dei bug e ad
  alcuni test accurati di nuove funzionalità.
  FreeBSD può essere usato e (ri-)distribuito liberamente come Linux. La
  maggior parte del sistema è realizzato sotto il copyright BSD; il
  resto è sotto la GNU GPL o altre license open-source
  .
  2.  Il modo di FreeBSD di etichettare i dischi
  Linux e FreeBSD etichettano dischi e partizioni in due schemi
  differenti. Questa sezione spiega le differenze principali fra i due
  schemi. Di fatto lo schema di etichettatura di FreeBSD è un
  adattamento del tradizionale stile di etichettatura BSD adattato a
  vivere dentro le partizioni di fdisk dei PC. Quindi è molto simile
  agli altri sistemi Unix BSD-based tipo NetBSD, OpenBSD, Ultrix,
  Digital Unix, SunOS e Solaris.
  2.1.  FreeBSD ``fette'' e ``partizioni''
  FreeBSD necessita di una delle quattro partizioni della tavola delle
  partizioni del vostro disco rigido. Questa partizione primaria è
  chiamata ``slice'' (fetta, porzione) nella terminologia FreeBSD.
  FreeBSD poi usa il programma di etichettatura disklabel per preparare
  fino a otto partizioni in questa partizione primaria. Queste
  partizioni logiche sono chiamate ``partitions'' (partizioni) nella
  terminologia FreeBSD. Questo concetto è simile al modo come Linux (e
  DOS) gestiscono le partizioni logiche in una partizione estesa. Non
  potete installare FreeBSD in una partizione estesa creata da Linux (o
  DOS). Notate che il programma fdisk di Linux non mostra le partizioni
  BSD in una slice FreeBSD dal menù principale, ma può mostrare
  informazioni sull'etichettatura del disco BSD se date il comando `b'.
  L'output è qualcosa di simile a questo (/dev/hda4 è la slice FreeBSD):
  bash# 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
  bash#
  Le lettere `a'...`f' nella prima colonna sono le stesse etichette
  mostrate sotto nell'esempio di una slice BSD. Ci sono tre partizioni
  speciali nel linguaggio BSD. La lettera `a' indica la partizione di
  root, `b' indica al partizione di swap, mentre `c' indica l'intera
  slice. Consultate la documentazione FreeBSD per ulteriori informazioni
  sul modo ``standard'' di assegnare queste lettere ai differenti tipi
  di partizione.
  2.2.  Etichettatura dei dischi e delle partizioni in Linux e FreeBSD
  I dischi rigidi sono etichettati nel modo seguente in Linux e FreeBSD:
                          Linux           FreeBSD
  Primo disco IDE         /dev/hda        /dev/wd0
  Secondo disco IDE       /dev/hdb        /dev/wd1
  Primo disco SCSI        /dev/sda        /dev/sd0
  Secondo disco SCSI      /dev/sdb        /dev/sd1
  Le partitizioni (FreeBSD slice) su un disco IDE sono etichettate nel
  modo seguente (viene usato /dev/hda come esempio):
                                          Linux           FreeBSD
  Prima partizione primaria               /dev/hda1       /dev/wd0s1
  Seconda partizione primaria             /dev/hda2       /dev/wd0s2
  Terza partizione primaria               /dev/hda3       /dev/wd0s3
  Quarta partizione primaria              /dev/hda4       /dev/wd0s4
  Le partizioni nel mio slice FreeBSD sono etichettate nel modo
  seguente. Questo è il modo di etichettatura predefinito. È possibile
  cambiare l'etichettatura se eseguite una installazione custom
  (personalizzata) di FreeBSD (/dev/hda4 è la slice FreeBSD
  nell'esempio):
  Etichetta Linux         Etichetta FreeBSD       mount point FreeBSD
  /dev/hda5               /dev/wd0s4a             /
  /dev/hda6               /dev/wd0s4b             swap
  /dev/hda7               /dev/wd0s4e             /var
  /dev/hda8               /dev/wd0s4f             /usr
  Se lanciate dmesg in Linux vedrete questo (il kernel linux deve essere
  compilato con UFS filesystem support per ottenere questo. Vedere la
  sezione ``Installare e preparare Linux''):
  Partition check:
   hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
  Se avete installato nella slice /dev/sd1s3 (/dev/sdb3 in terminologia
  Linux), e /dev/sdb2 è una partizione estesa Linux contenente due
  partizioni logiche (/dev/sdb5 e /dev/sdb6), l'esempio precedente
  dovrebbe apparire così:
  Etichetta Linux         Etichetta FreeBSD       mount point FreeBSD
  /dev/sdb7               /dev/sd1s3a             /
  /dev/sdb8               /dev/sd1s3b             swap
  /dev/sdb9               /dev/sd1s3e             /var
  /dev/sdb10              /dev/sd1s3f             /usr
  Questo sarà  mostrato come:
  Partition check:
   sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >
  nell'output di dmesg.
  Se avete una partizione estesa Linux dopo la vostra slice FreeBSD
  avete dei problemi, perché la maggior parte dei floppy di
  installazione del kernel di Linux sono preparati senza il supporto
  UFS, i quali non riconosceranno le partizioni FreeBSD interne alla
  slice. Quello che avrebbe dovuto essere visto come (/dev/hda3 è la
  slice FreeBSD e /dev/hda4 è la partizione Linux estesa)
  Partition check:
   hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8 > hda4 < hda9 hda10 >
  è visto come:
  Partition check:
   hda: hda1 hda2 hda3 hda4 < hda5 hda6 >
  Questo può  darvi una assegnazione sbagliata del disco e causare la
  perdita di dati. Il mio consiglio è di mettere sempre la vostra slice
  FreeBSD dopo qualsiasi partizione Linux estesa e non cambiare nessuna
  partizione logica nella vostra partizione Linux estesa dopo aver
  installato FreeBSD!
  3.  Condividere l'area di swap fra Linux e FreeBSD
  Questa sezione descrive come ho ottenuto che Linux e FreeBSD
  condividessero una partizione di swap. Ci possono essere altri modi di
  ottenere lo stesso risultato. Potete installare FreeBSD prima di Linux
  se volete prestare attenzione all'ordine delle partizioni nella slice
  FreeBSD.
  3.1.  Installare e preparare Linux
  Il primo passo è quello di installare Linux normalmente. Dovete
  lasciare spazio per la slice FreeBSD nel vostro disco. Non dovete
  creare una partizione Linux di swap, ma se ne volete una, mettetela
  nello spazio che volete allocare per FreeBSD. In questo modo potrete
  cancellare la partizione di swap Linux in seguito e usare lo spazio
  per FreeBSD.
  Quando avrete installato Linux dovrete compilare un nuovo kernel.
  Leggete The Linux Kernel HOWTO se questa è una cosa nuova per voi.
  Dovete includere sia UFS filesystem support (read only) sia BSD
  disklabel (il supporto per la tavola delle partizioni di FreeBSD):
  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
  Installate il nuovo kernel e riavviate. Rimuovete qualsiasi riga che
  include la parola swap dal vostro file /etc/fstab se avete creato una
  partizione Linux di swap. Accertatevi di avere un floppy di boot di
  Linux funzionante con il kernel. Ora siete pronti per installare
  FreeBSD.
  3.2.  Installare FreeBSD
  Installate FreeBSD come descritto nella documentazione di FreeBSD.
  Rimuovete la partizione Linux di swap se ne avete creata una (potete
  usare il programma fdisk di FreeBSD). Prestate attenzione all'ordine
  delle partizioni nello slice FreeBSD. Se usate l'etichettatura
  predefinita la seconda partizione sarà la partizione di swap.
  Completate l'installazione di FreeBSD e riavviate in Linux usando il
  nuovo floppy di boot di Linux.
  3.3.  Impostare la partizione di swap di FreeBSD in Linux
  Lanciate dmesg quando avete riavviato in Linux. Nell'output dovreste
  vedere qualcosa del genere:
  Partition check:
   hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8 >
  Questo significa che /dev/hda4 è il vostro slice FreeBSD, mentre
  /dev/hda5, /dev/hda6, /dev/hda7 e /dev/hda8 sono le partizioni
  FreeBSD. Se la vostra partizione di swap è la seconda partizione nello
  slice, questa sarà /dev/hda6.
  Dovete inserire le linee seguenti nel vostro file /etc/fstab di Linux
  per abilitare la partizione di swap:
  /dev/hda6       none            swap            sw              0       0
  Mentre FreeBSD può usare qualsiasi tipo di partizione come area di
  swap, Linux necessita di un tipo di marcatura particolare per la
  partizione di swap. Questa marcatura si ottiene con mkswap. FreeBSD
  rovina questa marcatura quando usa la partizione di swap condivisa,
  quindi dovete lanciare mkswap ogni volta che avviate con Linux. Per
  fare questo automaticamente dovete trovare lo script che lancia swapon
  al momento del boot. In Red Hat Linux questo è /etc/rc.d/rc.sysinit.
  Inserite la riga seguente in questo file appena prima di swapon -a:
  awk -- '/swap/ && ($1 !~ /#/) { system("mkswap "$1"") }' /etc/fstab
  Questo lancerà  mkswap su qualsiasi partizione di swap in /etc/fstab
  ogni volta che avviate eccetto se queste sono commentate (aventi ``#''
  come primo carattere della riga).
  Lanciate free per controllare le dimensioni della partizione di swap
  quando avrete riavviato in Linux. Dovreste anche riavviare in FreeBSD
  per accertarvi che tutto funzioni come ci si aspetta. Se non funziona,
  avete probabilmente usato una partizione sbagliata come partizione di
  swap. L'unica soluzione a questo problema è di reinstallare FreeBSD e
  riprovare ancora.  L'esperienza è una grande maestra. :-)
  4.  Avviare FreeBSD usando LILO
  Potete facilmente avviare FreeBSD con LILO. Non installate il boot
  selector di FreeBSD (Booteasy) se volete usare LILO. Aggiungete le
  seguenti righe al vostro file /etc/lilo.conf e lanciate lilo
  (assumendo che lo slice FreeBSD sia /dev/hda4):
  other=/dev/hda4
          table=/dev/hda
          label=FreeBSD
  Se avete installato FreeBSD sul secondo disco SCSI, usate qualcosa del
  genere (assumendo che lo slice FreeBSD sia /dev/sdb2):
  other=/dev/sdb2
          table=/dev/sdb
          loader=/boot/chain.b
          label=FreeBSD
  5.  Montare i filesystems
  5.1.  Montare il filesystem UFS sotto Linux
  Sfortunatamente il driver UFS nei kernel Linux 2.0.xx non includono il
  supporto per FreeBSD. Quando provate a montare un filesystem FreeBSD,
  ottenete solo dei messaggi di errore (il filesystem di fatto viene
  montato, ma non potete di fatto farci alcunché). Questo problema è
  stato risolto con i nuovi kernel Linux (versione 2.1.87 e successive.)
  C'è un'altra versione del driver UFS per kernel Linux 2.0.xx (xx <=
  30) su metalab.unc.edu (in passato sunsite.unc.edu)
  . Si chiama U2FS e la
  versione corrente è u2fs-0.4.3.tar.gz. Una versione di U2FS
  (ufs-0.4.4.tar.gz) per Linux 2.0.31 e successivi (2.0.xx; not 2.1.xx)
  si può trovare in questo sito  insieme ad ulteriori
  informazioni riguardo U2FS (e UFS.)
  Ora dovete compilare un nuovo kernel con il supporto per U2FS
  filesystem e BSD disklabels. Vedere la sezione ``Installare e
  preparare Linux'' per maggiori informazioni in proposito. Potete
  lasciar perdere l'UFS filesystem support nel kernel quando usate U2FS.
  Quando avrete installato il nuovo kernel, potrete montare i filesystem
  UFS (tutte le partizioni nella slice FreeBSD eccetto la partizione di
  swap) con un comando tipo questo:
  mount -t u2fs /dev/hda8 /mnt
  Dovrete usare un comando tipo:
  mount -t ufs /dev/hda8 /mnt
  se usate un kernel Linux versione 2.1.87 o successivo. Dal kernel
  Linux versione 2.1.112 dovete aggiungere -o ufstype=44bsd ad un
  comando come questo:
  mount -t ufs -o ufstype=44bsd /dev/hda8 /mnt
  Il driver UFS (e U2FS) è di sola lettura (read-only). E così; potete
  leggere da un filesystem UFS ma non potete scriverci sopra. Un driver
  sperimentale lettura-scrittura (read-write) UFS ha rimpiazzato il
  driver read-only nel kernel Linux versione 2.1.112 e superiori;
  scrivere su partizioni FreeBSD è supportato dalla versione 2.1.127.
  5.2.  Montare il filesystem ext2fs sotto FreeBSD
  Per montare un filesystem ext2fs sotto FreeBSD, dovete prima compilare
  un nuovo kernel con supporto di ext2fs. Leggete the FreeBSD handbook
   per imparare come fare. Inserite la
  riga
  options         "EXT2FS"
  nel vostro file di configurazione del kernel per il nuovo kernel.
  Quando avrete riavviato con il nuovo kernel, potrete montare un
  filesystem ext2fs dando un comando come:
  mount -t ext2fs /dev/wd0s3 /mnt
  Notate che non potete montare filesystems ext2fs in partizioni estese
  da FreeBSD.
  Per colpa di un bug in FreeBSD 2.2.8 e precedenti dovrete smontare
  (unmount) tutti i filesystems ext2fs prima di chiudere FreeBSD se
  state usando queste versioni.  Se chiudete FreeBSD con un filesystem
  ext2fs montato, FreeBSD non potrà sincronizzare (sync) i filesystem
  UFS. Questo risulterà in fsck quando verrà  lanciato al successivo
  avvio di FreeBSD. Potete aggirare questo bug inserendo la riga:
  umount -a -t ext2fs
  nel file /etc/rc.shutdown. Il bug dovrebbe essere stato corretto in
  FreeBSD-3.x (qulcuno può confermare questo?)
  6.  Far girare programmi binari estranei
  6.1.  Far girare programmi binari di FreeBSD sotto Linux
  Il pacchetto iBCS supporta l'esecuzione di binari FreeBSD sotto Linux;
  ma è vecchio e non più mantenuto. Io non sono riuscito a farlo
  funzionare. Per favore fatemi sapere se avete avuto migliore fortuna
  con questo pacchetto.
  6.2.  Far girare programmi binari di Linux sotto FreeBSD
  FreeBSD ha la possibilità di far girare binari Linux, sia nei formati
  a.out che ELF.  Per fare questo dovete seguire i seguenti tre
  passaggi:
  1. Dovete abilitare la compatibilità con Linux. Per fare questo (in
     FreeBSD 2.2.2 --- alcuni dettagli possono essere diversi in altre
     versioni) dovete editare il vostro file /etc/rc.conf e cambiare
     linux_enable="NO"
  in
  linux_enable="YES"
  e riavviare. Un altro modo per caricare il supporto binario con Linux
  è quello di eseguire il comando /usr/bin/linux. In questo modo non
  dovete riavviare e non avete il supporto binario con Linux sempre car
  icato (es. salvate memoria).  Ricordate di aggiungere la riga
  options         COMPAT_LINUX
  nel file config del kernel FreeBSD se compilate un nuovo kernel
  FreeBSD.
  2. Dovete installare le librerie condivise di Linux se i vostri binari
     Linux sono linkati dinamicamente. Le librerie sono incluse in
     FreeBSD 2.2.{2,5,6} come pacchetto linux_lib-2.4.tgz (nuove
     versioni potrebbero essere disponibili). Lanciate il comando
     seguente per installare il pacchetto:
     pkg_add /linux_lib-2.4.tgz
   è la directory che contiene il pacchetto. Potete
  anche scaricare il pacchetto dalla rete con:
  pkg_add ftp://ftp.freebsd.org/pub/FreeBSD/packages-stable/All/linux_lib-2.4.tgz
  o rilanciando /stand/sysinstall. Entrate in ``Configure'', ``Pack
  ages'' e usate i menù. Dovrete eseguire i comandi seguenti se state
  lanciando binari Linux linkati staticamente:
  brandelf -t Linux 
  3. Installare i programmi Linux che volete lanciare. I programmi
     possono essere installati sia su filesystem UFS sia su filesystem
     ext2fs. Vedere la sezione ``Montare filesystems ext2fs sotto
     FreeBSD'' per maggiori informazioni riguardo l'uso di filesystems
     ext2fs sotto FreeBSD.
  Ho eseguito con successo le versioni Linux di Applixware 4.3 e
  Netscape 3.01 (ambedue in formato ELF) sotto FreeBSD 2.2.2 usando
  questo metodo (sì, so che esiste una versione nativa di Netscape 4 per
  FreeBSD). Anche le versioni Linux di acroread e StarOffice 3 e 4
  lavorano bene sotto FreeBSD. StarOffice 5 dipende dai threads nativi
  di Linux e attualmente non funziona sotto FreeBSD.  Leggete la
  documentazione FreeBSD per maggiori informazioni a questo riguardo.
  7.  Fonti di informazione
  L'ultima versione di questo mini-HOWTO può  essere scaricata da questo
  sito  in diversi formati (incluso SGML e
  PostScript.) Il documento è stato tradotto in giapponese da Mr.
  Teruyoshi Fujiwara come parte del the JF project
  .
  Gregor Hoffleit mantiene un sito  con informazioni relative allo
  sviluppo di U2FS e UFS.
  Annelise Anderson sta lavorando ad una Linux+FreeBSD FAQ
  , la quale coprirà
  gli stessi temi di questo mini-HOWTO (e altro). Le FAQ sono intese
  essere parte del freebsd-doc project.
  Potete trovare alcuni articoli sulle differenze fra Linux e FreeBSD
  qui .
  Potete trovare altre informazioni riguardo FreeBSD (e scaricare
  l'intero sistema) in questo sito . Potete
  anche comprare il sistema su CDROM da Walnut Creek CDROM
   (I loro server girano con FreeBSD).
  Il Linux Kernel HOWTO (e questo mini-HOWTO) è realizzato come parte
  del The Linux Documentation Project .
  8.  Crediti e affari legali
  Grazie ai membri del *BSD user group in Danimarca
   per aver risposto alle domande di un
  novizio (newbie) di FreeBSD, a Mr. Takeshi Okazaki per avermi fatto
  conoscere U2FS, e a Mr. David O'Brien per suggerimenti importanti.
  8.1.  Affari legali
  Trademarks are owned by their owners.
  Although the information given in this document is believed to be
  correct, the author will accept no liability for the content of this
  document. Use the tips and examples given herein at your own risk.
  Copyright © 1997, 1998, 1999 by Niels Kristian Bech Jensen. This
  document may be distributed only subject to the terms and conditions
  set forth in the LDP license  .
  Ovvero:
  I marchi sono proprietà dei loro possessori.
  Nonostante le informazioni date in questo documento si pensa siano
  corrette, l'autore non accetterà responsabilità per il contenuto di
  questo documento. Usate i suggerimenti e gli esempi qui contenuti a
  vostro rischio.
  Copyright © 1997, 1998, 1999 by Niels Kristian Bech Jensen. Questo
  documento potrà  essere distribuito solo sotto i termini e le
  condizioni esposte in the LDP license .