损坏的内核包阻止安装/更新

损坏的内核包阻止安装/更新

首先,我查看了关于此主题的各种其他问题和答案,但它们都没有解决我的问题,所以我没有在 Google 和这里​​搜索很长时间就贸然行动。此外,没有单独的启动分区,而且有足够的可用空间。

我使用的是 16.04,我认为发生的事情是我的笔记本电脑在运行更新时重新启动或崩溃了。当然,当我回来时,它意外关闭了,现在我无法使用 apt-get 安装任何东西。在我寻求解决方案的过程中,唯一的重大变化是,我尝试强制删除 linux-generic,如某处建议的那样,但尽管成功删除了软件包,但它无法重新安装。

目前我已经能够回退到内核 4.8.0-54-generic,它运行得相当好(我现在正在使用笔记本电脑)。

我将从 dpkg --audit 开始:

The following packages have been unpacked but not yet configured.
They must be configured using dpkg --configure or the configure
menu option in dselect for them to work:
 linux-generic-hwe-16.04 Complete Generic Linux kernel and headers
 linux-image-extra-4.8.0-56-generic Linux kernel extra modules for version 4.8.
 linux-image-extra-4.8.0-58-generic Linux kernel extra modules for version 4.8.
 linux-image-generic-hwe-16.04 Generic Linux kernel image

The following packages are only half configured, probably due to problems
configuring them the first time. The configuration should be retried using
dpkg --configure <package> or the configure menu option in dselect:
 linux-image-4.8.0-53-generic Linux kernel image for version 4.8.0 on 64 bit x8
 linux-image-4.8.0-56-generic Linux kernel image for version 4.8.0 on 64 bit x8
 linux-image-4.8.0-58-generic Linux kernel image for version 4.8.0 on 64 bit x8

The following packages are only half installed, due to problems during
installation. The installation can probably be completed by retrying it;
the packages can be removed using dselect or dpkg --remove:
 linux-image-extra-4.4.0-83-generic Linux kernel extra modules for version 4.4.
 linux-image-extra-4.8.0-53-generic Linux kernel extra modules for version 4.8.

运行for i in /boot/vmlinuz* ; do dpkg -S $i | egrep -v $(uname -r); done |cut -d- -f3-4输出:

4.4.0-53
4.8.0-53
4.8.0-56
4.8.0-58

dpkg 基本上除了删除一些内容外不会做任何事情。因此dpkg --configure -a生成:

Setting up linux-image-4.8.0-53-generic (4.8.0-53.56~16.04.1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Not updating initrd symbolic links since we are being updated/reinstalled 
(4.8.0-53.56~16.04.1 was configured last, according to dpkg)
Not updating image symbolic links since we are being updated/reinstalled 
(4.8.0-53.56~16.04.1 was configured last, according to dpkg)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
Error! Your kernel headers for kernel 4.8.0-53-generic cannot be found.
Please install the linux-headers-4.8.0-53-generic package,
or use the --kernelsourcedir option to tell DKMS where it's located
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
update-initramfs: Generating /boot/initrd.img-4.8.0-53-generic
cp: cannot stat '/etc/fonts/conf.d/60-latin.conf': No such file or directory
E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1.
update-initramfs: failed for /boot/initrd.img-4.8.0-53-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.8.0-53-generic.postinst line 1052.
dpkg: error processing package linux-image-4.8.0-53-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
Setting up linux-image-4.8.0-58-generic (4.8.0-58.63~16.04.1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-4.8.0-56-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-58-generic /boot/vmlinuz-4.8.0-58-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.8.0-58-generic /boot/vmlinuz-4.8.0-58-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-58-generic /boot/vmlinuz-4.8.0-58-generic
update-initramfs: Generating /boot/initrd.img-4.8.0-58-generic
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
cp: cannot stat '/etc/fonts/conf.d/60-latin.conf': No such file or directory
E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1.
update-initramfs: failed for /boot/initrd.img-4.8.0-58-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.8.0-58-generic.postinst line 1052.
dpkg: error processing package linux-image-4.8.0-58-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
Setting up linux-image-4.8.0-56-generic (4.8.0-56.61~16.04.1) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-4.8.0-58-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-56-generic /boot/vmlinuz-4.8.0-56-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.8.0-56-generic /boot/vmlinuz-4.8.0-56-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-56-generic /boot/vmlinuz-4.8.0-56-generic
update-initramfs: Generating /boot/initrd.img-4.8.0-56-generic
W: Possible missing firmware /lib/firmware/i915/kbl_dmc_ver1_01.bin for module i915
cp: cannot stat '/etc/fonts/conf.d/60-latin.conf': No such file or directory
E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1.
update-initramfs: failed for /boot/initrd.img-4.8.0-56-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.8.0-56-generic.postinst line 1052.
dpkg: error processing package linux-image-4.8.0-56-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-generic-hwe-16.04:
 linux-image-generic-hwe-16.04 depends on linux-image-4.8.0-58-generic; however:
  Package linux-image-4.8.0-58-generic is not configured yet.

dpkg: error processing package linux-image-generic-hwe-16.04 (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-image-extra-4.8.0-58-generic:
 linux-image-extra-4.8.0-58-generic depends on linux-image-4.8.0-58-generic; however:
  Package linux-image-4.8.0-58-generic is not configured yet.

dpkg: error processing package linux-image-extra-4.8.0-58-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-image-extra-4.8.0-56-generic:
 linux-image-extra-4.8.0-56-generic depends on linux-image-4.8.0-56-generic; however:
  Package linux-image-4.8.0-56-generic is not configured yet.

dpkg: error processing package linux-image-extra-4.8.0-56-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-generic-hwe-16.04:
 linux-generic-hwe-16.04 depends on linux-image-generic-hwe-16.04 (= 4.8.0.58.29); however:
  Package linux-image-generic-hwe-16.04 is not configured yet.

dpkg: error processing package linux-generic-hwe-16.04 (--configure):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 linux-image-4.8.0-53-generic
 linux-image-4.8.0-58-generic
 linux-image-4.8.0-56-generic
 linux-image-generic-hwe-16.04
 linux-image-extra-4.8.0-58-generic
 linux-image-extra-4.8.0-56-generic
 linux-generic-hwe-16.04

请注意,它抱怨缺少与实际运行的内核不同的头文件(-53 而不是 -54,这两个文件都远远落后于我在出现这种混乱之前安装的最高内核)。

apt-get -f install给出:

 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 Correcting dependencies... Done
 The following packages were automatically installed and are no longer required:
   linux-headers-4.4.0-83 linux-headers-4.4.0-83-generic linux-image-4.4.0-83-generic linux-image-extra-4.4.0-83-generic
 Use 'sudo apt autoremove' to remove them.
 The following additional packages will be installed:
   libcogl-common libcogl-pango20 linux-image-4.4.0-83-generic
 Suggested packages:
   fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
 The following packages will be REMOVED
   linux-image-extra-4.8.0-53-generic
 The following NEW packages will be installed
   libcogl-common libcogl-pango20 linux-image-4.4.0-83-generic
 0 to upgrade, 3 to newly install, 1 to remove and 78 not to upgrade.
 9 not fully installed or removed.
 Need to get 0 B/58.0 MB of archives.
 After this operation, 94.3 MB disk space will be freed.
 Do you want to continue? [Y/n] y
 (Reading database ... 389562 files and directories currently installed.)
 Removing linux-image-extra-4.8.0-53-generic (4.8.0-53.56~16.04.1) ...
 run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
 run-parts: executing /etc/kernel/postinst.d/dkms 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
 Error! Your kernel headers for kernel 4.8.0-53-generic cannot be found.
 Please install the linux-headers-4.8.0-53-generic package,
 or use the --kernelsourcedir option to tell DKMS where it's located
 run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.8.0-53-generic /boot/vmlinuz-4.8.0-53-generic
 update-initramfs: Generating /boot/initrd.img-4.8.0-53-generic
 cp: cannot stat '/etc/fonts/conf.d/60-latin.conf': No such file or directory
 E: /usr/share/initramfs-tools/hooks/plymouth failed with return 1.
 update-initramfs: failed for /boot/initrd.img-4.8.0-53-generic with 1.
 run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
 dpkg: error processing package linux-image-extra-4.8.0-53-generic (--remove):
  subprocess installed post-removal script returned error exit status 1
 Errors were encountered while processing:
  linux-image-extra-4.8.0-53-generic
 E: Sub-process /usr/bin/dpkg returned an error code (1)

最后apt-get upgrade得到:

 Reading package lists... Done
 Building dependency tree       
 Reading state information... Done
 You might want to run ‘apt-get -f install’ to correct these.
 The following packages have unmet dependencies.
  libclutter-1.0-0 : Depends: libcogl-pango20 (>= 1.17.4) but it is not installed
                     Recommends: libclutter-1.0-common but it is not installed
  linux-image-extra-4.4.0-83-generic : Depends: linux-image-4.4.0-83-generic but it is not installed
 E: Unmet dependencies. Try using -f.

我现在的情况就是这样。似乎没有太多问题 - 只是几个内核包出了问题,但我很难解决它。我宁愿不重新安装,因为这台机器上的数据库会丢失,而我目前没有空间备份。它们并不重要,但重建它们需要一两天的时间,目前这台机器实际上运行良好,除了无法更新之外。

下一步我该尝试什么?

答案1

我实际上也遇到了和你一样的问题。我想我已经解决了。请参阅此处的屏幕截图

首先,下载并安装linux-headers-4.8.0-53_4.8.0-53.56~16.04.1_all.deb

然后,下载并安装linux-headers-4.8.0-53-generic_4.8.0-53.56~16.04.1_amd64.deb。

apt update那就尝试一下apt upgrade

更新

如果发现类似错误E: Sub-process /usr/bin/dpkg returned an error code (1),请按照以下步骤操作。

  1. 跑步dpkg --remove --force-remove-reinstreq linux-image-extra-4.8.0-58-generic
  2. 然后运行apt install linux-image-extra-4.8.0-58-generic

相关内容