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.
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.
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!