Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.
10 décembre 2013 : Reprise et actualisation de la page de l'ancien site de Païou.
15 mars 2014 : actualisation
Pour : tout visiteur.
Dans les mémoires de masse, telles que disque dur, disquettes, CD-ROM, DVD-ROM ... les données à préserver sont enregistrées dans ce qu'on appelle des fichiers.
Ces données se présentent toujours sous la forme de suites de chiffres binaires, pouvant représenter aussi bien des caractères alphanumériques que des nombres entiers ou des décimaux, que des éléments d'images, que des codes à exécuter ...
Ils sont regroupés dans des blocs (ou grappes) ce qui correspond à la plus petite unité que le périphérique de stockage est capable de gérer. Un ou plusieurs blocs sont nécessaires pour former un fichier, selon la taille de ce fichier.
Afin de pouvoir écrire, retrouver, lire ces données, ces blocs sont organisés selon un système de fichier.
Il existe plusieurs sortes de systèmes de fichiers, suivant le type du support, mais également, pour certains supports, selon le système d'exploitation qui équipe l'ordinateur.
Cette page ne parle que de la face visible des systèmes de fichiers. La face cachée du système de fichiers de Linux sera traitée dans une autre page.
Un système de fichiers (FS ou FileSystem en anglais) ou système de gestion de fichiers (SGF) est une structure de données permettant de stocker les informations et de les organiser dans des fichiers sur ce que l'on appelle des mémoires de masse.
Pour l'utilisateur un système de fichiers se présente comme une arborescence : les fichiers sont regroupés dans des répertoires (concept utilisé par la plupart des systèmes d'exploitations). Ces répertoires contiennent soit des fichiers, soit d'autres répertoires.
Il y a donc un répertoire racine et des sous-répertoires. Une telle organisation génère une hiérarchie de répertoires et de fichiers organisés en arborescence.
Dans la figure ci-contre, le répertoire racine contient :
Une telle organisation en arborescence permet de classer les fichiers d'une façon logique, de manière à les retrouver facilement.
Lorsque vous voulez indiquer le nom d'un fichier et l'endroit où il est rangé, on parle de chemin d'accès.
Sous DOS, il s'écrira, par exemple, C:\Mes documents\fichier.txt
Le nom du document est séparé par un "\" du répertoire qui le contient et les répertoires sont également séparés par "\".
Par contre, sous Linux, c'est un caractère "/" qui sépare : /home/titi/Documents/fichier.txt
Le formatage consiste à préparer le support qui va recevoir des données.
Le formatage efface la totalité de la disquette ou de la partition.
On distingue deux étapes :
Il organise la surface des disques en éléments de base (blocs ou pistes, secteurs et cylindres) et a pour but de préparer la surface du disque à accueillir des données.
Il est réalisé en usine, par le fabricant du support de stockage, avec des outils bien spécifiques.
Ce formatage est fait avant la mise en place de tout système de fichiers. Il peut être repris, pour les disquettes, afin d'en modifier la géométrie, par exemple.
C'est le formatage logique qui crée le système de fichiers.
Normalement, ce formatage est effectué au moment de l'installation du système d'exploitation de l'ordinateur. Le type de système de fichiers dépend d'ailleurs du système d'exploitation qui est installé.
Mais quel que soit le système installé, sa fonction reste la même : organiser le disque dur ou de façon plus générale, le système de stockage des informations. Cela veut dire : permettre la création de répertoires et la création des fichiers, permettre leur modification, permettre leur suppression, permettre de gérer ses données.
Plus de détails sur le formatage :
Sur un disque ou tout autre périphérique de stockage, il y a des programmes et des données personnelles.
Nous avons vu que lorsqu'on fait un formatage, toutes les données déjà présentes vont être effacées.
Il est judicieux de séparer les programmes des données personnelles. Cela pourrait être fait en installant deux disques, par exemple. Mais il existe une solution bien plus intéressante : le partitionnement.
Le partitionnement d'un disque ou d'une clé USB consiste à découper l'espace total en plusieurs parties.
Chacune de ces parties devient indépendante des autres. Vous pouvez, par exemple, formater une partition d'un disque sans pour autant détruire les données des autres partitions de ce même disque.
Ces partitions sont généralement réalisées au moment de l'installation du système d'exploitation, juste avant leur formatage.
Historiquement, il était prévu de pouvoir créer jusqu'à 4 partitions sur une même unité. Ces partitions sont décrites dans une table des partitions et cette table ne possède que 4 entrées, d'où la limitation de leur nombre. La table se trouve dans le premier secteur du premier cylindre du disque dur : le MBR ou Master Boot Record.
Une de ces quatre partitions pourra être choisie comme partition de démarrage (partition active) et contiendra alors le petit programme nécessaire au démarrage de l'ordinateur.
Ces 4 partitions, décrites dans la table des partition, sont appelées des partitions primaires ou partitions principales.
On s'est vite rendu compte que 4 partitions ne suffisent pas. On a alors prévu de pouvoir créer de nouvelles partitions dans l'une de ces 4 partitions. Cette dernière partition devient alors une partition étendue et les nouvelles partitions sont des partitions logiques. La partition étendue est en fait le conteneur des partitions logiques et ne contient pas de données. Elle ne peut pas être choisie comme partition de démarrage.
Le disque peut donc comporter :
Vous avez vu,ci-dessus, qu'il faut formater le disque pour pouvoir l'utiliser. Dans les faits, ce sont les partitions qui sont formatées et qui reçoivent ainsi un système de fichiers qui permet de gérer la lecture et l'écriture sur les disques. Il existe un grand nombre de types de systèmes de fichiers. Par extension on parle de types de partitions. Ils sont définis par un code.
Le type d'une partition étant défini par un octet, il existe théoriquement 255 systèmes de fichiers possibles.
Dans le tableau ci-dessous, les codes des partitions sont en hexadécimal.
Plusieurs types de partition peuvent être désignés par le même code (p.ex. HPFS d'OS/2 et NTFS de NT).
Code | Type | Code | Type | Code | Type | Code | Type |
00 | partition non définie | 40 | VENIX | 80 | MINIX (-> 1.4a) | C0 | CTOS REAL/32 secure NTFT |
01 | FAT12 (< 10 M) | 41 | MINIX + DRDOS Personal RISC Boot Power PC Reference Platform |
81 | MINIX (1.4b->) Mitac Disk Manager |
C1 | FAT-12 DRDOS |
02 | XENIX root | 42 | Linux swap + DRDOS SFS Windows 2000 |
82 | Solaris X86 LINUX swap Prime |
C2 | Linux swap cachée |
03 | XENIX /usr | 43 | Linux native + DRDOS | 83 | LINUX native (ext2fs) | C3 | Linux cachée |
04 | FAT16 (< 32 M) | 44 | non attribué | 84 | OS/2 cachée Hibernation |
C4 | FAT16 <32M DRDOS |
05 | étendue | 45 | Boot-US boot manager EUMEL/Elan |
85 | Linux étendue | C5 | non attribué |
06 | FAT16 (> 32 M et <2 G) | 46 | EUMEL/Elan | 86 | agrégat FAT (NT) | C6 | FAT16 >=32M DRDOS FAT16 corrompue (NT) |
07 | OS/2 HPFS NT NTFS Advanced UNIX QNX2.x |
47 | EUMEL/Elan | 87 | agrégat NTFS (NT) | C7 | NTFS corrompue (NT) Syrinx boot |
08 | AIX boot SplitDrive Commodore DOS DELL spanning QNX 1.x et 2.x |
48 | EUMEL/Elan | 88 | non attribué | C8 | non attribué |
09 | AIX data Coherent FileSystem |
49 | non attribué | 89 | non attribué | C9 | non attribué |
0A | OS/2 boot manager Coherent swap OPUS |
4A | non attribué | 8A | Linux Kernel | CA | non attribué |
0B | FAT32 (>2 G et <2047 G) | 4B | non attribué | 8B | FAT32 miroir | CB | FAT32 DRDOS |
0C | FAT32x = idem 0B + LBA | 4C | non attribué | 8C | FAT32x miroir | CC | FAT32x DRDOS |
0D | non attribué | 4D | QNX4.x | 8D | FAT12 cachée (FreeFDISK) | CD | CTOS |
0E | FAT16x = idem 06 + LBA | 4E | QNX4.x 2ème part. | 8E | Linux Logical Volume Manager | CE | FAT16x DRDOS |
0F | étendue"x" = idem 05 + LBA | 4F | QNX4.x 3ème part. Oberon |
8F | non attribué | CF | non attribué |
10 | OPUS | 50 | OnTrack Disk Manager Lynx RTOS Oberon native |
90 | FAT16 cachée (FreeFDISK) | D0 | REAL32 |
11 | FAT12 cachée | 51 | OnTrack Disk Manager RW Novell |
91 | étendue cachée (FreeFDISK) | D1 | Multiuser DOS secured FAT12 |
12 | Diagnostics COMPAQ | 52 | Microport CP/M |
92 | FAT16 large cachée (FreeFDISK) | D2 | non attribué |
13 | non attribué | 53 | Disk Manager 6.0 Aux3 | 93 | Amoeba Linux native cachée |
D3 | non attribué |
14 | FAT16 (< 32 M) cachée | 54 | Disk Manager 6.0 Dynamic Drive Overlay | 94 | Amoeba bad block table | D4 | Multiuser DOS secured FAT16 <32M |
15 | non attribué | 55 | EZ-Drive | 95 | MIT EXOPC native | D5 | Multiuser DOS secured étendue |
16 | FAT16 (> 32 M) cachée | 56 | Golden Bow EZ-BIOS |
96 | non attribué | D6 | Multiuser DOS secured FAT16 >=32M |
17 | HPFS - NTFS cachée | 57 | DrivePro VNDI |
97 | FAT32 cachée (FreeFDISK) | D7 | non attribué |
18 | AST Windows swapfile | 58 | non attribué | 98 | FAT32x cachée (FreeFDISK) | D8 | CP/M-86 |
19 | Willowtech Photon coS | 59 | non attribué | 99 | DCE376 logical drive | D9 | non attribué |
1A | non attribué | 5A | non attribué | 9A | FAT16x cachée (FreeFDISK) | DA | Non-FS Data |
1B | FAT32 cachée | 5B | non attribué | 9B | étendue X cachée (FreeFDISK) | DB | Digital Research CP/M Concurrent CP/M Concurrent DOS CTOS KDG Telemetry SCPU boot |
1C | FAT32x cachée | 5C | Priam EDisk | 9C | non attribué | DC | CTOS |
1D | non attribué | 5D | non attribué | 9D | non attribué | DD | CTOS cachée |
1E | FAT16x cachée | 5E | non attribué | 9E | non attribué | DE | non attribué |
1F | non attribué | 5F | non attribué | 9F | BSD/OS | DF | DG/UX virtual disk manager |
20 | Willowsoft OFS1 | 60 | non attribué | A0 | hibernation | E0 | ST AVFS |
21 | Oxygen File System | 61 | SpeedStor | A1 | réservé | E1 | SpeedStor FAT12 |
22 | Oxygen Extended | 62 | non attribué | A2 | non attribué | E2 | non attribué |
23 | réservé | 63 | Unix System V GNU HURD |
A3 | réservé | E3 | SpeedStor |
24 | NEC DOS 3.x | 64 | Novell 286 PC-ARMOUR |
A4 | réservé | E4 | SpeedStor étendue |
25 | non attribué | 65 | Novell 386 | A5 | BSD | E5 | réservé |
26 | réservé | 66 | Novell Netware SMS | A6 | OpenBSD | E6 | réservé |
27 | non attribué | 67 | Novell | A7 | NEXTSTEP | E7 | non attribué |
28 | non attribué | 68 | Novell | A8 | non attribué | E8 | non attribué |
29 | non attribué | 69 | Novell Netware NSS | A9 | NetBSD | E9 | non attribué |
2A | non attribué | 6A | non attribué | AA | Fat 12 1.44Mb Olivetti | EA | non attribué |
2B | non attribué | 6B | non attribué | AB | non attribué | EB | Be FS |
2C | non attribué | 6C | non attribué | AC | non attribué | EC | non attribué |
2D | non attribué | 6D | non attribué | AD | non attribué | ED | non attribué |
2E | non attribué | 6E | non attribué | AE | ShagOS filesystem | EE | EFI MBR |
2F | non attribué | 6F | non attribué | AF | ShagOS swap partition | EF | EFI |
30 | non attribué | 70 | DiskSecure Multi-Boot | B0 | non attribué | F0 | Linux/PA-RISC boot loader |
31 | réservé | 71 | réservé | B1 | réservé | F1 | SpeedStor |
32 | non attribué | 72 | réservé | B2 | non attribué | F2 | DOS 3.3+ secondary partition |
33 | réservé | 73 | réservé | B3 | réservé | F3 | réservé |
34 | réservé | 74 | Scramdisk | B4 | réservé | F4 | SpeedStor large Prologue single-volume |
35 | Journaling FS OS/2 ou eCS | 75 | IBM PC/IX | B5 | non attribué | F5 | Prologue multi-volume |
36 | réservé | 76 | réservé | B6 | réservé | F6 | réservé |
37 | non attribué | 77 | VNDI | B7 | BSDI BSD/386 | F7 | non attribué |
38 | THEOS ver 3.2 2 Go | 78 | XOSL Bootloader | B8 | BSDI BSD/386 swap | F8 | non attribué |
39 | Plan 9 THEOS ver 4 spanned |
79 | non attribué | B9 | non attribué | F9 | non attribué |
3A | THEOS ver 4 4Go | 7A | non attribué | BA | non attribué | FA | non attribué |
3B | THEOS ver 4 étendue | 7B | non attribué | BB | non attribué | FB | VMware File System |
3C | PartitionMagic recovery | 7C | non attribué | BC | non attribué | FC | VMware Swap |
3D | non attribué | 7D | non attribué | BD | non attribué | FD | Linux raid |
3E | non attribué | 7E | non attribué | BE | Solaris 8 boot | FE | SpeedStor > 1024 cyl IBM PS/2 IML Windows NT Disk Administrator Linux Logical Volume Manager |
3F | non attribué | 7F | non attribué | BF | non attribué | FF | Xenix Bad Block Table |
Suivant le système d'exploitation installé, la dénomination des lecteurs de disquettes, des disques durs, des clés USB ... ne se fait pas de la même manière.
DOS et Windows ne font pas de différence entre lecteur de disquette, disque dur, partitions de disque, lecteur et graveurs de CD et DVD : ils sont tous désignés par une lettre de l'alphabet.
Il y a cependant un certain ordre :
Lecteurs de disquettes
Disques durs, lecteurs et graveurs CD et DVD, clés USB
Les lettres suivantes sont ensuite attribuées dans l'ordre suivant :
Avec Linux, les périphériques sont mieux classés :
Lecteurs de disquettes
Disques durs, lecteurs et graveurs CD et DVD, clés USB
Maintenant (depuis le noyau 2.6.18), les disques durs SCSI, Serial ATA et mêmes les disques durs IDE sont tous nommés en /dev/sdX par les nouveaux pilotes libata de Linux.
Avec les anciens pilotes, mais ce n'est plus d'actualité.
Sous DOS et et autres Windows, les partitions ne se distinguent pas des disques durs. Une lettre leur est attribuée, comme vu ci-dessus. La conséquence est qu'il n'est pas possible de savoir ce qui est disque et ce qui est partition, ni sur quel disque se trouve une partition donnée.
Lorsque un ou plusieurs disques sont partitionnés, les partitions qui en découlent s'appelleront :
Tout ordinateur possède un BIOS, c'est-à-dire un microprogramme qui initialise les différents périphériques (bus, ram, disques ...).
Il recherche un système d'exploitation situé dans une petite zone, sur l'un de ses périphériques accessibles.
La taille et l'emplacement de cette zone dépendent de la plate-forme informatique et du dispositif.
Celle-ci est généralement placée sur le premier secteur de la première piste du périphérique de démarrage (souvent, le premier disque dur).
Ce secteur est de taille trop réduite pour contenir un programme autonome. Son rôle est limité au chargement d'un programme de taille plus importante, typiquement le système d'exploitation, de manière directe ou via un chargeur d'amorçage.
Secteur d'amorçage et table des partitions :
Vous avez vu, dans le deuxième paragraphe, que les fichiers sont organisés en arborescence, avec un répertoires qui contiennent les fichiers. Ce répertoire peut lui-même être contenu dans un répertoire situé à un niveau supérieur et ainsi de suite. Le tout forme une arborescence, comme les branches d'un arbre.
Il n'y a pas de montage : chaque lecteur (physique ou logique), désigné par une lettre (A:, B:, C: ...) possède sa propre arborescence.
Par contre, sous Linux, il n'y a qu'une seule et unique arborescence.
Les arborescences des différentes partitions et des différents lecteurs y sont accrochés. Pour être plus précis, ces arborescences sont affectées à un répertoire donné, appelé point de montage.
ainsi, actuellement, un lecteur est monté au répertoire /run/media/user_actuel/disk.