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]] | ||