Impossible d’installer des mises à jour via le gestionnaire de mise à jour / apt-get upgrade

Je suis sous Ubuntu 12.04 depuis quelques semaines. J’ai récemment essayé de télécharger et d’installer certains fichiers via le gestionnaire de mise à jour. Il a localisé quelques fichiers, les a téléchargés, mais n’a pas réussi à les installer. Cela a donné l’erreur:

installArchives() failed: (Reading database ... (Reading database ... 80% dpkg: unrecoverable fatal error, aborting: reading files list for package 'libasn1-8-heimdal': Input/output error 

J’ai essayé d’utiliser apt-get upgrade mais une erreur similaire s’est produite:

 Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib 5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/34.6 MB of archives. After this operation, 1,024 B of additional disk space will be used. Do you want to continue [Y/n]? y (Reading database ... 80% dpkg: unrecoverable fatal error, aborting: reading files list for package 'libasn1-8-heimdal': Input/output error E: Sub-process /usr/bin/dpkg returned an error code (2) 

Toute aide serait grandement appréciée. Merci d’avance.

Edit: Voici quelques informations supplémentaires qui peuvent être utiles. Mon problème initial était que le centre logiciel Ubuntu ne s’ouvrirait pas. J’ai constaté que le gestionnaire de mises à jour et le gestionnaire de paquets Synaptic ne pouvaient pas s’ouvrir. Ils ont tous donné une erreur dans le sens de:

 "installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:" 

Après beaucoup de recherches sur Google, j’ai semblé résoudre ce problème car les gestionnaires de paquets s’ouvriraient à nouveau. Lorsque j’ai ensuite essayé de télécharger et d’installer des mises à jour à partir du gestionnaire de mises à jour, j’ai reçu l’erreur au début de ce message.

J’ai résolu le problème avec ces instructions .

La solution est donc la suivante:

  1. Allez dans le répertoire /var/lib/dpkg
  2. Faire une sauvegarde du fichier d’ status
  3. Modifier le fichier d’ status
  4. Rechercher le paquet qui a donné l’erreur
  5. Supprimez simplement les lignes de ce package (mais laissez toutes les autres lignes qui concernent d’autres packages même si elles contiennent le package endommagé dans leurs champs “Remplace” ou “Dépend”)

    […]

  6. Enregistrer les modifications dans le fichier d’ status

  7. Exécuter: sudo dpkg --configure -a
  8. Forcer la réinstallation des dépendances manquantes (car maintenant, il y en a):

     sudo apt-get -f install 

    Je pense que si le paquetage cassé ne dépend d’aucun autre paquetage (cela peut être rare), réinstallez-le simplement:

     sudo apt-get install the_package 
  9. Tout va bien maintenant peut mettre à jour, mettre à jour ou installer de nouveaux paquets!

Il convient de noter que j’ai eu quelques différences avec la solution proposée. Le fichier d’état n’était pas facile à éditer (c’est un fichier important qui n’a jamais été édité). Toutes les modifications effectuées doivent être effectuées avec précaution et le fichier doit être sauvegardé avant toute modification.

J’ai dû répéter les étapes 4 à 8 trois fois (à chaque fois, l’erreur serait la même, mais avec un paquet différent). Enfin, lorsque tous les paquets ont été supprimés, j’ai pu les réinstaller, ce qui a résolu mon problème.

Il peut arriver que le disque soit corrompu avec des inodes.

Avec un live CD, lancez cette commande

 sudo fdisk -l 

notez le disque et la partition, il pourrait s’agir de /dev/dsb1 puis réparez-le:

 sudo fsck -y /dev/sdb1 

Redémarrez et revenez sur le système

 sudo apt-get -f install sudo apt-get update sudo apt-get upgrade