Page préc.
Noyau Linux et Système de Gestion des Fichiers (SGF)
Fin de page Page suiv.
Systèmes de fichiers

Mémoire secondaire - Disque physique - Formatage

Formatage

    Le formatage est le processus qui consiste à inscrire sur le support magnétique des marques qui délimitent des pistes et des secteurs. Dans le monde MS-DOS, ce terme désigne aussi l'opération d'organiser le support physique pour qu'il soit interprété par le S.E. comme une arborescence de fichiers (création de la racine, de la table d'allocation des fichiers : FAT ou File Allocation Table). Afin de distinguer ces deux opérations très différentes, on parle de formatage de bas niveau pour la première et de formatage de haut niveau pour la seconde. La première opération n'est que très rarement effectuée, seulement lorsque l'intégrité physique du support a été atteinte. Il s'agit alors de repérer les secteurs invalides. Sous Linux, les deux opérations sont nommées formatage pour la première et création d'un système de fichiers (file system).

Partitions

    Un disque physique est souvent divisé en plusieurs disques logiques, appelés partitions, qui sont formées d'un ensemble contigu de blocs du disque dur. Les partitions sont en général traitées par les S.E. comme des disques séparés et sont souvent utilisées pour permettre l'installation de plusieurs systèmes d'exploitation. Sauf cas particuliers, les partitions ne peuvent être déplacées, leur taille ne peut être modifiée sans destruction de leur contenu. Elles ne doivent pas se chevaucher et il est déconseillé de ne pas les juxtaposer, l'intervalle entre deux partitions étant inutilisable. Un disque dur peut ne pas être partitionné complètement, l'espace non partitionné étant provisoirement inutilisable, jusqu'à ce qu'il soit affecté à un S.E.

    Le nombre de partitions d'un système à base d'Intel fut dès le départ limité à quatre, la table des partitions étant installée dans le secteur de boot (voir plus loin). Ces partitions sont maintenant appelées partitions primaires. Ce nombre devenant rapidement insuffisant, des partitions logiques ont été inventées. Leur organisation en liste chaînée rend leur nombre potentiellement illimité. Cependant, si des partitions logiques sont utilisées, elles sont contiguës au sein d'une seule et même partition primaire, appelée partition étendue (extended partition). Il ne peut y avoir qu'une seule partition étendue.

    Linux ne peut gérer qu'un nombre limité de partitions par disque dur : quatre partitions primaires (dont trois sont utilisables si des partitions logiques sont utilisées), et au plus 15 partitions sur un disque dur SCSI ou 64 au total sur un disque IDE.

    Linux représente les partitions comme des fichiers périphériques (device files) "bloc" qui utilisent des tampons cache (buffer cache) et sont marqués de la lettre "b" : voir au paragraphe VII.

    La figure suivante présente un extrait du résultat de la commande ls –l /dev :
 
brw-rw----   1 root     disk       3,   0 May  5  1998 hda
brw-rw----   1 root     disk       3,   1 May  5  1998 hda1
brw-rw----   1 root     disk       3,   2 May  5  1998 hda2
brw-rw----   1 root     disk       3,   3 May  5  1998 hda3
brw-rw----   1 root     disk       3,  64 May  5  1998 hdb
brw-rw----   1 root     disk       3,  65 May  5  1998 hdb1

brw-rw----   1 root     disk       8,   0 May  5  1998 sda
brw-rw----   1 root     disk       8,   1 May  5  1998 sda1
brw-rw----   1 root     disk       8,   3 May  5  1998 sda2
brw-rw----   1 root     disk       8,   3 May  5  1998 sda3
brw-rw----   1 root     disk       8,   4 May  5  1998 sda4

brw-rw----   1 root     disk       8,  16 May  5  1998 sdb
brw-rw----   1 root     disk       8,  17 May  5  1998 sdb1

    Conventionnellement, les disques durs IDE et SCSI sont nommés respectivement /dev/hd* (h commehard) et /dev/sd* (s comme SCSI) . Les disques sont numérotés a, b, c, etc. Les partitions primaires sur un disque sont numérotées 1, 2, 3 et 4. Les partitions logiques commencent au numéro 5. Il faut noter que les fichiers périphériques pour les disques durs, /dev/hda par exemple, ouvrent l'accès à la totalité du disque, sans tenir compte des partitions (dangereux !), ce qui permet essentiellement d'accéder au master boot record.

    A chaque partition sur un disque sont assignés un bloc de début, un bloc de fin et un type qui est un code numérique sur un seul octet et devrait en principe être unique (ce n'est pas le cas mais il y a peu de risques de conflits car cela concerne des systèmes obsolètes) :
 
Code Système Type
0x01 – 0x02 – 0x04 DOS différentes versions de FAT
0x07 OS/2  
0x07 Windows NT NTFS 
0x81 Minix[1]  
0x05 Linux  partition étendue (qui contient les partitions logiques)
0x82 Linux Linux partition de swap
0x84 Linux système natif (en principe ext2)

    Une liste complète des types de partitions et de leur code reconnu par Linux peut être obtenue par la commande fdisk(8).

    Les partitions d'un disque dur sont effectuées au moyen d'un logiciel spécialisé, le plus connu et le plus ancien étant fdisk. Bien que portant le même nom dans la plupart des systèmes d'exploitations, ses capacités sont très différentes (voir aussi Disk Druid sous Linux).

Master Boot Record, secteur de boot

    Les informations concernant la façon dont un disque dur a été partitionné sont stockées dans son premier secteur (premier secteur de la première piste de la première face), appelé le MBR (Master Boot Record). Au démarrage de la machine, le BIOS lit ce secteur et exécute le morceau de code qu'il contient. Ce petit programme lit à son tour la table des partitions, trouve celle qui est active (qui est marquée bootable) et lit dans le premier secteur de cette partition, appelé le secteur de boot (boot sector) un autre petit programme qui lit la première partie du S.E. stocké dans cette partition, et lance son exécution.


[1] Minix est un S.E. qui a été développé initialement à des fins pédagogiques par Tannenbaum en 1987. C'est à partir de ce système que Linus Thorvalds a développé les premiers noyaux de Linux.


Page préc.
Noyau Linux et Système de Gestion des Fichiers (SGF)
Début de page Page suiv.
Systèmes de fichiers
Dernière mise à jour : 10/07/2001