~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Archiver avec 7-Zip et par2

Parfois, il est nécessaire de sauvegarder et archiver des données, sur un support qui dormira dans une étagère, et dont on ne sait pas trop quand il en ressortira, ni en quel état. Par exemple sur un CD-ROM ou une mémoire Flash, dont la tenue dans la durée n'est pas forcément très prévisible.

Dans ce cas, on veut pouvoir restaurer l'archive même si une partie des données devient corrompues. Voici ma méthode d'archivage très simple à base de 7-zip et de par2.

En premier, nous allons créer une archive avec 7-zip, séparée en volumes d'une taille de 50 Mo (plus facile à reconstituer avec par2 il me semble) :

$ 7z a -v50 backup.7z /home/bohwaz/backup

Cela va créer autant de fichiers du genre backup.7z.0001, backup.7z.0002, etc. que nécessaire en fonction de la taille des données à archiver.

Maintenant nous allons créer des archives de redondance avec par2. Par2 est un utilitaire qui permet de reconstituer des données corrompues en créant des archives de "redondance". Vous trouverez de plus amples explications sur son fonctionnement sur ce post de Linux-Attitude par exemple.

$ par2 c -r25 backup.7z.*

Va ainsi créer de la redondance équivalente à 25% des données archivées. Ce qui signifie que par2 saura réparer les données corrompues, sauf si plus de 25% de ces données sont corrompues.

Et voilà il ne reste plus qu'à copier/graver sur CD !

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
            _            _             _ 
 _ __  _ __(_)_ __   ___(_)_ __   __ _| |
| '_ \| '__| | '_ \ / __| | '_ \ / _` | |
| |_) | |  | | | | | (__| | |_) | (_| | |
| .__/|_|  |_|_| |_|\___|_| .__/ \__,_|_|
|_|                       |_|            
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

okram

Bonjour,

Je ne connaissais pas par2, merci pour cette découverte ! Une alternative au RAID pour les impécunieux en quelque sorte...
Une question se présente cependant d'elle même après lecture de la dernière phrase de ton billet : il ne reste plus qu'à graver, certes, mais où ?

Si je mets les fichiers .par2 sur le même CD que mes données et qu'ils se corrompent ça ne fonctionne plus, ou bien ? Est-ce que par2 saurait se contenter de fichiers .par2 eux-même corrompus ?

Si je mets les fichiers .par2 sur un support physique distinct qui se retrouve lui aussi corrompu quelques années après, ben...

Faut-il alors dans ce cas là se tourner vers des sauvegardes redondantes à la fois des données et des fichiers .par2 pour augmenter les chances de pouvoir restaurer les données ?

Bref : comment procéderais-tu en ton âme et conscience ?

BohwaZ

Alors si un des fichiers PAR2 est corrompu, il ne pourra pas servir entièrement à la restauration. PAR2 fonctionne par "blocs", ainsi dans un fichier PAR2 corrompu il trouvera peut-être quand même des blocs utilisables. Le tout est des disposer de suffisamment de blocs pour effectuer la réparation des fichiers corrompus originaux.

Dans le cas de l'exemple l'archive ne tenait pas sur un CD, donc j'ai divisé en deux et remis les PAR2 sur les deux disques.

En sachant que normalement un CD ne devient que rarement totalement illisible, mais uniquement certaines parties. Sinon bah de toutes façons si le CD est illisible complètement, PAR2 ou pas ça change rien, car si tu as 25% de redondance avec PAR2, il n'arrivera à rien car il manquera toujours 100% du fichier original... PAR2 n'intervient que si une partie des données est corrompue.

okram

Hello,

Merci pour ces précisions ; ainsi par2 serait capable d'utiliser ses propres fichiers, même partiellement corrompus. Voilà qui est utile !

Y'a des essais à faire pour creuser les différentes approches et simuler une récupération... Quelques soirées intéressantes en perspective.