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