Comprendre les systèmes de fichiers

Un système de fichiers est une structure logique qui permet au système d’exploitation d’accéder aux fichiers qui se trouvant dans un périphérique de données (Disque dur, clé USB, etc).
Le système de fichiers vise donc à organiser et structure les données des fichiers dans un disque dur.
Lorsque vous formatez une partition de disque, vous préparez le système de fichiers afin que le système d’exploitation puisse utiliser cette partition et y stocker des fichiers, répertoires.

Cet article, vous explique le fonctionnement général des systèmes de fichiers.

Fonctionnement d’un système de fichiers

Lorsque vous formatez un disque dur, ce dernier installe le système de fichiers sur la partition.
Cela commence par découper la partition de disque en bloc ou secteur d’une taille qui peut être fixé manuellement.
Ces blocs contiennent des données binaires qui peuvent stocker des informations et en autres les fichiers.
Le système d’exploitation se doit de structurer ses blocs afin de pouvoir y retrouver ses fichiers.

Par défaut, la taille d’un secteur est en général de 512 octets.

Fonctionnement d'un système de fichiers

Fonctionnement d'un système de fichiers

Les systèmes d’exploitation utilisent des systèmes de fichiers différents.
Par exemple, Microsoft pour Windows utilise NTFS alors que GNU/Linux utilise ext4.
L’organisation et le fonctionnement de ces systèmes de fichiers est différent, bien qu’on peut retrouver des similitudes.
De ce fait, les propriétés finales sont différentes. Certains systèmes de fichiers peuvent être plus performants dans des dossiers avec des milliers de fichiers, d’autres dans le recouvrement dans le cas de corruption, etc.

NTFS

NTFS (New Technology File System) est le système de fichiers de Microsoft pour Windows.
Le système de fichiers de Microsft découpe la partition en cluster qui sont composés d’un ou plusieurs secteurs (blocs).
Par exemple, si un bloc fait 512 et que les cluster d’une partition NTFS sont à 4096, cela signifie qu’un cluster est composé de 8 secteurs (8*512 = 4096).
Le système de fichiers de Microsoft stocke ensuite les fichiers et dossiers dans ces clusters.
Un cluster ne peut pas contenir plusieurs fichiers, de ce fait, il est plus efficient d’avoir des clusters petits pour minimiser la perte de données liées à des clusters non utilisées.

Voici la structure du système de fichier NTFS avec les différentes tables :

Fonctionnement du système de fichiers NTFS

Secteur d’amorçage
NTFS Boot Sector
Contient les paramètres de bloc du BIOS et les informations du volume et de structures du systèmes de fichiers.
On y trouve notamment l’emplacement de la MFT dans la partition.
Si cette information est perdue ou corrompue, la MFT est introuvable et la partition est considérée comme non formatée.
Sur les disques MBR, ce dernier se trouve dans le premier secteur du disque dur.
Sur les ordinateurs en GPT, au début et à la fin de la partition (sauvegarde).
Master File Table (MFT)Stocke les informations afin de pouvoir retrouver les fichiers dans le système de fichiers.
Les attributs de fichiers y sont aussi stockés.
Si le MFT est endommagé, Windows ne peut plus accéder aux fichiers.
Lors d’un formatage rapide, c’est cette dernière qui est remise à zéro.
File System Data (FSD)S’y trouvent les données qui en sont pas présent dans la Master File Table.
Master File Table CopyIl s’agit d’une copie des informations essentiels, dns le cas où un problème est présent dans la MFT

On obtient alors pour un disque GPT la structure suivante :

Fonctionnement du système de fichiers NTFS

Fonctionnement du système de fichiers NTFS

On retrouve les informations contenus dans ces tables depuis un éditeur de disque.
Exemple du NTFS Boot Sector avec les informations sur les blocs et informations sur la MFT.

Fonctionnement du système de fichiers NTFS

et le contenu de la MFT :

Fonctionnement du système de fichiers NTFS

Pour des détails plus complets sur la structure des disques, partitions et NTFS, vous pouvez commencer par ce lien : https://blogs.technet.microsoft.com/windowsinternals/2015/01/06/recupration-de-partitions-i-quelques-dfinitions-et-structures/

Ext

Ext est le système de fichiers par défaut de Linux qui supporte beaucoup de type de fichiers comme JFS, ReiserFS etc.
Ce file system est actuellement en version 4 et porte donc le nom de ext4.

Le système de fichiers ext4 possède un boot block pour amorcer le système d’exploitation puis découpe le disque en série de groupe de blocs.
Chaque groupe de blocs est composé de la même manière :
Fonctionnement du système de fichiers ext4

Contrairement à NTFS, les informations des fichiers ne sont pas stockés dans un emplacement spécifique du disque mais éparpillé dans les groupes de blocs du disque.
Ces derniers stockent :

  • Les inodes : les métadonnées des fichiers et dossiers comme le type de fichiers, les quota, permissions, etc.
  • Les données du fichier

Les dossiers contiennent la liste des fichiers et leurs inodes.
Ci-dessous le dossier /home/you avec les fichiers foo et bar et leurs inodes.

Fonctionnement du système de fichiers ext4

Voici la structure d’un groupe de bloc :

Fonctionnement du système de fichiers ext4

  • Super Block
    • Le superblock stocke des informations du système de fichiers comme le nombre et la taille des blocs du disque, le nombre d’inodes et bien d’autres informations.
  • Group Descriptor
    • Stocke l’emplacement de la table bitmaps des d’inodes et blocs et la table des inodes
    • Le nombre de blocs et inodes libres
    • Stocke le nombre de dossiers dans le groupe
  • Block et Inode Bitmap
    • Il s’agit de la liste (ou carte si vous préférez) des blocs et inodes stockées en bits du groupe
  • Inode Table
    • Stocke les métadonnées et les emplacements des blocs datas pour un fichier

On peut alors très bien travailler avec les inodes au lieu des noms de fichiers.
Par exemple, ci-dessous on liste les inodes pour un fichier et on peut lire son contenu avec icat (package sleuthkit).
Généralement, on utilise les inodes pour supprimer un fichier quand on ne peut pas le nommer facilement depuis l’invite de commandes :

find -inum <num>  -exec rm -f {} \;

Fonctionnement du système de fichiers ext4

Le nombre d’inodes sur un disque est limité, si vous créé des dossiers avec des milliers de fichiers (ce qui ajoute des inodes), vous pouvez saturer la place disque alors que df vous indique qu’il reste de la place disque.
Cela arrive s’il ne reste plus accès d’inodes libres.

Fonctionnement du système de fichiers ext4

La commande dumpe2fs permet d’obtenir les informations du système de fichiers :

Fonctionnement du système de fichiers ext4

On retrouve alors la sturcture des blocs :

Fonctionnement du système de fichiers ext4

Lors d’un formatage en ext4, vous pouvez choisir la taille des inodes avec l’option -I (mke2fs -I)
Sinon, la taille par défaut des inodes peuvent être changée depuis le fichier /etc/mke2fs.conf

Journal et réparation du système du fichiers

Enfin, la plupart des systèmes de fichiers sont journalisés afin de conserver une intégrité et cohérences des données en cas de coupure de coupure, plantage du système d’exploitation, etc.
Le journal enregistre les modifications qui doivent être opérées sur le système de fichiers.
Lorsqu’une panne a lieu, on repart sur les informations du journal.
L’inconvénient de ce dernier est une double écriture des actions opérées sur le système de fichiers et peut donc jouer sur les performances.

Tous les systèmes d’exploitation offre des utilitaires qui permettent de vérifier la cohérence du système de fichiers et opérer des réparations.

Lorsque le système de fichiers est monté, c’est à dire en cours d’utilisation, vous êtes obligé d’effectuer la vérification et réparation au démarrage du système d’exploitation.
(Bien que sur Linux, il est possible de démonter la partition / sans redémarrer)

(Visité 344 fois, 1 visites ce jour)

Vous pouvez aussi lire...

Les Tags : #Windows10 - #Windows - #Tutoriel - #Virus - #Antivirus - #navigateurs WEB - #Securité - #Réseau - #Internet