1 votes

Récupérer les fichiers d'une archive corrompue

J'ai un fichier tar de 40 Go mais lorsque je l'ouvre avec le gestionnaire d'archives sur Ubuntu, je n'obtiens que 512 Mo. La majeure partie de mes fichiers sont en désordre. Même quand je le fais :

tar -tf myfile.tar.gz

Je n'obtiens pas la liste de tous mes fichiers. Lorsque je crée le fichier, j'ai utilisé la commande :

tar -zcvf myfile.tar.gz myhomefolder

Et puis j'ai arrêté la commande car je ne veux pas faire de compression (ça prend trop de temps) et j'ai exécuté :

tar cvf myfile.tar.gz myhomefolder

Sous Windows, lorsque j'utilise 7-Zip, j'obtiens cette erreur :

There are data after the end of file

Le problème est qu'il y a une mauvaise fin dans le fichier. Comment faire pour supprimer cette fin. Quels sont les logiciels qui peuvent faire ouvrir le fichier en mode binaire ou quelque chose comme ça.

Comment puis-je récupérer mes fichiers ?

2voto

Vous pouvez essayer l'utilitaire gzrecover et ensuite extraire l'archive récupérée avec cpio .

Il a permis de récupérer des archives corrompues dans le passé, mais votre expérience peut varier. J'ai un problème où il ne peut pas récupérer une archive pour moi, donc je vous préviens.


EDIT : Par un mod me menaçant violemment avec un couteau, je vais ajouter quelques détails comment j'ai récupéré des archives avant. (Je plaisante. Ne me faites pas de mal, @Scott !)

Vous pouvez installer les deux paquets en utilisant

sudo apt-get install cpio gzrt

Après vous être assuré que les deux paquets sont installés, mettons-nous au travail.

Tout d'abord, placez votre archive à un endroit où vous ne craignez pas que les données soient extraites. De là, vous pouvez exécuter

gzrecover broken-archive.tar.gz

gzrecover prendra probablement un certain temps, en fonction de la taille de l'archive. Cependant, avec un peu de chance, vous verrez "broken-archive.tar.recovered" dans le même répertoire une fois l'opération terminée.

L'archive récupérée a probablement subi des dommages ; c'est là que cpio s'avère utile. Il devrait déjà être installé sur votre système.

Pour extraire l'archive récupérée, utilisez

cpio -F broken-archive.tar.recovered -i -v

Soyez conscient que cpio va cracher une quantité considérable d'informations pendant cette période. Je vous recommande de faire cela sur un tty séparé au lieu d'un terminal sur votre session X. Pour ce faire, il vous suffit d'appuyer sur CTRL+ALT+F1 et votre écran basculera vers un terminal. Pour revenir à votre session X, appuyez sur CTRL+ALT+F8 (cela peut varier, mais c'est généralement F7-9).

Le processus d'extraction de l'archive récupérée va également être assez intensif. Comme cpio n'est pas optimisé pour une utilisation avec plusieurs cœurs, il se cantonnera à un seul cœur. Quel que soit le cœur sur lequel il se trouve, il le bloquera probablement à 100% d'utilisation. Si vous avez une machine à deux cœurs, vous devrez peut-être arrêter d'utiliser votre ordinateur pendant un certain temps.

Sachez que ce processus peut prendre plusieurs jours, compte tenu de la taille de l'archive. Vous pouvez soit trouver une autre machine sur laquelle décharger ce travail (les processeurs plus lents rendront ce processus plus long), soit prévoir de ne pas utiliser votre ordinateur pendant un certain temps, soit vous préparer à ce que votre système s'arrête pendant le travail. De plus, si vous l'exécutez dans un terminal sur votre session X, vous allez probablement épingler un deuxième cœur à 100%. Si vous êtes un utilisateur avancé, vous pouvez utiliser la fonction taskset pour affecter le(s) processus à un noyau spécifique. Cependant, cela n'entre pas dans le cadre de ma réponse.

Je vous souhaite la meilleure des chances.

0voto

Tarsier Points 1476

Premier tar cvf myfile.tar.gz myhomefolder devrait être tar cvf myfile.tar myhomefolder .

Deuxièmement, vous pourriez essayer tar xvf myfile.tar.gz .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X