Manuel FreeBSD
Précédent | Chapitre 3. Quelques bases d'UNIX | Suivant

# 3.5. Organisation des disques

Le plus petit élément qu'utilise FreeBSD pour retrouver des fichiers est le nom de fichier. Les noms de fichiers sont sensibles à la casse des caractères, ce qui signifie que `readme.txt` et `README.TXT` sont deux fichiers séparés. FreeBSD n'utilise pas l'extension (`.txt`) d'un fichier pour déterminer si ce fichier est un programme, un document ou une autre forme de donnée.

Les fichiers sont stockés dans des répertoires. Un répertoire peut ne contenir aucun fichier, ou en contenir plusieurs centaines. Un répertoire peut également contenir d'autre répertoires, vous permettant de construire une hiérarchie de répertoires à l'intérieur d'un autre. Cela rend plus simple l'organisation de vos données.

Les fichiers et les répertoires sont référencés en donnant le nom du fichier ou du répertoire, suivi par un slash, `/`, suivi par tout nom de répertoire nécessaire. Si vous avez un répertoire `foo`, qui contient le répertoire `bar`, qui contient le fichier `readme.txt`, alors le nom complet, ou chemin (``path'') vers le fichier est `foo/bar/readme.txt`.

Les répertoires et les fichiers sont stockés sur un système de fichiers. Chaque système de fichiers contient à son niveau le plus haut un répertoire appelé répertoire racine pour ce système de fichiers. Ce répertoire racine peut alors contenir les autres répertoires.

Jusqu'ici cela est probablement semblable à n'importe quel autre système d'exploitation que vous avez pu avoir utilisé. Il y a quelques différences: par exemple, MS-DOS® utilise `\` pour séparer les noms de fichier et de répertoire, alors que MacOS utilise `:`.

FreeBSD n'utilise pas de lettre pour les lecteurs, ou d'autres noms de disque dans le chemin. Vous n'écrirez pas `c:/foo/bar/readme.txt` sous FreeBSD.

Au lieu de cela, un système de fichiers est désigné comme système de fichiers racine. La racine du système de fichiers racine est représentée par un `/`. Tous les autres systèmes de fichiers sont alors montés sous le système de fichiers racine. Peu importe le nombre de disques que vous avez sur votre système FreeBSD, chaque répertoire apparaît comme faisant partie du même disque.

Supposez que vous avez trois systèmes de fichiers, appelés `A`, `B`, et `C`. Chaque système de fichiers possède un répertoire racine, qui contient deux autres répertoires, nommés `A1`, `A2` (et respectivement `B1`, `B2` et `C1`, `C2`).

Appelons `A` le système de fichiers racine. Si vous utilisiez la commande `ls` pour visualiser le contenu de ce répertoire, vous verriez deux sous-répertoires, `A1` et `A2`. L'arborescence des répertoires ressemblera à ceci:

Un système de fichiers doit être monté dans un répertoire d'un autre système de fichiers. Supposez maintenant que vous montez le système de fichiers `B` sur le répertoire `A1`. Le répertoire racine de `B` remplace `A1`, et les répertoires de `B` par conséquent apparaissent:

Tout fichier de `B1` ou `B2` peut être atteint avec le chemin `/A1/B1` ou `/A1/B2` si nécessaire. Tous les fichiers qui étaient dans `A1` ont été temporairement cachés. Ils réapparaîtront si `B` est démonté de A.

Si `B` a été monté sur `A2` alors le diagramme sera semblable à celui-ci:

et les chemins seront `/A2/B1` et respectivement `/A2/B2`.

Les systèmes de fichiers peuvent être montés au sommet d'un autre. En continuant l'exemple précédent, le système de fichiers `C` pourrait être monté au sommet du répertoire `B1` dans le système de fichiers `B`, menant à cet arrangement:

Où `C` pourrait être monté directement sur le système de fichiers `A`, sous le répertoire `A1`:

Si vous êtes familier de MS-DOS, ceci est semblable, bien que pas identique, à la commande `join`.

Ce n'est normalement pas quelque chose qui doit vous préoccuper. Généralement vous créez des systèmes de fichiers à l'installation de FreeBSD et décidez où les monter, et ensuite ne les modifiez jamais à moins que vous ajoutiez un nouveau disque.

Il est tout à fait possible de n'avoir qu'un seul grand système de fichiers racine, et de ne pas en créer d'autres. Il y a quelques inconvénients à cette approche, et un avantage.

Avantages des systèmes de fichiers multiples

- Les différents systèmes de fichiers peuvent avoir différentes options de montage. Par exemple, avec une planification soigneuse, le système de fichiers racine peut être monté en lecture seule, rendant impossible tout effacement par inadvertance ou édition de fichier critique. La séparation des systèmes de fichiers inscriptibles par l'utilisateur permet leur montage en mode nosuid; cette option empêche les bits suid/guid des exécutables stockés sur ce système de fichiers de prendre effet, améliorant peut-être la sécurité.

- FreeBSD optimise automatiquement la disposition des fichiers sur un système de fichiers, selon la façon dont est utilisé le système de fichiers. Aussi un système de fichiers contenant beaucoup de petits fichiers qui sont écrits fréquemment aura une optimisation différente à celle d'un système contenant moins, ou de plus gros fichiers. En ayant un seul grand système de fichiers cette optimisation est perdue.

- Les systèmes de fichiers de FreeBSD sont très robustes même en cas de coupure secteur. Cependant une coupure secteur à un moment critique pourrait toujours endommager la structure d'un système de fichiers. En répartissant vos données sur des systèmes de fichiers multiples il est plus probable que le système redémarre, vous facilitant la restauration des données à partir de sauvegardes si nécessaire.

Avantage d'un système de fichiers unique

- Les systèmes de fichiers ont une taille fixe. Si vous créez un système de fichiers à l'installation de FreeBSD et que vous lui donnez une taille spécifique, vous pouvez plus tard vous apercevoir que vous avez besoin d'une partition plus grande. Cela n'est pas facilement faisable sans sauvegardes, recréation du système de fichiers, et enfin restauration des données.

  > Important : FreeBSD dispose d'une commande, growfs(8), qui permettra d'augmenter la taille d'un système de fichiers au vol, supprimant cette limitation.

Les systèmes de fichiers sont contenus dans des partitions. Cela n'a pas la même signification que l'utilisation commune du terme partition (par exemple une partition MS-DOS), en raison de l'héritage Unix de FreeBSD. Chaque partition est identifiée par une lettre de `a` à `h`. Chaque partition ne contient qu'un seul système de fichiers, cela signifie que les systèmes de fichiers sont souvent décrits soit par leur point de montage typique dans la hiérarchie du système de fichiers, soit par la lettre de la partition qui les contient.

FreeBSD utilise aussi de l'espace disque pour l'espace de pagination (``swap''). L'espace de pagination fournit à FreeBSD la mémoire virtuelle. Cela permet à votre ordinateur de se comporter comme s'il disposait de beaucoup plus de mémoire qu'il n'en a réellement. Quand FreeBSD vient à manquer de mémoire il déplace certaines données qui ne sont pas actuellement utilisées vers l'espace de pagination, et les rapatrie (en déplaçant quelque chose d'autre) quand il en a besoin.

Quelques partitions sont liées à certaines conventions.

Partition | Convention
--- | ---
`a` | Contient normalement le système de fichiers racine
`b` | Contient normalement l'espace de pagination
`c` | Normalement de la même taille que la tranche (``slice'') contenant les partitions. Cela permet aux utilitaires devant agir sur l'intégralité de la tranche (par exemple un analyseur de blocs défectueux) de travailler sur la partition `c`. Vous ne devriez normalement pas créer de système de fichiers sur cette partition.
`d` | La partition `d` a eu dans le passé une signification particulière, ce n'est plus le cas aujourd'hui, et `d` pourra être utilisée comme une partition classique.

Chaque partition contenant un système de fichiers est stockée dans ce que FreeBSD appelle une tranche (``slice''). Tranche - ``slice'' est le terme FreeBSD pour ce qui est communément appelé partition, et encore une fois, cela en raison des fondations Unix de FreeBSD. Les tranches sont numérotées, en partant de 1, jusqu'à 4.

Les numéros de tranche suivent le nom du périphérique, avec le préfixe `s`, et commencent à 1. Donc ``da0s1'' est la première tranche sur le premier disque SCSI. Il ne peut y avoir que quatre tranches physiques sur un disque, mais vous pouvez avoir des tranches logiques dans des tranches physiques d'un type précis. Ces tranches étendues sont numérotées à partir de 5, donc ``ad0s5'' est la première tranche étendue sur le premier disque IDE. Elles sont utilisées par des systèmes de fichiers qui s'attendent à occuper une tranche entière.

Les tranches, les disques ``en mode dédié'', et les autres disques contiennent des partitions, qui sont représentées par des lettres allant de `a` à `h`. Cette lettre est ajoutée au nom de périphérique, aussi ``da0a'' est la partition a sur le premier disque da, qui est en ``en mode dédié''. ``ad1s3e'' est la cinquième partition de la troisième tranche du second disque IDE.

En conclusion chaque disque présent sur le système est identifié. Le nom d'un disque commence par un code qui indique le type de disque, suivi d'un nombre, indiquant de quel disque il s'agit. Contrairement aux tranches, la numérotation des disques commence à 0. Les codes communs que vous risquez de rencontrer sont énumérés dans le Tableau 3-1.

Quand vous faites référence à une partition, FreeBSD exige que vous nommiez également la tranche et le disque contenant la partition, et quand vous faites référence à une tranche vous devrez également faire référence au nom du disque. On fait donc référence à une partition en écrivant le nom du disque, `s`, le numéro de la tranche, et enfin la lettre de la partition. Des exemples sont donnés dans l'Exemple 3-1.

L'Exemple 3-2 montre un exemple de l'organisation d'un disque qui devrait aider à clarifier les choses.

Afin d'installer FreeBSD vous devez tout d'abord configurer les tranches sur votre disque, ensuite créer les partitions dans la tranche que vous utiliserez pour FreeBSD, et alors créer un système de fichiers (ou espace de pagination) dans chaque partition, et décider de l'endroit où seront montés les systèmes de fichiers.

Tableau 3-1. Codes des périphériques disques

Code | Signification
--- | ---
`ad` | Disque ATAPI (IDE)
`da` | Disque SCSI
`acd` | CDROM ATAPI (IDE)
`cd` | CDROM SCSI
`fd` | Lecteur de disquette

Exemple 3-1. Exemples d'appellation de disques, tranches et partitions

Nom | Signification
--- | ---
`ad0s1a` | Première partition (`a`) sur la première tranche (`s1`) du premier disque IDE (`ad0`).
`da1s2e` | Cinquième partition (`e`) sur la seconde tranche (`s2`) du deuxième disque SCSI (`da1`).

Exemple 3-2. Modèle conceptuel d'un disque

Ce diagramme montre comment FreeBSD voit le premier disque IDE attaché au système. Supposons que le disque a une capacité de 4 Go, et contient deux tranches de 2 Go (partitions MS-DOS). La première tranche contient un disque MS-DOS, `C:`, et la seconde tranche contient une installation de FreeBSD. Dans cet exemple l'installation de FreeBSD a trois partitions de données, et une partition de pagination.

Les trois partitions accueilleront chacune un système de fichiers. La partition `a` sera utilisée en tant que système de fichiers racine, la partition `e` pour le contenu du répertoire `/var`, et `f` pour l'arborescence du répertoire `/usr`.

Précédent | Sommaire | Suivant
Organisation de l'arborescence des répertoires | Niveau supérieur | Monter et démonter des systèmes de fichiers

Ce document, ainsi que d'autres peut être téléchargé sur ftp.FreeBSD.org/pub/FreeBSD/doc/.

Pour toutes questions à propos de FreeBSD, lisez la documentation avant de contacter <questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez <doc@FreeBSD.org>.