Я использую Ubuntu 12.04 в течение последних нескольких недель. Недавно я пытался загрузить и установить некоторые файлы через диспетчер обновлений. Он обнаружил несколько файлов, скачал их, но затем не смог их установить. Это дало ошибку:
installArchives() failed: (Reading database ...
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
reading files list for package 'libasn1-8-heimdal': Input/output error
Я пытался использовать apt-get upgrade
, но была схожая ошибка:
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)
Любая помощь будет принята с благодарностью. Заранее спасибо.
Редактировать: вот дополнительная информация, которая может быть полезна. Моя первоначальная проблема заключалась в том, что Центр программного обеспечения Ubuntu не открывался. Я обнаружил, что Диспетчер обновлений и Диспетчер пакетов Synaptic также не удалось открыть. Все они выдавали ошибку в соответствии с:
"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"
После долгих поисков я, казалось, решил эту проблему, так как менеджеры пакетов снова открылись. Когда я попытался загрузить и установить какие-либо обновления из диспетчера обновлений, я получил сообщение об ошибке в начале этого поста.
Я решил проблему с помощью этих инструкций .
Итак, решение следующее:
- Перейдите в
/ var / lib / dpkg Каталог
- Сделайте резервную копию файла
статуса
- Отредактируйте
файл статуса
- Найдите пакет, который выдал ошибку
Просто удалите строки из этого пакета (но пусть все остальные строки, которые касаются других пакетов, даже если они содержат сломанный пакет в их полях «Заменяет» или «Зависит»)
[…]
Сохранить изменения в файле
status
- Выполнить:
sudo dpkg --configure -a
Принудительно переустановить недостающие зависимости (потому что теперь , есть некоторые):
sudo apt-get -f install
Я думаю, что если сломанный пакет не зависит от какого-либо другого пакета (может быть редко), просто переустановите его:
sudo apt-get install the_package
Теперь все в порядке, можно обновлять, обновлять или устанавливать новые пакеты!
Следует отметить, что у меня было несколько отличий от предложенного там решения. Файл состояния редактировать было непросто (так как это важный файл, и его никогда нельзя редактировать). Любые правки, сделанные там, должны выполняться с осторожностью, и перед внесением каких-либо изменений следует создать резервную копию файла.
Мне пришлось повторить шаги 4–8 три раза (каждый раз ошибка была бы такой же, только с другим пакетом. ). Наконец, когда все пакеты были удалены, я смог переустановить их, и это устранило мою проблему.
Может случиться так, что диск поврежден inodes.
Для Live CD запустите эту команду
sudo fdisk -l
запишите диск и раздел, это может быть / dev / dsb1
затем исправьте его:
sudo fsck -y /dev/sdb1
Перезагрузите и вернитесь в систему
sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade