部分的なカーネルアップグレードのように見えた後、Aptはアップグレードまたは新しいパッケージのインストールに失敗します。 apt-get purge -f linux-image-extra-3.19.0-22-generic
を試しましたが、非常によく似たエラーメッセージで失敗します。マシンは、最新のカーネルバージョン(grubのデフォルト)での起動時にクラッシュしますが、以前のバージョンは正常に動作します。
$ Sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
linux-image-3.19.0-22-generic linux-image-extra-3.19.0-22-generic
The following packages will be upgraded:
linux-cloud-tools-common
1 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 0 B/24.3 kB of archives.
After this operation, 208 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 453815 files and directories currently installed.)
Removing linux-image-extra-3.19.0-22-generic (3.19.0-22.22) ...
depmod: FATAL: could not load /boot/System.map-3.19.0-22-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/dkms 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
update-initramfs: Generating /boot/initrd.img-3.19.0-22-generic
grep: /boot/config-3.19.0-22-generic: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_6gldfB/lib/modules/3.19.0-22-generic/modules.order: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_6gldfB/lib/modules/3.19.0-22-generic/modules.builtin: No such file or directory
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
Generating grub configuration file ...
ERROR: cannot determine partition label for rootfs /dev/sda9
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
dpkg: error processing package linux-image-extra-3.19.0-22-generic (--remove):
subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.19.0-22-generic (3.19.0-22.22) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
update-initramfs: Deleting /boot/initrd.img-3.19.0-22-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
Generating grub configuration file ...
ERROR: cannot determine partition label for rootfs /dev/sda9
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.19.0-22-generic.postrm line 328.
dpkg: error processing package linux-image-3.19.0-22-generic (--remove):
subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
linux-image-extra-3.19.0-22-generic
linux-image-3.19.0-22-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
Aptを再び動作させ、将来のカーネルをインストールできる状態にする必要があります。 3.19.0-22カーネルを適切に削除するのはいいことですが、不要です。詳細についてはお気軽にお問い合わせください。
-編集-
0x450の回答は、カーネル関連以外のパッケージに対して機能します。カーネルとgrubの更新は、aptとdpkgを破損状態に戻します。この繰り返し発生するエラーメッセージに気付きました。
Generating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
これはgrub構成ファイルに関連する問題でしょうか?
Sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
は非常によく似たエラーになります(これは ここ で表示できます)
Sudo dpkg --configure -a
作成 this エラー
Sudo apt-get purge linux-image-extra-3.19.0-22-generic
作成 this エラー
この問題は、grub-mkconfigがエラーメッセージGenerating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
(sda9がfsルートを保持している)でクラッシュしたことが原因であることがわかりました。
Aptは、新しいカーネルをインストールしようとしたときにgrub-mkconfigを実行してブートメニューに追加したためにクラッシュしました。これは実際にはaptではなくgrubの問題でした。
Ubuntuを再インストールし、ファイルシステムルートを含むパーティションにext4ではなくext3を使用して修正しました。ただし、私のホームディレクトリはまだ独自のext4パーティションにあるため、影響を受けていないようです。
0x450の回答は一時的な修正としてうまく機能するため、aptを再び使用できます。ただし、根本的な問題は解決しません。
私はまったく同じ問題に苦労しましたが、壊れたカーネルパッケージはバージョン3.13.0.57でした。
問題の検査:
パッケージのdpkg status
を確認します。
dpkg --status linux-image-3.19.0-22-generic
dpkg --status linux-image-extra-3.19.0-22-generic
出力がパッケージの状態が悪い、つまりhalf installedまたはnot not installed、これは、それぞれapt-get
とdpkg
が壊れていることを意味します。
解決策:
感染したカーネルパッケージのエントリは、apt-get
およびdpkg
自体が再び正常に機能するように、dpkg
のステータスファイルから手動で削除する必要があります。手順は次のとおりです。
問題が発生した場合に備えて、ステータスファイルのバックアップを作成してください。
Sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup
任意のテキストエディターで/var/lib/dpkg/status
を開き、検索して削除しますのみ破損したパッケージの参照。 他のものは削除しないでください!
Sudo apt-get update
およびSudo apt-get upgrade
を実行して、すべてが修正されていることを確認します。
パッケージはパッケージマネージャから追跡されなくなったため、この手順はオプションですが、必要に応じて削除することでディスク領域を解放できます。 /boot
および/usr/src
の破損したカーネルパッケージのすべてのエントリを手動で安全に削除できますが、VERY CAREFULになります。あなたのケースの3.19.0-22バージョンに対応するファイル/フォルダのみに触れてください。
根本原因
根本的な問題は、/boot/System.map-3.19.0-22-generic
が欠落しており、パケットの再構成/削除が妨げられているようです。
推奨ソリューション
最初の提案はSudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
でした
これは明らかに失敗するので(「ハーフインストールを構成できない」)、もう少しforcefulを実行することをお勧めします。次のオプション
Sudo dpkg --remove --force-remove-reinstreq linux-image-extra-3.19.0-22-generic
その提案は this answerに基づいています。
代替案:手動修理?
または、そのファイルを手動で修復することもできますか?再インストールの試行中にapt-getで展開されるのでしょうか?今すぐシステムに複製するのは少し難しい
走るべきだと思う
Sudo dpkg --configure -a
既に言及されているものが続きます:
Sudo apt-get purge linux-image-extra-3.19.0-22-generic