ODT corrompu : content.xml inaccessible malgré une archive ZIP partiellement lisible

Bonjour à tous,

Je me permets de solliciter votre aide concernant un document LibreOffice Writer (.odt) auquel je tiens énormément et que je n’arrive plus à ouvrir.

Contexte

Il s’agit d’un manuscrit sur lequel j’ai travaillé pendant plusieurs mois.

À l’époque, je travaillais directement sur une clé USB. J’ouvrais le document depuis la clé et j’enregistrais systématiquement avec Ctrl + S, sans faire de copie locale sur le disque dur.

La clé USB avait cependant un comportement étrange : très souvent, Windows refusait de l’éjecter en indiquant que des fichiers étaient encore ouverts, même lorsque toutes les applications étaient fermées. Je finissais donc généralement par retirer la clé après avoir éteint l’ordinateur.

Plusieurs mois plus tard, en voulant reprendre ce document, LibreOffice ne parvient plus à l’ouvrir.

Messages d’erreur

À l’ouverture, LibreOffice affiche :

Impossible de lire les données de manifest.rdf

Il propose ensuite de réparer le document.

Si j’accepte, la réparation échoue avec le message :

Erreur générale.
Erreur d’entrée/sortie générale.

Le document se ferme ensuite.

À noter qu’un second document créé à la même période sur cette même clé USB présentait le même premier message d’erreur, mais LibreOffice est parvenu à le réparer automatiquement.

Ce que j’ai déjà essayé

  • J’ai toujours conservé le fichier original et je travaille uniquement sur des copies.

  • J’ai renommé le fichier en .zip.

  • 7-Zip reconnaît bien une archive ZIP et affiche notamment :

  • Configurations2/

  • META-INF/

  • Thumbnails/

  • content.xml

  • styles.xml

  • meta.xml

  • settings.xml

  • manifest.rdf

  • layout-cache

  • mimetype

Le fichier content.xml est annoncé avec une taille d’environ 56 756 octets.

Cependant :

  • toute tentative d’ouverture ou d’extraction de content.xml échoue avec “erreur en-têtes : content.xml” ;
  • les mêmes erreurs apparaissent également pour styles.xml, meta.xml, settings.xml, manifest.rdf, etc.

Le test d’intégrité de 7-Zip signale de nombreuses erreurs d’en-tête.

J’ai également essayé WinRAR. La tentative de réparation échoue avec le message :

Méthode inconnue

Analyse déjà effectuée

Le fichier a également été examiné avec l’aide d’outils d’analyse.

Il semble que :

  • l’archive ZIP soit encore partiellement structurée ;
  • META-INF/manifest.xml soit encore lisible ;
  • les informations du répertoire central indiquent toujours l’existence de content.xml avec une taille cohérente ;
  • en revanche, le flux correspondant à content.xml semble corrompu ou impossible à décompresser.

L’impression générale est que la structure du document n’est pas totalement détruite mais que les en-têtes ou le début du flux compressé sont endommagés.

Ma question

Existe-t-il un moyen de récupérer le contenu de content.xml malgré cette corruption ?

Je suis preneur de toute piste :

  • outil spécialisé ;
  • méthode de reconstruction du fichier ODT ;
  • récupération manuelle du flux DEFLATE ;
  • ou toute autre approche.

Le document est extrêmement important pour moi, même une récupération partielle du texte serait précieuse.

Je peux bien entendu fournir le fichier ODT original si cela peut aider à l’analyse.

Merci d’avance à toutes les personnes qui prendront le temps d’étudier mon problème.

Informations techniques complémentaires :

  • Taille du document : 19 Ko.
  • Le répertoire central ZIP est encore présent.
  • content.xml est annoncé à 56 756 octets.
  • 7-Zip voit correctement les entrées mais échoue avec “erreur en-têtes”.
  • WinRAR ne parvient pas à réparer l’archive (“Méthode inconnue”).
  • META-INF/manifest.xml reste lisible.
  • Le document n’est donc pas un simple fichier vide.

Bonjour Phedreon,

j’ai rédigé, pour mon usage personnel, un document à propos des problèmes de fichiers bureautiques XML corrompus (Microsoft et LibreOffice).

Ce document est en anglais, il est ici :
XML_Repair_EN_v_0_0_3.pdf (185.9 KB)

Travaillez toujours sur une copie du document défectueux !

Notez que c’est un travail au long cours et que, suivant les cas, des subtilités ont pu m’échapper (je n’ai pas encore rencontré tous les cas de figure !).

Si vous pouvez le tester et me faire un retour, j’en serai ravi.

Bon courage !

Bonjour,

Tout d’abord, merci beaucoup pour votre réponse et pour le document que vous avez rédigé. Je l’ai lu attentivement.

Malheureusement, j’ai l’impression que mon cas est légèrement différent de ceux décrits dans votre guide.

En effet, si j’ai bien compris, votre méthode s’applique lorsque le fichier XML peut être extrait puis corrigé (balises mal fermées, erreur de syntaxe XML, etc.).

Dans mon cas, je ne parviens malheureusement pas à atteindre cette étape.

Voici ce que j’ai pu constater :

  • Le document est un fichier LibreOffice Writer (.odt) d’environ 19 Ko.
  • Il a été créé il y a environ un an et modifié pendant plusieurs mois.
  • Je travaillais directement sur une clé USB en enregistrant avec Ctrl+S.
  • Cette clé USB présentait régulièrement un comportement anormal : Windows refusait très souvent de l’éjecter en indiquant que des fichiers étaient encore ouverts, même lorsque toutes les applications étaient fermées.

Aujourd’hui, LibreOffice affiche :

Impossible de lire les données de manifest.rdf

Puis, après avoir accepté la tentative de réparation :

Erreur générale.
Erreur d’entrée/sortie générale.

J’ai alors renommé le fichier en .zip et essayé de l’analyser avec 7-Zip.

L’archive est bien reconnue et contient notamment :

  • content.xml
  • styles.xml
  • meta.xml
  • settings.xml
  • manifest.rdf
  • META-INF/manifest.xml
  • etc.

Le point qui m’interpelle est que 7-Zip indique une taille cohérente pour content.xml (environ 56 756 octets), mais il est impossible de l’extraire ou même de l’afficher.

Toute tentative produit :

Erreur en-têtes : content.xml

Le test d’intégrité de 7-Zip signale également des erreurs d’en-tête sur plusieurs fichiers internes (content.xml, styles.xml, meta.xml, settings.xml, manifest.rdf, etc.).

J’ai également essayé avec WinRAR, mais la tentative de réparation échoue immédiatement avec le message :

Méthode inconnue

J’ai demandé de l’aide en parallèle afin d’analyser la structure du fichier.

L’analyse semble montrer que l’archive ZIP est encore partiellement cohérente (par exemple META-INF/manifest.xml reste lisible), mais que le flux correspondant à content.xml semble corrompu ou impossible à décompresser.

J’ai donc l’impression que mon problème se situe avant même la phase de correction XML décrite dans votre document.

Pensez-vous qu’il puisse s’agir d’une corruption de la structure ZIP plutôt que d’une simple corruption XML ?

Avez-vous déjà rencontré un cas similaire, ou connaissez-vous une méthode ou un outil permettant de récupérer un fichier content.xml lorsque celui-ci est bien référencé dans l’archive mais qu’il est impossible à extraire ?

Je peux bien entendu fournir le fichier ODT original si vous souhaitez l’examiner.

Quoi qu’il en soit, merci encore pour le temps que vous consacrez à ces problèmes et pour le partage de votre documentation.

Le document en question :
La Promesse des Anges.odt (18.1 KB)

Bonjour,
je penche pour

j’obtiens ce message lors de la tentative d’extraction
file #1: bad zipfile offset (local header sig): 9550

Ça se préparait depuis un moment

Il faudrait afficher une mise en garde sur tous les emballages de clé USB, cette pratique est de l’acrobatie sans filet de sécurité !