web-dev-qa-db-ja.com

Aptは部分的にインストールされたカーネルの削除に失敗し、他のパッケージをインストールできません

部分的なカーネルアップグレードのように見えた後、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 エラー

7
David

この問題は、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を再び使用できます。ただし、根本的な問題は解決しません。

0
David

私はまったく同じ問題に苦労しましたが、壊れたカーネルパッケージはバージョン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-getdpkgが壊れていることを意味します。

解決策:

感染したカーネルパッケージのエントリは、apt-getおよびdpkg自体が再び正常に機能するように、dpkgのステータスファイルから手動で削除する必要があります。手順は次のとおりです。

  1. 問題が発生した場合に備えて、ステータスファイルのバックアップを作成してください。

    Sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup

  2. 任意のテキストエディターで/var/lib/dpkg/statusを開き、検索して削除しますのみ破損したパッケージの参照。 他のものは削除しないでください!

  3. Sudo apt-get updateおよびSudo apt-get upgradeを実行して、すべてが修正されていることを確認します。

  4. パッケージはパッケージマネージャから追跡されなくなったため、この手順はオプションですが、必要に応じて削除することでディスク領域を解放できます。 /bootおよび/usr/srcの破損したカーネルパッケージのすべてのエントリを手動で安全に削除できますが、VERY CAREFULになります。あなたのケースの3.19.0-22バージョンに対応するファイル/フォルダのみに触れてください。

12
0x450

根本原因

根本的な問題は、/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で展開されるのでしょうか?今すぐシステムに複製するのは少し難しい

1
noleti

走るべきだと思う

Sudo dpkg --configure -a

既に言及されているものが続きます:

Sudo apt-get purge linux-image-extra-3.19.0-22-generic
0
JEL