Verder Terug Inhoud

2. De beste manier om FreeBSD's harddrives te labelen

Linux en FreeBSD labelen harddisks en partities volgens twee verschillende schema's. Deze sectie legt de belangrijkste verschillen tussen de twee schema's uit. In feite is het FreeBSD labelingsschema een overblijfsel van de traditionele BSD stijl van labelen in leven gehouden binnen de de PC's fdisk partities. Dus het is erg vergelijkbaar met andere op BSD-gebaseerde Unix systemen zoals NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS, en Solaris.

2.1 FreeBSD ``slices'' en ``partities''

FreeBSD heeft één van de vier ingangen in de partitietabel van de harddisk van je PC nodig. Deze primaire partitie wordt een ``slice'' genoemd in FreeBSD's terminologie. Het maakt vervolgens gebruik van het disklabel programma om tot acht partities in deze primaire partitie aan te maken. Deze logische partities worden in FreeBSD's terminologie ``partities'' genoemd. Dit principe is vergelijkbaar met de manier waarop Linux (en DOS) met logische partities in een extended partitie omgaan. Je kunt FreeBSD niet in een extended partitie installeren die door Linux (of DOS) is aangemaakt. Merk op dat het Linux fdisk programma de BSD partities in een FreeBSD slice vanaf het hoofdmenu niet laat zien, het kan de BSD disklabel informatie wel tonen als je het commando `b' geeft. De uitvoer ziet er ongeveer als volgt uit (/dev/hda4 is de FreeBSD slice):

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#

De letters `a'...`f' in de eerste kolom zijn dezelfde labels als die hieronder in het voorbeeld voor een FreeBSD slice worden getoond. Er zijn in BSD's terminologie drie speciale partities. De letter `a' duidt de root partitie aan, `b' duidt de swap partitie aan, terwijl `c' de volledige slice aanduidt. Zie de FreeBSD documentatie voor meer informatie over de ``standaard'' wijze waarop deze letters aan de verschillende partitietypes worden toegewezen.

2.2 Drive en partitie labeling in Linux en FreeBSD

De harddisks zijn op de volgende wijze in Linux en FreeBSD gelabeld:

                        Linux           FreeBSD
Eerste IDE drive        /dev/hda        /dev/wd0
Tweede IDE drive        /dev/hdb        /dev/wd1
Eerste SCSI drive       /dev/sda        /dev/sd0
Tweede SCSI drive       /dev/sdb        /dev/sd1

De partities (FreeBSD slices) op een IDE drive worden op de volgende manier gelabeld, (/dev/hda is als een voorbeeld gebruikt):

                                Linux           FreeBSD
Eerste primaire partitie        /dev/hda1       /dev/wd0s1
Tweede primaire partitie        /dev/hda2       /dev/wd0s2
Derde primary partitie          /dev/hda3       /dev/wd0s3
Vierde primaire partitie        /dev/hda4       /dev/wd0s4

De partities in mijn FreeBSD slice zijn op de volgende manier gelabeld. Het zijn de labels die je standaard krijgt. Het is mogelijk de labels te wijzigen als je kiest voor een aangepaste installatie van FreeBSD (/dev/hda4 is de FreeBSD slice in het voorbeeld):

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

Als je dmesg opstart onder Linux, zul je dit te zien krijgen als (De linux kernel moet zijn aangemaakt met ondersteuning voor het UFS bestandssysteem wil dit werken. Zie sectie Installeren en voorbereiden van Linux):

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

Als je FreeBSD in de /dev/sd1s3 slice hebt geïnstalleerd (/dev/sdb3 in Linux termen ), en /dev/sdb2 is een Linux extended partitie met twee logische partities (/dev/sdb5 en /dev/sdb6), dan zal het voorgaande voorbeeld er ongeveer zo uitzien:

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

Dit zal worden getoond als

Partition check:
 sdb: sdb1 sdb2 < sdb5 sdb6 > sdb3 < sdb7 sdb8 sdb9 sdb10 >
in de uitvoer van dmesg.

Als je een Linux extended partitie na je FreeBSD slice hebt, haal je je moeilijkheden op de hals, omdat de meeste Linux kernel installatie diskettes zonder UFS ondersteuning zijn aangemaakt, ze zullen de FreeBSD partities binnenin de slice niet herkennen. Wat je zou moeten zien als de FreeBSD slice (/dev/hda3 en /dev/hda4 als de Linux extended partitie)

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

Dit kan de verkeerde device aanwijzing opleveren en verlies van gegevens veroorzaken. Mijn advies is om je FreeBSD slice altijd achter een Linux extended te plaatsen, en geen wijzigingen meer aan te brengen in je Linux extended partities nadat je FreeBSD hebt geïnstalleerd!


Verder Terug Inhoud