web-dev-qa-db-ja.com

13.04へのアップグレード後にinitramfsが失敗し、apt-get / dpkgでシステムを更新できない

先日、私は12.10から13.04にアップグレードすることを提案するプロンプトを受け取りました。なぜそうなのか考えて、アップグレードを受け入れました。インタラクションはほとんどなく、[承認]ボタンをクリックするだけで、アップグレードされたマシンに1時間ほどで戻りました。

initramfsは現在、システムに存在するとは思わない古いLinuxヘッダーで失敗し、それに依存するシステム(グラフィックドライバー、システムアップデートなどを含むほとんどすべて)を更新できません。私はこの問題をほぼ1か月間解決しようとしており、その過程でUbuntu/Linuxについて多くのことを学びましたが、次のエラーを回避するために何をする必要があるかはまだわかりません。

次のようなコマンドを実行するたびに:

Sudo apt-get install  (with -f or not)
Sudo apt-get upgrade
Sudo apt-get dist-upgrade
Sudo apt-get remove
Sudo apt-get autoremove
Sudo update-initramfs -u

次のメッセージ/エラーが表示され、プロセスを続行できなくなります。

Setting up initramfs-tools (0.103ubuntu0.7) ...
update-initramfs: deferring update (trigger activated)
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.8.0-31-generic
Fatal: open /boot/vmlinuz-3.5.0-21-generic: No such file or directory
run-parts: /etc/initramfs/post-update.d//runlilo exited with return code 1
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

Sudo apt-get cleanSudo apt-get autocleanの両方は効果がないようです。 Sudo apt-get updateを使用すると、期待どおりに実行されるように見えますが、後続のコマンドで上記のエラーを受け取る限り変更はありません。

Sudo dpkg-reconfigure -aを実行しても違いはありません。

私のシステムには「3.5.0-21-generic」が残っている可能性があることを学びました。それらを見つけて、私の家のtmpディレクトリに移動することに最善を尽くしました。それらのヘッダーへの参照について/etc/apt/sources.listを調べましたが、まったくありません。

次のような/var/lib/dpkg/info/linux-image-generic.listの内容を調べました。

/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/linux-image-generic
/usr/share/doc/linux-image-generic/copyright
/usr/share/doc/linux-image-generic/changelog.gz

私はそれらすべての場所の内容をチェックしましたが、3.5.0-21で何も参照していないことを発見し、実際にシステム全体を検索しました。すべてを移動しました。また、linux-image-3.5.0-21-generic.*にあるlinux-image-extra-3.5.0-22-generic.*および/var/lib/dpkg/infoへの参照を新しいtmpディレクトリーに移動しました。

私のシステムでは、vmlinuz-3.5.0-21-genericが存在できる場所はないようです。すべてのファイルで3.5.0-21を含むものを検索しても、何も見つかりません。私はまだinitramfsを使用できません。つまり、システムを更新/アップグレードしたり、新しいパッケージをインストールしたり、13.04にアップグレードしたときに生じたいくつかの問題を修正したりできません。

以下は(からの)私の出力です:

$ Sudo update-initramfs -u -v
Available versions:  3.8.0-31-generic 3.5.0-41-generic
Keeping /boot/initrd.img-3.8.0-31-generic.dpkg-bak
update-initramfs: Generating /boot/initrd.img-3.8.0-31-generic
Adding module /lib/modules/3.8.0-31-generic/kernel/drivers/hid/hid.ko
... (mostly adding/calling happening here, hundreds of lines of output, seems successful)
Calling hook busybox
Adding binary /usr/lib/initramfs-tools/bin/busybox
Calling hook dmsetup
Adding binary /sbin/dmsetup
Adding library /lib/i386-linux-gnu/libdevmapper.so.1.02.1
rm -f ./etc/ld.so.conf.d/nvidia_settings.conf 
rm -f ./lib/firmware/cxgb4/t4fw.bin 
Building cpio /boot/initrd.img-3.8.0-31-generic.new initramfs
Fatal: open /boot/vmlinuz-3.5.0-21-generic: No such file or directory
run-parts: /etc/initramfs/post-update.d//runlilo exited with return code 1

誰もこの問題を理解するのを手伝ってくれますか?これを乗り越えるにはどうすればよいですか?システムを完全に再インストールすることに本当に頼りたくないのですが、これを修正する他の方法はありますか?

2
Todd

この問題を修正し、システムを通常どおり更新できるようになりました。しかし、私はまだこの問題がどのように始まったかを理解していません。

いずれにしても、私は先に進み、最初にリストされた欠落しているカーネル3.5.0-21の両方をインストールしました。質問のこの側面を編集しましたが、3.5.0-21をインストールした後、initramfsは3.5.0-17について言い始めました。それで、私はこの問題に頭を悩ませて、時間を使いすぎてしまうことを許し、すべてのデータをバックアップし、最悪の事態に備えましたが、最善を望みました。

Packages.ubuntu.comで古い/非推奨のLinuxカーネル/ヘッダーを検索してダウンロードする方法を見つけました。次に、/ etc/apt/sources.listファイルを編集して、これら2つのlinuxイメージに関連付けられた候補バージョンをダウンロードできるようにしました。次に、「Sudo apt-get update」を実行してソースを更新しました。その後、「Sudo apt-get download linux-image3.5.0-##-generic」を実行し、両方のパッケージを正常にインストールできました。

この後、すべてのapt-getコマンドは機能し続け、13.04の最新の更新プログラムをインストールし、他のすべてのユーザーソフトウェアも更新しました。

その後、再起動後、マウスとキーボードが応答しなくなりました!私のグラブメニューが消えました! ttyターミナルを起動することも、実際に何かをすることもできませんでした。 Windowsコンピューターから13.10イメージをダウンロードし、USBフラッシュubuntuブートディスクを作成し、このフラッシュボリュームからのブート後にgrubをレスキューしました。 grubを救出した後、回復モードで起動し、不良なパッケージまたはそれが起こったことを修正することができました。マシンを再起動した後、フルマウスとキーボードでログインできました。今、私のシステムは安定しているように見え、これがすべての学習体験であることに驚いています。

0
Todd