破坏内核包阻止安装/更新

首先,我已经查看了关于这个主题的各种其他问题和答案,并且他们没有解决我的问题,因此我不会在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  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运行for i in /boot/vmlinuz* ; do dpkg -S $i | egrep -v $(uname -r); done |cut -d- -f3-4 for i in /boot/vmlinuz* ; do dpkg -S $i | egrep -v $(uname -r); done |cut -d- -f3-4 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. 

那就是我。 似乎没有太多错误 – 只是一些内核软件包搞砸了,但我正在努力解决它。 我宁愿不必重新安装,因为这台机器上的数据库会丢失,而且我目前没有空间备份。 它们并不重要,但需要一两天才能重建它们,而且机器实际上运行良好,除了它无法更新。

接下来我该尝试什么?

我实际上遇到了与你相同的问题。 我想,我只是解决它。 在此处查看截图

首先,下载并安装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

UPDATE

如果发现类似E: Sub-process /usr/bin/dpkg returned an error code (1)错误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