2012/09/24

Ubuntu E:Read error - read (5 Input/output error), E:The package lists or status file could not be parsed or opened.

問題


今朝 Ubuntu を立ち上げてみたら,画面右上のアップデートマネージャーが表示されるところに警告(進入禁止のマーク)が出ていた。そこをクリックしてみると,

Error:cache E:Read error - read (5 Input/output error), E:The package lists or status file could not be parsed or opened.

というメッセージがあり、

”agt-get で問題解決せよ”

のようなことが書いてあった。

経過


ところが
 アップデートマネージャーを立ち上げるとすぐに消えてしまう
 端末から sudo apt-get update としてもフリーズしたような状態が1分ほど続いたあと完了
 続いて sudo apt-get upgrade とすると、2、3行表示されて硬直状態があり、そのまま終了
と、なってしまう。そして、画面右上の警告はそのままで、アップデートされた気配なし。

そこで、のメッセージをもとに検索すると、”Debian GNU∕Linux スレッド Ver. 55”に

  fsck
  再インストール
  HDD交換
と出ていた。fsck はファイルシステム関係のコマンドだけど、とりあえず
 sudo fsck /dev/sda1/
として実行する。途中何回か修復のするかどうか聞かれたので,とりあえず全て”yes”と、答える。

ここでもう一度
 sudo apt-get update
を実行する。すると今度は
E: 読み込みエラー - 読み込み(入力/出力エラー)
E: パッケージリストまたはステータスファイルを解釈またはオープンすることができません。
と、エラーが出て終了してしまう。

解決策


続いて
 
 ”E: パッケージリストまたはステータスファイルを解釈またはオープンすることができません。

をもとに検索。その結果から見つけた下記のページ

 https://forums.ubuntulinux.jp/viewtopic.php?pid=92612#p92612

と、これとその中のリンク

 http://memo.officebrook.net/20100812.html

を参考に以下のコマンドを1行ずつ実行した。

sudo rm /var/lib/apt/lists/* -vf
sudo rm /var/lib/apt/lists/partial/* -vf
sudo apt-get update
sudo apt-get upgrade

これでアップデートは無事終了し、警告は消えてくれた。

より良い解決策

解決後もう少しよく探すと


に解決策が出ていた。それによると,

sudo rm /var/lib/dpkg/status
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo rm -rf /var/lib/apt/lists/*
sudo dpkg --configure -a
sudo aptitude update
sudo aptitude upgrade
sudo aptitude install -f

しかし、PackageManagerTroubleshootingProcedure によると、上でうまくいくなら

sudo rm /var/lib/dpkg/status
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo rm -rf /var/lib/apt/lists/*
sudo dpkg --configure -a
sudo apt-get update
sudo apt-get upgrade
sudo apt-get -f install

でもいいはずだ。

 

1 件のコメント :

  1. ありがとうございます!
    最後のapt-getを使う方法でうまくいきました。

    返信削除