Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
tutoriel:reparer_une_archive_corrompue [Le 03/06/2010, 07:34] YannUbuntu créée |
tutoriel:reparer_une_archive_corrompue [Le 11/09/2022, 12:22] (Version actuelle) moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892) |
||
---|---|---|---|
Ligne 4: | Ligne 4: | ||
======Comment réparer une archive corrompue====== | ======Comment réparer une archive corrompue====== | ||
- | + | =====Dans quel cas utiliser ce tutoriel ?===== | |
- | =====Dans quel cas utiliser ce tutoriel?===== | + | |
Vous voulez [[:archivage|extraire une archive]] et vous obtenez une erreur du type | Vous voulez [[:archivage|extraire une archive]] et vous obtenez une erreur du type | ||
Ligne 24: | Ligne 23: | ||
</code> | </code> | ||
- | Et bien vous avez vraiment pas de chance ! Votre archive est certainement corrompue. | + | Et bien vous n'avez vraiment pas de chance ! Votre archive est certainement corrompue. |
+ | =====Solution pour une archive compressée tar.bz2===== | ||
- | =====Solution===== | + | Avec le gestionnaire d'archive, vous récupérez la première partie de l'archive, à savoir toutes les données avant l'erreur dans le fichier. |
- | Avec le gestionnaire d'archive vous récupérez la première partie de l'archive, à savoir toutes les données avant l'erreur dans le fichier. | + | Pour récupérer la suite, tapez : |
- | + | ||
- | Pour récupérer la suite | + | |
- | taper | + | |
<code> | <code> | ||
bzip2recover nomdelarchive.tar.bz2 | bzip2recover nomdelarchive.tar.bz2 | ||
Ligne 38: | Ligne 35: | ||
Ces fichiers se nomment rec00001nomdelarchive.tar et ainsi de suite. | Ces fichiers se nomment rec00001nomdelarchive.tar et ainsi de suite. | ||
- | Ensuite il faut tester chacun des fichiers, pour cela taper | + | Ensuite il faut tester chacun des fichiers, pour cela tapez : |
- | <code> | + | <code>bunzip rec*bz2</code> |
- | bunzip rec*bz2 | + | Si vous avez un retour "d'argument trop long" dans le terminal, essayez par tranche de 1000 (ex: rec01*bz2 puis rec02*bz2 ...) |
- | </code> | + | si cela est encore trop long, envisagez la commande xargs. |
- | Si vous avez un retour "d'argument trop long" dans le terminal | + | |
- | essayer par tranche de 1000 (ex: rec01*bz2 puis rec02*bz2 ...) | + | |
- | si cela est encore trop long, envisager la commande xargs | + | |
- | Vous allez obtenir le nom du fichier corrompu | + | Vous allez obtenir le nom du fichier corrompu (ex rec003776nomdelarchive.tar). |
- | (ex rec003776nomdelarchive.tar) | + | Déplacez ce fichier ainsi que ceux situés avant pour n'avoir que les fichiers suivant le fichier corrompu. |
- | et bien déplacer ce fichier ainsi que ceux situer avant pour n'avoir que les fichiers suivant le fichier corrompu. | + | |
- | Ensuite reconstruisez la suite des fichiers en tapant | + | Ensuite, reconstruisez la suite des fichiers en tapant : |
<code> | <code> | ||
cat rec0* > findelarchvie.tar | cat rec0* > findelarchvie.tar | ||
</code> | </code> | ||
- | Récupérer le script ici | + | Récupérez le script ici : |
http://oss.bestsolution.at/documents/find_tar_headers.pl.bz2 | http://oss.bestsolution.at/documents/find_tar_headers.pl.bz2 | ||
qui permet de retrouver les marques d'en-tête, et exécutez-le en tapant: | qui permet de retrouver les marques d'en-tête, et exécutez-le en tapant: | ||
Ligne 61: | Ligne 54: | ||
perl find_tar_headers.pl findelarchive.tar | perl find_tar_headers.pl findelarchive.tar | ||
</code> | </code> | ||
- | Une fois lancé, vous pouvez l'arrêter en tapant control + C | + | Une fois lancé, vous pouvez l'arrêter en tapant control + C et repérer les chiffres mentionnés. |
- | et repérer les chiffres mentionnés | + | |
<code> | <code> | ||
findelarchive.tar:17185:top/secret/warp_reactor.so:157106 | findelarchive.tar:17185:top/secret/warp_reactor.so:157106 | ||
Ligne 69: | Ligne 61: | ||
findelarchive.tar:183585:top/secret/plasma_controls.so:157035 | findelarchive.tar:183585:top/secret/plasma_controls.so:157035 | ||
</code> | </code> | ||
- | Le nombre à repérer est celui de la première ligne, dans ce cas il s'agit de 17185 | + | Le nombre à repérer est celui de la première ligne, dans ce cas il s'agit de 17185. |
- | Reconstruisez correctement l'archive en tapant | + | Reconstruisez correctement l'archive en tapant : |
<code> | <code> | ||
tail -c +17185 findelarchive.tar > bonnearchive.tar | tail -c +17185 findelarchive.tar > bonnearchive.tar | ||
</code> | </code> | ||
- | Évidemment mettez le bon chiffre à la place de 17185 | + | Évidemment, mettez le bon chiffre à la place de 17185 |
- | Voilà vous n'avez plus qu'a [[:archivage|décompresser]] la dernière archive ainsi obtenue. | + | Voilà vous n'avez plus qu'à [[:archivage|décompresser]] la dernière archive ainsi obtenue. |
+ | =====Solution pour une archive compressée TGZ (avec Gzip Recovery Tool)===== | ||
+ | |||
+ | Gzip Recovery Tool est un outil en ligne de commande qui permet de restaurer une archive corrompue TGZ (tar.gz). | ||
+ | |||
+ | ==== Installation ==== | ||
+ | |||
+ | * Via les dépôts: installer le paquet **[[apt>gzrt]]**. | ||
+ | * Manuellement (en passant par le site de l'auteur): [[https://www.urbanophile.com/arenn/coding/gzrt/gzrt.html]] | ||
+ | |||
+ | ==== Utilisation ==== | ||
+ | |||
+ | Lancer la commande suivante pour débuter la restauration: | ||
+ | <code> | ||
+ | gzrecover /chemin/vers/mon/archive/mon-archive-tar-corrompue.tar.gz | ||
+ | </code> | ||
+ | |||
+ | Une archive avec l'extension .recovered sera créée dans le répertoire courant après quelques minutes (varie selon la taille de votre archive à réparer). | ||
+ | |||
+ | Une fois l'exécution de gzrecover terminé, lancer la commande suivante pour extraire vos fichiers: | ||
+ | <code> | ||
+ | cpio -F mon-archive-tar-corrompue.tar.recovered -i -v | ||
+ | </code> | ||
=====Voir aussi===== | =====Voir aussi===== | ||
*[[:archivage]] | *[[:archivage]] |