Les fichiers PAR
Présentation des fichiers PAR
Bonjour et bienvenue dans ce site web de présentation des fichiers PAR.
L'objectif de ce document est de faire découvrir au plus grand nombre l'utilité des fichiers PAR2. Aucune analyse des algorithmes utilisés ne sera effectuée. Des liens sont disponibles dans le menu pour toute personne désirant approfondir le sujet.
1. Introduction
La première question venant bien évidemment à l'esprit est: qu'est ce que les fichiers PAR?
PAR représente les 3 premières lettres de Parity Volume Set. Comme son nom l'indique, il s'agit de la parité d'un ensemble de fichier. Mais avant d'entrer dans le vif du sujet, commençons par un rapide état des lieux.
Le progrès technologique engendre aujourd'hui des manipulations de volume de données toujours plus important. L'avènement de l'Internet haut-débit à bas prix et les disques durs de capacités toujours plus grosses et de moins en moins cher ne sont pas innocents à cette progression fulgurante du volume de donnée.
Les moyens de stockages sont aujourd'hui très variés et peuvent se trouver aussi bien localement qu'à l'autre bout de la planète. On peut classer ces supports de stockage en 3 catégories: les supports magnétiques, optiques et enfin électroniques (clef USB, carte mémoire d'appareil photo, etc.). Cependant, ils ont tous un problème commun: les défaillances. En effet, qui ne sait jamais retrouvé bloqué par un cd-rom inutilisable à cause d'une simple rayure, ou une archive impossible à décompresser car l'un des fichiers a été endommagé lors d'un transfert?
On le comprend aisément, plus le volume de donnée manipulé est important, plus le risque de l'endommager est conséquent.
Pour remédier à cela, des solutions simples ont été créées afin de détecter toute anomalie sur un volume de donnée. Cet aspect est explicité et accessible via le menu Théorie/Existant
Les fichiers PAR, constituant l'objet de ce site web, sont quant à eux un ingénieux système permettant non seulement de détecter les anomalies, mais aussi de les réparer. Ils en sont aujourd'hui à leur deuxième version, et leur fonctionnement est explicité et accessible via le menu Théorie/Fonctionnement. Les spécifications sont également accessibles à l'aide des menus Liens/Spécification 1 et Liens/Spécification 2 respectivement pour les versions 1 et 2.
Enfin, une liste de logiciel permettant de mettre en pratique l'utilisation de vos données avec les fichiers PAR est accessible via le menu Liens/Logiciels
Méthodes existantes
Le principe des méthodes existantes antérieures à nos fichiers PAR sont assez simples. Le but est de s'assurer que le contenu d'un fichier n'a pas été modifié ou erroné. Pour cela, des algorithmes permettant le calcul des hashcodes des fichiers sont utilisés.
Qu'est-ce-qu'un hashcode?
Un hashcode est le résultat d'un calcul algorithmique sur un volume des données. Celui-ci est unique et permet de garantir l'intégrité d'un fichier susceptible d'avoir été modifié lors du transport des données, d'une action intentionnelle ou simplement d'une défaillance du support de stockage.
Ce résultat est mémorisé dans un fichier séparé. Il permet ainsi de comparer le hashcode calculé sur les données réceptionnées avec celui d'origine (dans le fichier supplémentaire) et permettra de détecter tout fichier manquant ou erroné. L'utilisateur doit simplement re-télécharger les fichiers manquants/endommagés, en supposant que ceux-ci ne le soient pas sur le serveur lui même.
Concernant les fichiers volumineux, ils sont souvent scindés à l'aide d'outils spécifiques (Logiciel pour découper les fichiers, archiver en multi-archive...) pour limiter leurs temps de téléchargement en cas d'erreur en ne retéléchargeant que les fichiers endommagés.
Il existe deux principaux types de fichiers, basés chacun sur des algorithmes différents:
1. SFV (Simple File Verificator)
Ce type de fichier est utilisé pour vérifier un ensemble de fichier. Il contient la liste des fichiers avec leurs contrôles d'erreurs respectifs. Le temps de traitement nécessaire au calcul du hashcode est inférieur au second type de fichier (md5), mais l'algorithme utilisé ne garantit pas l'unicité du hashcode généré. Ils sont donc à éviter, d'autant plus que la durée de traitement n'est plus un facteur déterminant dans le choix de la solution.
Le contenu du fichier est structuré ainsi:
Demo.part02.rar bfbc2466
Demo.part01.rar f9ab9868
Demo.part02.rar bfbc2466
Demo.part03.rar 4819af07
Demo.part04.rar 1d563c72
Demo.part05.rar 10199415
Demo.part06.rar 96fcf9c4
Demo.part07.rar 4398e07d
Demo.part08.rar ebc86153
Demo.part09.rar ccc7b9cb
Demo.part10.rar 9d549bff
Demo.part11.rar 7a67bec8
2. MD5 (Message Digest 5)
Un fichier .MD5 contient les codes MD5 des fichiers suivi des noms de fichiers respectifs. Le MD5 (MD signifiant Message Digest) crée une empreinte du fichier de 128 bits garantissant un identifiant unique. Le fichier est structuré de la sorte:
e573499d972aa92dfeb6efb2ccadc527 *Demo.part01.rar
e19eb15c37210f8e7e84ae9a4006b394 *Demo.part02.rar
3407c0395d88d62c03275e34a448fcef *Demo.part03.rar
6eaa8cd714e34dfee7ee2aeac8825618 *Demo.part04.rar
6a2bece51e019148c37c2bb2de1711ca *Demo.part05.rar
a29d50e7a95b35d790d5f437b8a6b19a *Demo.part06.rar
46401dba31a42e308eba8d167d7d7ded *Demo.part07.rar
85b8e407be075aa6a6d94fdb832e4d24 *Demo.part08.rar
54b8616604e3146f1098ddd92eb8da24 *Demo.part09.rar
8e55e493a048922c73d0e9a2da5f46db *Demo.part10.rar
623a11000441c1c25c8a5e718f7830fa *Demo.part11.rar
3. Logiciel
Voici un logiciel libre capable de générer ce genre de fichier SFV ou MD5: hksfv.
Fonctionnement des fichiers PAR
Voyons désormais le fonctionnement de ces fichiers "évolués" que sont les fichiers PAR.
Ils sont évolués dans le sens où ils sont capables de reconstruire un fichier endommagé à l'aide de fichier supplémentaire (fichier de récupération) générés avec un algorithme particulier: Reed-solomon. Le fonctionnement de cet algorithme est accessible via le menu Liens/Reed-Solomon (pdf).
Les fichiers PAR en sont à leur révision n°2 et leur fonctionnement peut s'apparenter à l'équivalent du RAID mais avec des fichiers en lieu et place des disques durs.
Intéressons nous sans plus attendre aux fonctionnements de ces fichiers PAR:
1. La première version des fichiers PAR
Comme indiqué en introduction, les fichiers PAR reposent sur le même principe de fonctionnement que le RAID (Redundant Array of Inexpensive Disks).
Qu'est-ce-que le RAID?
Le RAID est un regroupement de disque dur pour n'en former qu'un seul (logique) et apportant une tolérance de panne. Ainsi, si l'un des disques durs venait à ne plus fonctionner, les données stockées sur l'ensemble du volume ne seraient pas perdues. Il existe différent types de RAID, mais nous nous intéresserons plus particulièrement au RAID 3.
Supposons que notre RAID 3 est constitué de 4 disques durs. L'un d'eux sera sacrifié pour supporter la tolérance de panne en mémorisant à chaque écriture sur l'ensemble du volume (les 3 disques restants) le bit de parité associé. Ainsi, si l'un des disques durs venait à manquer, il serait possible de le regénérer à l'aide du bit de parité. S'il s'agissait du disque de parité, alors il faudrait simplement recalculer l'ensemble des bits de parités.

Bien évidemment, les disques doivent être de taille identique.
Et les fichiers PAR?
Pour les fichiers PAR version 1, le principe de fonctionnement est identique. Les disques durs sont remplacés par les fichiers et le disque de parité par le(s) fichier(s) PAR.

Et oui, contrairement au RAID, il est possible d'avoir plusieurs fichiers PAR (équivalent au disque de parité), pour permettre de reconstruire plus d'un fichier manquant ou endommagé. Cela implique l'utilisation d'un algorithme particulier Reed-Solomon pour ne pas avoir des fichiers de récupérations identiques. De plus, les fichiers sont rarement de même taille ce qui va engendrer un fichier PAR de taille équivalente au plus grand des fichiers.
Prenons un exemple concret sur un fichier de 100Mo que nous souhaiterions protéger. Comme nous venons de le voir, le fichier PAR généré aura la taille du plus grand des fichiers, dans notre cas, au moins 100Mo. Cela n'est pas très intéressant, d'une part car nous doublons l'espace disque nécessaire, et d'autre part, plus le fichier est gros, plus il est exposé aux risques d'erreurs et à des temps de transfert important. Nous allons donc le scinder en plusieurs fichiers de 10Mo à l'aide d'un archiveur (Utilitaire permettant la compression de fichier. Ex: WinRAR). Les fichiers obtenus avec leurs tailles respectives seraient:
Demo.rar 10Mo
Demo.r00 10Mo
Demo.r01 10Mo
Demo.r02 10Mo
Demo.r03 10Mo
Demo.r04 10Mo
Demo.r05 10Mo
Demo.r06 10Mo
Demo.r07 10Mo
Demo.r08 7Mo
Protéger le contenu de ces fichiers en utilisant la norme PAR 1 engendrerait la création d'au moins deux fichiers supplémentaires:
Demo.PAR 0,01Mo
Demo.P01 10,00Mo
...
Ces deux fichiers jouent un rôle différent. Le premier est un fichier d'index dont l'extention sera toujours .PAR. Il est de très petite taille, tandis que le second et un fichier de récupération (parité) dont la taille correspond à celle du plus grand des fichiers (Dans notre cas 10Mo). Son nom sera toujours du type Pxx où xx représente le n° du fichier de récupération. Au delà de 99, l'extension devient Qxx ainsi de suite.
1. Le fichier index .PAR est composé de:
- Une partie entête
- La structure des fichiers mémorisés
- Un commentaire
Il joue le même rôle que les solutions existantes détaillées précédemment (détection d'erreur).
2. Un fichier de récupération (P01...) est composé de:
- Une partie entête (identique à l'index)
- La structure des fichiers mémorisés (identique à l'index)
- Les données
Il permet tout comme le fichier index de détecter les erreurs, mais surtout de réparer ou regénérer un fichier. Il faut 1 fichier Pxx pour réparer 1 fichier. Plus les fichiers sources sont petits, plus il est possible de générer de fichiers PAR et donc d'en réparer plusieurs.
La partie commune à ces fichiers (entête + structure des fichiers) contient:
- Des informations sur les fichiers PAR
- La liste des fichiers protégés
- Leurs checksums MD5
- Leurs tailles
- Leurs noms de fichier
La structure des fichiers est donc scindée en 3 parties, dont la composition est la suivante:
| Taille (octets) | Rôle |
| 1. La partie "générique" des fichiers PAR: | |
| 8 | Chaîne "PAR"\0 |
| 8 |
|
| 16 | HashCode de la suite du fichier |
| 16 | HashCode identifiant l'ensemble des fichiers PAR |
| 1 | N° du fichier PAR (0 = PAR, 1 = P01 ... jusqu'à 99, puis Q00 et ainsi de suite.) On note qu'il existe par conséquent une limitation du nombre de fichier PAR à 28 soit 256 fichiers. |
| 8 | Nombre de fichiers stockés |
| 8 | Offset du début de la liste des fichiers |
| 8 | Taille de la liste des fichiers |
| 2. La structure des fichiers mémorisés, répétée autant de fois qu'il y a de fichier: | |
| 8 | Offset de début de la zone de donnée |
| 8 | Taille de la zone de donnée |
| 8 | Taille de l'entrée dans la liste (octet) |
| 8 | 64 bits de statut |
| 8 | Taille du fichier enregistré (octet) |
| 16 | HashCode MD5 du fichier complet |
| 16 | HashCode MD5 des 16 premiers Ko du fichier. Pourquoi les 16 premiers Ko? Tout simplement pour détecter plus rapidement les fichiers concernés dans le répertoire courant. |
| X * 2 octets | Nom du fichier + extension (sans le chemin absolu) |
| 3. et le commentaire pour le fichier index .PAR ou les données pour les autres fichiers: | |
| X octets | commentaire / Données |
Comme on vient de le voir, chaque fichier à connaissance de l'ensemble des fichiers inclus dans nos fichiers PAR. Le fichier index joue le même rôle que les solutions existantes (SFV, MD5), à savoir vérifier la cohérence des données. Ce fichier est d'une taille minime, ce qui rend son téléchargement "indispensable" pour s'assurer de la validité des données. Les fichiers endommagés ou manquants spécifiés pourrons tout simplement être regénérés avec autant de fichier PAR que nécessaire (1 Pxx par fichier invalide), sous réserve qu'il y en ai eu suffisamment de créé. Ainsi, on ne télécharge que la quantité de fichier PAR (Pxx) nécessaire à la récupération des données.
Cependant, on se rend compte qu'une simple erreur d'un octet sur un fichier peut nécessité le téléchargement de quelque dizaines de Mo (taille d'un fichier Pxx), ce qui est aussi coûteux que d'avoir un fichier manquant. De plus, il est tout à fait possible qu'un fichier PAR soit endommagé et devienne ainsi inutilisable, alourdissant par l'occasion le temps de téléchargement.
| Conditions de récupération: | |
| Problématique | Solution |
| 1 fichier endommagé | 1 fichier PXX |
| 1 fichier manquant | 1 fichier PXX |
| 1 ou plusieurs fichiers mal nommés | le fichier index ou l'un des fichiers PXX |
Défauts de la norme n°1: - Pas de réparation - 1 octet défectueux nécessite le téléchargement d'un fichier PAR (Pxx) - Taille fichier PXX = taille du plus gros des fichiers - 1 fichier PAR endommagé est inutilisable (téléchargé inutilement) - Les fichiers PAR sont trop volumineux si le nombre de fichier de donnée est trop petit (1 fichier de données => 1 fichier PAR de même taille => double le volume) ou si l'un des fichiers sources et trop volumineux. - Limité à 255 fichiers PAR
Tous ces petits défauts font que la norme PAR 1 a été rapidement été supplantée par la norme PAR 2 que nous allons détailler ci-après.
2. La deuxième version des fichiers PAR
Nous l'avons vu précédemment, le principal problème des fichiers PAR 1 est la taille des fichiers. L'idée de la norme PAR2 a été de découper virtuellement ces fichiers. On parle alors de "bloc".
Le schéma suivant illustre le principe des blocs à partir d'un fichier de donnée:

Chaque fichier est scindé virtuellement en bloc, puis chacun de ces blocs est considéré comme un fichier à part entière. Il est alors possible de calculer le fichier PAR correspondant, qui fera lui aussi la taille d'un bloc (bloc PAR). Enfin, au lieu de générer un trop grand nombre de fichiers PAR, ils seront regroupés pour former un fichier PAR2.
Si nous reprenons notre exemple avec notre fichier de 100Mo répartis en fichier multi-archive, l'organisation des fichiers est la suivante:
Les fichiers multi-archives ne sont pas modifiés (ce qui est normal):
Demo.rar 10Mo
Demo.r00 10Mo
Demo.r01 10Mo
Demo.r02 10Mo
Demo.r03 10Mo
Demo.r04 10Mo
Demo.r05 10Mo
Demo.r06 10Mo
Demo.r07 10Mo
Demo.r08 7Mo
En revanche, des fichiers avec des noms particuliers sont apparus en plus de notre fichier index:
Demo.PAR 0,01Mo
Demo.vol00+01.PAR2 0,40Mo
Demo.vol01+02.PAR2 0,80Mo
Demo.vol03+03.PAR2 1,50Mo
Demo.vol06+05.PAR2 2,30Mo
...
On remarque d'une part, une convention de nommage bien différente de la version 1 et d'autre part, des tailles de fichiers variables.
Les fichiers PAR2 ont un nom formé de la manière suivante: nom.vol00+01.PAR2 où:
- nom est le nom donné aux fichiers de récupération. Dans notre cas, il s'agit de Demo, le nom de notre fichier source multi-archivé.
- 00 représente la position du ou des blocs contenus dans le fichier PAR2. Ici, après le bloc 00
- 01 représente le nombre de bloc PAR contenu dans le fichier PAR2. Ici 1.
Demo.vol03+03.PAR2 signifie donc qu'il s'agit du fichier PAR2 contenant les blocs générés après le bloc n°3 et qu'il en contient 3 également. Le fichier PAR suivant portera donc le nom Demo.vol06+xx.PAR2 xx suivant le nombre de bloc qu'il contiendra.
On comprend maintenant les noms des fichiers PAR2 et par conséquent leur taille de fichier. Mais pourquoi avoir fait varié la taille des fichiers, ou du moins, le nombre de bloc présent dans chacun d'eux?
Il s'agit là d'une nouvelle astuce qui permet de minimiser la quantité de donnée nécessaire à la réparation des fichiers. Ainsi, avec le fichier index, l'utilisateur connaîtra le nombre exacte de bloc endommagé et donc nécessaire à la réparation. Il pourra ainsi sélectionner lui même les fichiers PAR2 en fonction de la quantité de bloc nécessaire pour limiter le téléchargement. On parle désormais de réparation car ce sont les blocs (parties) endommagés qui sont regénérés et non le fichier complet comme c'était le cas dans la version 1.
Les avantages ne s'arrêtent pas là. En effet, chaque fichier étant découpé virtuellement en bloc, seul les blocs endommagés le composant seront inutilisables, en revanche le reste sera parfaitement exploitable, permettant ainsi d'économiser la quantité de donnée à télécharger. A noter que cela s'applique aussi aux fichiers PAR2 qui sont également constitués de blocs.
Contrairement à la version 1 des fichiers PAR, nous voyons qu'un fichier endommagé n'est plus inutilisable et permet d'éviter un téléchargement de donnée supplémentaire.
| Conditions de récupération: | |
| Problématique | Solution |
| 1 ou plusieurs fichiers endommagés | télécharger le nombre de bloc nécessaire (le minimum) |
| 1 fichier manquant | x blocs PAR2 (x étant le nombre de bloc nécessaire à la composition du fichier => pas plus de la taille du fichier à télécharger) |
| 1 ou plusieurs fichiers mal nommés | le fichier index ou l'un des fichiers PAR2 |
Avantages des fichiers PAR2:
- Il s'agit effectivement de "Réparation"
- Limite la quantité de donnée à télécharger pour réparer les fichiers. (1 octet défectueux => 1 bloc à télécharger)
- La taille des fichiers PAR2 est différente de celle des fichiers sources
- Taille des fichiers PAR2 variable pour optimiser le temps de téléchargement
- Les fichiers PAR2 partiellement endommagés sont exploitables
- Pas de contrainte d'utilisation s'il y a 1 seul fichier de donnée
- Supporte jusqu'à 32768 fichiers PAR2
3. Comparaison version 1 VS version 2
Voici un petit récapitulatif des différences entre les version 1 et 2 des fichiers PAR:
| Problématique | Solution PAR1 | Solution PAR2 |
| 1 fichier endommagé | fichier inutilisable => nécessite 1 fichier PXX | fichier partiellement utilisable, nécessite x blocs pour le réparer |
| 1 fichier de récupération endommagé | fichier inutilisable (+ état inconnu avant de l'avoir téléchargé) | fichier partiellement utilisable |
| 1 fichier manquant | 1 fichier PXX (taille du plus gros des fichiers) | x blocs (équivalent à la taille du fichier) |
| 1 ou plusieurs fichiers mal nommés | le fichier index ou l'un des fichiers PXX | le fichier index ou l'un des fichiers PAR2 |
| Limitation du nombre de fichier de récupération | 255 | 32768 |
| Quantité de donnée nécessaire / Temps de téléchargement | Au minimum, la taille du plus gros des fichiers | Au minimum, la taille d'un bloc (taille paramétrable lors de la création des fichiers PAR2 mais fonction du volume de donné à protéger) |
| Utilisation avec 1 seul fichier de donnée | Déconseillé car double le volume de donnée. | Pas de contrainte d'utilisation, fonctionne avec des blocs |
Comment créer des fichiers PAR?
Tout d'abord, il faut télécharger l'un des logiciels supportant ce format de fichier. Vous en trouverez une liste accessible via le menu Pratique/Logiciels. Pour notre démonstration, nous utiliserons le logiciel QuickPar (Windows© ).
1. Installation du logiciel QuickPar
L'installation du logiciel QuickPar est relativement simple.
Le télécharger à cette adresse, puis, lancer le programme d'installation et suivre les instructions à l'écran. A la fin de l'installation, QuickPar sera intégré au menu contextuel de l'explorateur de fichier, dont nous allons voir l'utilisation ci-dessous.
2. Création de fichier PAR2
Une fois que QuickPar est installé, nous pouvons créer nos fichiers PAR2. Les fichiers PAR1 étant devenu obsolètes, ils ne peuvent même plus être générés (du moins avec QuickPar).
Il faut commencer par sélectionner les fichiers que l'ont désirer protéger des endommagements. Il faut alors sélectionner les fichiers directement dans l'explorateur de fichier de Windows©, puis en faisant un clique droit sur la élection. Un menu contextuel apparaît, avec un sous menu QuickPar permettant la création des fichiers PAR2:

L'interface de QuickPar apparaît. On y distingue 3 sections: Fichiers sources, Allocation de bloc et Fichiers de récupération.

Détaillons à présent les différentes zones:
- Il s'agit de l'espace affichant les fichiers sources sélectionnés. Il est également possible de modifier cette sélection par ajout ou suppression de fichier. On remarquera qu'il existe une fonctionnalité permettant le découpage des fichiers sources à une certaine valeur (1b).
- Cette partie permet de spécifier le nombre de bloc "virtuel" que l'on désire. Bien évidemment, il est recommandé d'en avoir le plus possible pour de minimiser l'impact d'une erreur en la réparant avec un minimum de donnée (fichier PAR2). Il est également possible d'agir sur cette barre en modifiant la taille d'un bloc (2b). Plus ils sont gros, moins il y en a. Un champ "Restreindre la taille des blocs en multiples de la taille d'un article UseNet" (2c) permet de faciliter le stockage des fichiers sur Internet en limitant déjà la taille des fichiers générés au seuil autorisé sur Usenet.
- Le nom de base des fichiers PAR2 peut être modifié, ainsi que leur emplacement
- Il est ici possible de définir le pourcentage de redondance d'information, autrement dit, la quantité de fichier PAR2 généré. Sur notre exemple du fichier de 100Mo scindé en multi-archives de 10Mo; 10% de redondance nous permettrait de reconstruire au mieux un fichier du multi-archivage (10Mo), qu'il soit manquant ou 100% endommagé. Cette barre de progression agit directement sur les paramètres Nombre de blocs de récupération et Nombre de fichier de récupération (4b), également modifiables manuellement.
- L'indicateur affiche le nombre de fichier qu'il sera possible de reconstruire en intégralité. minimum et maximum existent dans le cas ou un bloc est utilisé partiellement (fichier de donnée source dont la taille ne permet pas d'avoir un nombre exacte de bloc).
- Il est possible de spécifier le n° du premier bloc de récupération. Cette option est utile dans le cas ou le nombre de fichier PAR2 est insuffisant. Dans ce cas, il suffit d'en regénérer en plus de ceux existant. Il faut donc spécifier à quel bloc nous en sommes pour ne pas avoir des blocs de récupérations en plusieurs exemplaires et donc inutiles. La position actuelle des blocs peut être déterminée à partir du nom du dernier fichier PAR2 généré. Ainsi, s'il s'agit de Demo.vol22+18.PAR2, alors, le prochain débutera à partir du bloc 22+18 soit 40.
- Enfin, il est possible de spécifier s'il l'on désire des fichiers PAR2 de taille variable ou non. Il est recommandé de conserver Variable (taille selon une puissance de 2) pour permettre à la personne de choisir le nombre de bloc minimum dont elle a besoin.
Il est maintenant possible de générer les fichiers PAR2. Cliquons sur Créer. L'initialisation de l'algorithme de Reed-Solomon débute...

puis la génération des fichiers PAR2 à sont tour:

enfin, la génération est terminée. Quickpar a vérifié la validité des fichiers PAR2 générés.

Il est cependant possible de visualiser via QuickPar le résultat de la création de ces fichiers en cliquant sur Vérifier. Une nouvelle interface permettant l'affichage des fichiers endommagés, les blocs disponibles et les fichiers PAR2 utilisables pour regénérer les données apparait:

Dans notre cas, aucun fichier n'est endommagé car ils viennent d'être créés. Les fichiers PAR2 générés pour notre exemple sont:

Le menu Pratique/Utilisation détail la procédure à suivre pour réparer des fichiers endommagés.
Pour faire simple: Utilisation de A à Z
On l'a compris, les fichiers PAR sont principalement destinés à un usage sur Internet, endroit où les risques d'erreurs et les fichiers manquants ne sont pas négligeables. Nous allons donc simuler un échange serveur - client, utilisant les fichiers PAR2 et respectant le schéma suivant:

Le serveur aura été au préalable alimenté par une personne tierce et servira d'hébergement des données pour des raisons de bande passante suffisamment élevée. Si l'on considère qu'une erreur peut survenir lors de l'upload (l'émission) des fichiers sur le serveur, seul les personnes le téléchargeant le détecterons. Il serait alors impensable que chaque personne rencontrant un problème avec un fichier endommagé entre en contacte avec la personne ayant fournis les données, lorsque ce dernier est connu. De plus, les erreurs rencontrées pourraient avoir été provoquées lors du téléchargement. C'est ici que les fichiers PAR2 jouent un rôle important. En effet, quelque soit le fichier endommagé, il suffit d'ajouter aux fichiers originaux, les fichiers PAR2 associés, et pour peu qu'il y en ai suffisamment pour réparer les problèmes, tout le monde y trouvera son compte.
Nous allons maintenant aborder les différentes situations qu'un utilisateur est susceptible de rencontrer avec l'utilisation des fichiers PAR2 et les méthodes pour parvenir à réparer les fichiers. Dans tout les cas, nous commencerons par télécharger les fichiers de données, puis le fichier d'index .PAR.
1. Cas - fichier endommagé
Supposons qu'un fichier soit endommagé sur le serveur. L'utilisateur va donc télécharger les fichiers de données ainsi que le fichier index. Ce dernier sera ouvert avec QuickPar et les informations suivantes vont être révélées:

QuickPar a analysé les fichiers à l'aide du fichier index, et s'est rendu compte qu'un fichier (1) est endommagé (Demo.part05.rar). Il a détecté les blocs impactés dans ce fichier et nous informe qu'il a besoin d'1 bloc supplémentaire (2) pour le réparer. Noter que la barre d'état n'est pas totalement verte mais que la fin est rouge, ce qui signifie que des blocs sont manquant pour obtenir les données. Un résumé sur l'état des fichiers est affiché en 2b. QuickPar refusera de Réparer les fichiers tant qu'il n'aura pas suffisamment de bloc (3). Il faut donc lui fournir un fichier PAR2 contenant au moins 1 bloc. Pour cela, nous allons nous référer à leurs noms de fichier. Le fichier Demo.vol00+01.PAR2 contenant 1 bloc conviendra donc parfaitement à notre cas. Nous allons donc télécharger 384Ko supplémentaires pour pouvoir réparer ce fichier de 10Mo.

Après avoir téléchargé le fichier Demo.vol00+01.PAR2, QuickPar détecte la présence d'un fichier de récupération et se rend compte qu'il a désormais suffisamment de bloc pour entamer la réparation des fichiers:

Le fichier de réparation Demo.vol00+01.PAR2 téléchargé (1) ne sera vu par QuickPar qu'après une fermeture / réouverture, ou bien en cochant l'option Surveiller (1b). La barre d'état (2) nous indique désormais que QuickPar est capable de réparer les fichiers (Dans notre cas, seulement Demo.part05.rar) en utilisant 1 bloc supplémentaire parmi le bloc de réparation fourni. Notons également la couleur qui se termine par du jaune (représentant une utilisation de bloc de récupération). Il ne nous reste qu'à cliquer sur Réparer (3):

En fin de réparation, l'écran indique le succès de l'opération:

2. Cas - fichier mal nommé
Dans le cas ou un ou plusieurs fichiers sont mal nommés, QuickPar les affichent comme mal nommés et propose simplement de les renommer:

Il suffit alors de cliquer sur Renommer pour revenir aux noms d'origines.
3. Cas - fichier manquant
Supposons maintenant qu'un fichier est manquant:

QuickPar demande 28 blocs supplémentaires. Nous allons donc télécharger suffisamment de blocs pour pouvoir réparer les fichiers. Demo.vol12+10.PAR2 + Demo.vol22+18.PAR2 font l'affaire:

Le fichier manquant peut alors être reconstruit:

4. Cas - fichier PAR2 endommagé
Comme nous l'avons vu dans l'aspect théorique des fichiers PAR2, les fichiers de récupération PAR2 même endommagé peuvent être exploitables:

Notons que nous avons suffisamment de bloc pour réparer le fichier endommagé, bien que les fichiers PAR2 soient endommagés.

5. Cas - fichier PAR insuffisant
Il est maintenant possible de rencontrer le cas suivant ou les fichiers PAR2 ne suffisent pas. QuickPar affiche ce cas de la sorte:

Nous voyons ici que QuickPar n'est pas à même de réparer les fichiers. En effet, malgré les parties valides des fichiers (1) et les fichiers de récupérations (représentés par la zone jaune 2), la barre d'état nous informe que 25 blocs sont encore manquant (zone rouge 3). Il est simplement capable de renommer le fichier mal nommé (4).
Pour remédier à ce problème, il existe plusieurs solutions:
- Télécharger d'éventuels fichiers PAR2 supplémentaires
- Essayer de re-télécharger les fichiers PAR2 qui sont endommagés en supposant qu'ils l'ont été lors du téléchargement (pour gagner quelques blocs)
- Faire de même avec les fichiers de données
- Essayer de contacter la personne ayant partagé les fichiers pour demander des fichiers PAR2 supplémentaires (avantageant tout le monde) ou bien réuploder les fichiers endommagés / manquants.
- Si aucune solution n'a été trouvée, les fichiers téléchargés sont malheureusement inutilisables et peuvent être supprimés :-(.
6. Quand utiliser des fichiers PAR?
Nous avons vu au cours de cette présentation que les fichiers PAR étaient orientés pour une utilisation sur Internet. Cependant, leur utilisation est à conseiller pour tout fichier important, principalement stockés sur des médias susceptibles d'être abîmés (CD-ROM, DVD...) facilement. Cette méthode parait efficace me direz vous, mais comment faut-il faire pour récupérer ledit fichier lorsque le média est endommagé?
En effet, en supposant que le fichier ne puisse pas être reconstruit entièrement avec des fichiers PAR2 (fichier trop gros par exemple), les fichiers de récupérations seraient inutiles s'il n'était pas possible de copier le fichier sur l'ordinateur pour le réparer. Or, c'est ce qui se passe avec Windows©. En effet, certain d'entre vous l'on sans doute déjà remarqué, un CD de données contient moins de place qu'un CD audio (Faire le test en extrayant un CD audio 80min en fichier WAV non compressé). Pourquoi cette différence de place? Et bien parce qu'il existe un système de contrôle d'erreur pour les CD de données (Voir ici pour plus de détail). En effet, une erreur de lecture sur un CD de donnée est bien plus gênante que sur un CD Audio où l'oreille humaine ne serait pas capable de percevoir de défaut de lecture.
Windows© va donc être informé qu'une erreur de lecture (CRC Error / Contrôle de redondance cyclique ou message de ce type) a survenue et va abandonner la copie. Hors, nous sommes tout de même intéressé par ce fichier bien qu'il soit endommagé. Il faut donc forcer Windows© à lire entièrement le fichier, pour nous permettre de le réparer par la suite. Il existe des logiciels capables d'outrepasser ce type d'erreur: Roadkil's Unstoppable Copier, la commande dos XCOPY /C, ou encore CDRoller etc. Le fichier récupéré peut alors être réparé ;-).
Liste de logiciel
Vous trouverez ci-dessous une liste des logiciels utilisés/abordés au cours de cette présentation sur les fichiers PAR:
1. Logiciels supportant les fichiers PAR2
Voici une liste non exhaustive de logiciel supportant les fichiers PAR2 classée par plateforme:
1. Linux
2. Mac
3. Windows©
Fluid Studios Software Raid Toolkit (FSRaid)
2. Logiciels permettant la récupération des fichiers stockés sur un média endommagé
Ci dessous une liste de logiciel permettant d'outrepasser les messages d'erreurs de lecture d'un média endommagé:
La commande DOS XCOPY /C
3. Logiciels d'archivage
Une liste des archiveurs les plus populaires: