Algorithme de récupération de données pour le système de fichiers HFS+

Dans cet article, nous allons explorer la structure du système de fichiers HFS+, et les changements qui le distinguent de la version précédente, HFS. Nous analyserons également les algorithmes de récupération de données appliqués aux disques HFS+.

Algorithme de récupération de données pour le système de fichiers HFS+

Avantages et particularités de HFS+

La principale distinction de HFS+ utilise l’architecture 32 bits au lieu du 16 bits dans HFS. L’ancien système d’adressage était une limitation sérieuse en soi car il ne supportait pas le travail avec des volumes contenant plus de 65 536 blocs. Par exemple, sur un disque de 1 Go, la taille du bloc d’allocation (cluster) sous HFS est de 16 Ko, donc même un fichier de 1 octet occuperait la totalité des 16 Ko d’espace disque.

Tout comme son prédécesseur, HFS+ utilise le soi-disant B-tree pour stocker une grande partie des métadonnées.

Les volumes HFS+ sont divisés en secteurs (appelés blocs logiques dans HFS), généralement d’une taille de 512 octets. Un ou plusieurs secteurs constituent un bloc d’allocation (cluster); le nombre de blocs d’allocation dépend de la taille totale du volume. L’adressage 32 bits permet d’utiliser plus de 4 294 967 296 clusters contre les 65 536 disponibles en 16 bits. En comparaison, les deux systèmes de fichiers diffèrent par:

  • longueur du nom de fichier: en HFS: 31, en HFS+ : 255;
  • encodage du nom de fichier: HFS: Mac Roman, HFS+: Unicode;
  • taille d’enregistrement: HFS : 512 octets, HFS+: 4 Ko;
  • et le nombre maximal de fichiers a augmenté: HFS: 2^31, HFS+: 2^63.
Visualisation
🔝 Top Tools to Recover Data from HFS+ Drives. How to Recover a MacOS Extended Drive in 2021 🍏

🔝 Top Tools to Recover Data from HFS+ Drives. How to Recover a MacOS Extended Drive in 2021 🍏

Architecture HFS Plus

Les volumes HFS Plus sont divisés en secteurs (appelés blocs logiques dans HFS), généralement d’une taille de 512 octets. Ces secteurs sont ensuite regroupés en blocs d’allocation (semblables aux clusters sous Windows) qui peuvent contenir un ou plusieurs secteurs. Le nombre de blocs d’allocation dépend de la taille totale du volume. HFS Plus utilise une valeur plus grande pour adresser les blocs d’allocation que HFS, 32 bits au lieu de 16 bits. Le système de fichiers utilise le codage Big Endian.

HFS Plus

Pour gérer le processus d’allocation des données sur le disque, HFS+ stocke des informations de service spéciales appelées métadonnées. Les éléments suivants sont les plus importants pour le bon fonctionnement du système de fichiers et présentent un intérêt particulier lors de la recherche de données manquantes:

  • En-tête de volume. Possède une structure de type table et utilise des enregistrements d’étendue (étendues);
  • Fichier d’allocation. Structuré comme un bitmap, il utilise des enregistrements d’étendue (Extents);
  • Fichier de catalogue. Possède une structure arborescente B-tree et utilise des enregistrements d’étendue (Extents);
  • Fichier de débordement des Extents. A une structure en B-tree;
  • Fichier de bloc incorrect. A une structure en B-tree;
  • Fichier de démarrage. Taille fixe;
  • Journal. La zone du disque avec une taille et un emplacement fixes.

Le système d’exploitation comprend plus d’autres structures, mais celles que nous avons énumérées sont d’une importance primordiale pour la récupération de données. Afin de poursuivre l’examen de la structure, nous devons étudier les notions de base, B-tree et Extents.

Qu’est-ce qu’une structure B-tree?

Pour stocker une partie de l’information, HFS+ utilise des B-trees. Ils sont nécessaires pour permettre l’écriture de certaines quantités de données (par exemple, 100 Mo) dans des blocs de taille fixe (par exemple, 4 Ko). Dans ce cas, le premier bloc ne contient pas les données elles-mêmes, mais les liens vers les blocs suivants qui peuvent soit contenir des liens vers un autre niveau de blocs, soit contenir les données elles-mêmes. Les éléments d’arbre contenant des liens sont appelés nœuds et les éléments de niveau zéro contenant des données sont appelés feuilles.

B-tree

Que sont les enregistrements d’étendue et le fichier de débordement d’étendue?

Pour stocker des informations sur le nombre de blocs occupés par un fichier, le système HFS+ peut utiliser de 0 à 8 enregistrements d’extension. Chaque enregistrement contient un lien vers le premier bloc contenant des données et le nombre de clusters séquentiels utilisés pour stocker les données. Si un fichier est trop fragmenté et que 8 enregistrements ne suffisent pas pour décrire toutes ses parties, les fragments (éléments) restants sont écrits dans le fichier avec des extensions supplémentaires Fichier de débordement d’étendue – Extent Overflow File.

En-tête de volume

L’en-tête de volume est toujours situé dans le deuxième secteur du disque (en partant du début) et contient des informations générales concernant le volume. Par exemple, la taille des blocs d’allocation, un horodatage qui indique quand le volume a été créé ou l’emplacement d’autres structures de volume: Fichier de catalogue, fichier de débordement d’étendue, fichier d’allocation, journal, etc. L’avant-dernier secteur du disque contient toujours la copie d’en-tête de volume, c’est-à-dire la copie de l’en-tête de volume.

L'en-tête de volume
L'en-tête de volume
L'en-tête de volume

Fichier d’allocation

Il contient des données sur les blocs d’allocation occupés et vacants. Chaque bloc d’allocation est représenté par un bit. Une valeur zéro signifie que le bloc est libre et une valeur 1 signifie que le bloc est en cours d’utilisation. Parfois, cette structure est appelée bitmap. Le fichier d’allocation peut changer de taille et n’a pas besoin d’être stocké de manière contiguë dans un volume. Toutes les informations sur les éléments du fichier sont stockées dans l’en-tête de volume.

Fichier d'allocation

Fichier de catalogue

Il stocke une grande partie des données sur l’allocation des fichiers et des dossiers sur le disque, et c’est en fait une grande structure B-tree.

Dans le système HFS Plus, ce fichier est très similaire au fichier catalogue dans HFS, la principale différence étant la taille du champ. Maintenant, il est plus grand et contient plus de données. Par exemple, il permet d’utiliser des noms Unicode plus longs de 255 caractères pour les fichiers. Dans le système HFS, la taille d’enregistrement est de 512 octets, contre 4 Ko dans HFS Plus pour Mac OS et 8 Ko pour OS X. Les champs dans le système HFS ont une taille fixe, tandis que HFS Plus leur permet d’avoir une taille variable en fonction de la quantité réelle de données.

La plupart des champs stockent de petits attributs qui peuvent tenir dans 4 Ko d’espace. Pour les attributs plus grands, des étendues supplémentaires sont utilisées (le nombre maximum disponible est de 8 étendues, et si d’autres sont nécessaires, elles sont enregistrées dans le fichier de dépassement d’étendue). Les étendues contiennent des liens vers les autres champs où les données de l’attribut le plus grand sont stockées.

Fichier de démarrage

Ce fichier est destiné aux systèmes d’exploitation qui ne prennent pas en charge HFS ou HFS Plus, et il est similaire aux blocs de démarrage dans les volumes HFS.

Blocs défectueux

Ce fichier contient des données sur tous les blocs déplacés (défectueux).

Journal

Le journal n’est pas un fichier mais plutôt une zone de taille fixe (ensemble de blocs) sur le disque. Les liens vers les premiers blocs et la taille de la zone sont stockés dans l’en-tête de volume. Avant que les modifications ne soient écrites sur le disque, HFS+ les écrit dans le journal, puis seulement dans les fichiers système. En cas de coupure de courant pendant l’opération d’écriture, le système de fichiers peut être restauré.

Il convient de noter, cependant, que la taille du journal dans HFS+ est limitée et que son contenu est régulièrement écrasé. Le journal du volume de démarrage dans Mac Mini est généralement écrasé dans les 5 à 10 minutes, et le temps avant qu’il ne soit écrasé dans MacBook est d’environ 30 minutes. Si Time Machine est activé, ce temps est réduit à 20 secondes.

Journal

Récupération de données dans Time Machine

À partir de Mac OS X Leopard, le système d’exploitation inclut Time Machine. Cet utilitaire crée des copies de sauvegarde des fichiers pour enregistrer toutes les modifications apportées au système de fichiers. Toutes ces choses aident les utilisateurs à restaurer l’intégralité du système d’exploitation, plusieurs fichiers ou un fichier individuel sous exactement la même forme qu’il était à un certain moment.

Apple fabrique un appareil spécial, Apple Time Capsule, qui peut être utilisé spécifiquement comme lecteur réseau pour stocker les fichiers de sauvegarde Time Machine. Time Machine peut être utilisé avec n’importe quel disque USB ou eSATA. Lorsque vous le démarrez pour la première fois, Time Machine crée un dossier sur le disque de sauvegarde (réserve) spécifié pour contenir toutes les données.

Plus tard, Time Machine ne copiera que les fichiers modifiés. D’une manière générale, tant que Time Machine est utilisé pour un disque, la récupération de données perdues n’est pas vraiment un problème.

Time Machine

Algorithme de récupération pour HFS+

La récupération de données à partir du système de fichiers HFS+ est plus difficile qu’à partir d’autres systèmes de fichiers. L’un des aspects causant des difficultés est que HFS+ utilise des arbres B-trees pour stocker la plupart des métadonnées de volume lors de l’allocation de fichiers. Après la suppression d’un fichier, l’arborescence B-tree est mise à jour immédiatement, de sorte que les informations sur l’emplacement du fichier supprimé sont immédiatement perdues.

Notre programme vous permet de voir le périphérique de stockage et la structure HFS+ sous Windows sans utiliser de logiciel ou de pilote supplémentaire.

L'outil récupère les fichiers de n'importe quel appareil, quelle que soit la raison de la perte de données.

Lors de l’exécution d’une analyse complète, son algorithme permet d’exclure ces éléments lors de la recherche de données perdues et de récupérer les informations dont nous avons besoin.

Si vous choisissez une analyse rapide, le programme lit l’en-tête de volume ou sa copie, accède au fichier catalogue et à l’emplacement du journal sur le disque. Si les blocs liés à ces fichiers ne sont pas encore écrasés, il les lira et récupérera les données.

Si les blocs du fichier supprimé n’ont pas été écrasés, cette méthode vous permet de récupérer complètement le fichier. Et même si l’écrasement a eu lieu, les données du fichier peuvent toujours être trouvées dans le journal, ou le fichier sera partiellement récupéré.

L’algorithme au-delà de l’analyse complète permet au programme d’exclure certains éléments lors de la recherche de données supprimées, de sorte que le programme reconstruira la structure du disque et affichera les fichiers supprimés, même si l’en-tête de volume et le fichier catalogue ont été partiellement écrasés.

Algorithme de récupération pour HFS+

Conclusion

Dans l’ensemble, on peut dire que HFS+ est un système de fichiers obsolète, qui est devenu la version optimisée d’un système de fichiers encore plus ancien, HFS. Pour le moment, HFS+ est remplacé par Apple File System.

En termes de performances, de sécurité et de fiabilité, HFS+ est considérablement en retard par rapport au système APFS, de sorte que la question de la récupération des données devient particulièrement pertinente. Les informations disparaissent rarement sans laisser de trace, alors connaissant bien le fonctionnement du système de fichiers, vous pouvez espérer récupérer même les éléments initialement considérés comme définitivement perdus.

Visualisation
🔝 Top Tools to Recover Data from APFS drives or how to recover Apple MacOs disk in Windows (2021)🍏

🔝 Top Tools to Recover Data from APFS drives or how to recover Apple MacOs disk in Windows (2021)🍏

Abdelhamid Balti

Auteur: , Rédacteur technique

AbdelHamid Balti est un rédacteur technique chez Hetman Software. Il gère les tutoriels, les procédures et les revues détaillées concernant le fonctionnement des outils de l'entreprise avec toutes sortes de périphériques de stockage de données.

Mykhailo Miroshnychenko

Éditeur: , Rédacteur technique

Mykhailo Miroshnychenko est l'un des principaux programmeurs de la société Hetman Software. S'appuyant sur quinze années d'expérience en développement logiciel, il partage ses connaissances avec les lecteurs de notre blog. En plus de la programmation, Mykhailo est un expert dans le domaine de la récupération de données, des systèmes de fichiers, des périphériques de stockage de données et des matrices RAID.

Recommandé pour vous

Vous êtes accueilli par l'assistant Hetman Software, créé sur la base de l'intelligence artificielle.
Démarrer la discussion