Réparer une archive bzip2 sous Ubuntu avec bzip2recover

Aperçu

Lorsqu’une archive bzip2 subit une altération physique ou logique sous Ubuntu, l’utilitaire bzip2recover constitue souvent l’ultime recours pour sauver vos données. Ce tutoriel analyse la structure modulaire du format bzip2 et détaille la procédure pas à pas permettant d’isoler les blocs de données indemnes afin d’en reconstituer le contenu.

1. Mise en place de l’environnement et création d’une archive multi-blocs

Avant toute expérimentation, actualisons la liste des dépôts logiciels puis installons le paquet bzip2 sur le système.

Mise à jour des paquets et installation de bzip2

Afin de travailler dans un espace isolé sans perturber vos autres projets, créons un sous-dossier dédié avant de nous y positionner.

Création et accès au dossier de test

Générons ensuite un fichier brut de 2 Mo constitué de données pseudo-aléatoires encodées en base64, que nous enregistrerons sous le nom de sample_data.txt.

Génération d’un fichier de test de 2 Mo

L’utilitaire bzip2 fragmente les flux d’informations en blocs autonomes lors de la compression. Pour forcer l’outil à répartir notre fichier de test sur de multiples segments, nous sélectionnons la taille de bloc minimale (100 Ko) tout en ordonnant la préservation du fichier d’origine.
⚙️ [Options de référence]

-k : préserve le fichier d’origine à l’issue de l’opération.
-1 à -9 : définit la dimension de chaque bloc de calcul (entre 100 Ko et 900 Ko).
-d : enclenche le processus de décompression.
-t : contrôle l’intégrité structurelle de l’archive sans écriture disque.
-v : affiche le détail des opérations et le ratio de compression obtenu.
-f : écrase un fichier existant sans demander confirmation.

Compression multi-blocs avec bzip2

Vérifions la présence effective des deux fichiers ainsi que leurs dimensions respectives dans un format lisible.

Vérification des fichiers créés et de leurs tailles

2. Simulation d’une altération de données et contrôle d’intégrité

Poursuivons notre parcours en veillant à rester positionnés dans le répertoire ~/bzip2_demo.

Navigation vers le dossier de travail

Pour préserver intacte notre archive originale lors des tests destructifs, dupliquons sample_data.txt.bz2 sous le nom de corrupted_data.bz2.

Duplication de l’archive pour le test de corruption

Provoquons une défaillance ciblée en écrasant 64 octets au milieu de l’archive corrupted_data.bz2 via la commande dd.

Injection d’octets aléatoires avec dd

Lançons une vérification approfondie de l’archive endommagée afin d’observer la réaction de bzip2 et l’affichage des alertes de corruption CRC.

Détection de l’erreur d’intégrité CRC

3. Extraction des blocs exploitables avec bzip2recover

Replaçons-nous au cœur du dossier ~/bzip2_demo pour entamer l’opération de sauvetage.

Accès au répertoire d’analyse

Le rôle de bzip2recover consiste à inspecter le binaire à la recherche des en-têtes de début de bloc. Chaque tronçon repéré est alors extrait et enregistré sous la forme d’une archive autonome portant le préfixe rec*.

Exécution de la commande bzip2recover

Examinons la liste des segments créés par bzip2recover pour mesurer l’étendue de la découpe effectuée.

Inventaire des blocs récupérés

4. Validation des fragments et reconstitution du fichier final

Positionnons-nous dans le répertoire de travail afin de traiter les blocs générés.

Vérification du dossier de travail

Grâce à une boucle d’inspection bzip2 -t, nous testons un par un chaque bloc pour isoler les portions saines de celles irrémédiablement abîmées par la corruption.

Test unitaire de chaque fragment bzip2

À l’aide de l’instruction bzip2 -dc, nous décompressons les segments intègres à la suite les uns des autres vers recovered_data.txt, tout en écartant automatiquement le bloc défectueux.

Recombinaison des blocs sains dans un fichier texte

Pour conclure, une comparaison de taille via ls -lh entre sample_data.txt et recovered_data.txt permet d’évaluer avec précision le volume de données préservé.

Comparaison des volumes entre le fichier initial et le fichier reconstruit

Cette méthode met en lumière la résilience du format bzip2 face aux pertes catastrophiques : là où d’autres formats refusent tout accès dès le premier octet corrompu, bzip2recover permet de sauver la quasi-totalité de vos données utiles en ne sacrifiant que la portion touchée par l’incident.