Avanti Indietro Indice

2. Il modo di FreeBSD di etichettare i dischi

Linux e FreeBSD etichettano e poi partizionano i dischi in due modi diversi. Questa sezione spiega le principali differenze tra i due schemi. In effetti lo schema di etichettatura di FreeBSD è un adattamento del tradizionale stile BSD adatto a vivere nelle partizioni fdisk dei PC. Quindi è molto simile agli altri sistemi Unix basati su BSD come NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS, e Solaris.

2.1 FreeBSD ``slice'' e ``partizioni''

FreeBSD necessita di una delle quattro entrate nella tabella delle partizioni del disco del vostro PC. Questa partizione primaria è chiamata ``slice'' (fetta, porzione) nella terminologia FreeBSD. In seguito si usa il programma disklabel per creare più di otto partizioni in questa partizione primaria. Queste partizioni logiche sono chiamate ``partitions'' (partizioni) nella terminologia FreeBSD. Questo concetto è simile al modo in cui Linux (e DOS) gestiscono le partizioni logiche in una partizione estesa. Non si può installare FreeBSD in una partizione estesa creata da Linux (o DOS). Notare che il programma Linux fdisk non mostra dal menu principale le partizioni BSD in uno slice FreeBSD, ma può mostrare le informazioni del disklabel FreeBSD se si fornisce il comando `b'. L'output è qualcosa 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 come mostrato sotto nell'esempio per una slice FreeBSD. Nel linguaggio BSD esistono tre partizioni speciali. La lettera `a' designa la partizione di root, `b' designa la partizione di swap, mentre `c' designa l'intera slice. Vedere la documentazione su FreeBSD per ulteriori informazioni sulle modalità `standard'' di assegnare queste ai differenti tipi di partizione.

2.2 Etichettatura di drive e partizioni Linux e FreeBSD

I dischi sono etichettati nel seguente modo in Linux e FreeBSD:

                        Linux           FreeBSD
Primo drive IDE         /dev/hda        /dev/wd0
Secondo drive IDE       /dev/hdb        /dev/wd1
Primo drive SCSI        /dev/sda        /dev/sd0
Secondo drive SCSI      /dev/sdb        /dev/sd1

Le partizioni (slice in FreeBSD) su un drive IDE sono etichettate nel seguente modo (/dev/hda è usato 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 seguente modo. È l'etichettatura che si ottiene di default. Si possono cambiare le etichette se si esegue una installazione personalizzata di FreeBSD (/dev/hda4 è la slice FreeBSD nell'esempio):

Linux label     FreeBSD label   FreeBSD mount point 
/dev/hda5       /dev/wd0s4a     /
/dev/hda6       /dev/wd0s4b     swap
/dev/hda7       /dev/wd0s4e     /var
/dev/hda8       /dev/wd0s4f     /usr

Se si esegue dmesg in Linux si vedrà questo (Affinché funzioni il kernel Linux deve essere compilato con UFS filesystem support. 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ì:

Linux label     FreeBSD label   FreeBSD mount point 
/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 >
è vista 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!


Avanti Indietro Indice