Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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+Ensuitereconstruisez 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+Évidemmentmettez le bon chiffre à la place de 17185
  
-Voilà vous n'avez plus qu'[[:​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]]
  • tutoriel/reparer_une_archive_corrompue.1275543277.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)