Linux et FreeBSD nomment les disques durs et les partitions selon deux principes différents. Cette section décrit les principales différences entre les deux systèmes. En fait le principe de nommage de FreeBSD est une variation du style de nommage BSD traditionnel adapté aux partitions de PC. Il est donc très proche sur ce point des autres systèmes Unix basés sur BSD tels que NetBSD, OpenBSD, Ultrix, Digital Unix, SunOS et Solaris.
FreeBSD a besoin d'une entrée dans la table de partition primaire de votre
disque dur. Cette partition primaire est appelée ``tranche'' (slice en
anglais) dans la terminologie FreeBSD. Il utilise ensuite le programme
disklabel
pour créer plusieurs partitions logiques dans cette partition
primaire. Ces partitions logiques sont appelées ``partitions'' dans la
terminologie FreeBSD. Ce concept est similaire à la façon dont Linux (et
DOS) manipule les partitions logiques dans une partition étendue. Vous ne
pouvez pas installer FreeBSD dans une partition étendue créée par Linux (ou
DOS). Notez que le programme fdisk
de Linux n'affiche pas les
partitions d'une tranche FreeBSD depuis le menu principal, mais il peut
afficher l'information de nommage de disque (disklabel) BSD si on
utilise la commande 'b'. Le résultat sera quelque chose comme ceci
(/dev/hda4
est la tranche FreeBSD) :
# 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
#
Les lettres `a'...`f' dans la première colonne sont les mêmes étiquettes (labels) que celles utilisées plus bas dans l'exemple d'une tranche FreeBSD. Il y a trois partitions spéciales dans le jargon FreeBSD. La lettre `a' désigne la partition racine, `b' la partition de swap tandis que `c' désigne la tranche en entier. Voyez la documentation pour plus d'information sur la façon ``standard'' d'affecter ces lettres aux différents types de partitions.
Les disques durs sont nommés des façons suivantes sous Linux et FreeBSD :
Linux FreeBSD
Premier disque IDE /dev/hda /dev/wd0
Second disque IDE /dev/hdb /dev/wd1
Premier disque SCSI /dev/sda /dev/sd0
Second disque SCSI /dev/sdb /dev/sd1
Les partitions (tranches FreeBSD) d'un disque IDE sont nommées de la façon
suivante (/dev/hda
est utilisé comme exemple) :
Linux FreeBSD
Première partition primaire /dev/hda1 /dev/wd0s1
Deuxième partition primaire /dev/hda2 /dev/wd0s2
Troisième partition primaire /dev/hda3 /dev/wd0s3
Quatrième partition primaire /dev/hda4 /dev/wd0s4
Les partitions de ma tranche FreeBSD sont nommées de la façon suivante. Ceci
est le nommage par défaut, qu'il est possible de changer en faisant une
installation personnalisée de FreeBSD (/dev/hda4
est la tranche
FreeBSD) :
Nom Linux Nom FreeBSD Point de montage FreeBSD
/dev/hda5 /dev/wd0s4a /
/dev/hda6 /dev/wd0s4b swap
/dev/hda7 /dev/wd0s4e /var
/dev/hda8 /dev/wd0s4f /usr
Si vous lancez dmesg
sous Linux vous verrez (le noyau linux doit avoir
été compilé avec le support UFS. Voyez la section
Installer et préparer Linux):
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6 hda7 hda8>
Si vous avez installé FreeBSD dans la tranche /dev/sd1s3
(/dev/sdb3
dans le jargon Linux), et que /dev/sdb2
est
une partition Linux étendue contenant deux partitions logiques
(/dev/sdb5
et /dev/sdb6
), l'exemple précédent ressemblera
plutôt à ceci :
Nom Linux Nom FreeBSD Point de montage FreeBSD
/dev/sdb7 /dev/sd1s3a /
/dev/sdb8 /dev/sd1s3b swap
/dev/sdb9 /dev/sd1s3e /var
/dev/sdb10 /dev/sd1s3f /usr
La commande dmesg
montrera ceci sous la forme
Partition check:
sdb: sdb1 sdb2 < sdb5 sdb6> sdb3 < sdb7 sdb8 sdb9 sdb10>
Si vous avez une partition étendue Linux après votre tranche FreeBSD,
vous allez avoir des problèmes. La plupart des noyaux des disquettes
d'installation Linux ne contiennent pas le support UFS, ils ne
reconnaîtront donc pas les partitions FreeBSD à l'intérieur de la tranche. Ce
qui qui aurait dû être vu comme (/dev/hda3
est la tranche FreeBSD et
/dev/hda4
est la partition étendue Linux)
Partition check:
hda: hda1 hda2 hda3 < hda5 hda6 hda7 hda8> hda4 < hda9 hda10>
est vu comme:
Partition check:
hda: hda1 hda2 hda3 hda4 < hda5 hda6>
Cela peut résulter en un mauvais assignement de périphérique et provoquer des pertes de données. Je conseille de toujours mettre votre tranche FreeBSD après toutes les partitions étendues Linux, et de ne changer aucune partition logique dans vos partitions étendues Linux une fois que FreeBSD est installé !