更新用旧的不正确版本填充 /boot

use*_*216 9 updates boot grub2 kernel

每当我更新 Linux 时,例如从 4.4.0.65 到 4.4.0.66 :

  1. initrd.img-4.4.0.XX-generic在尝试最新版本之前,软件更新工具会下载大约 40 个以前的版本
  2. /boot 填上
  3. 当前版本无法加载,因为启动空间不足
  4. 系统(有时)配置为不存在的版本,并尝试在启动时引导它

从版本 29 开始,我已经处理了很长时间。

我发现的唯一解决方法每次更新需要我一个小时。我在更新期间打开命令行,并在下载版本时删除它们。最终,更新工具满意它已下载所有以前的版本、下载最新版本并配置系统。

这是来自的输出 dpkg -l | grep linux-image

rc  linux-image-3.19.0-15-generic                        3.19.0-15.15                                  amd64        Linux kernel image for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-4.2.0-34-generic                         4.2.0-34.39                                   amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-4.2.0-35-generic                         4.2.0-35.40                                   amd64        Linux kernel image for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-21-generic                         4.4.0-21.37                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-22-generic                         4.4.0-22.40                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-28-generic                         4.4.0-28.47                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-31-generic                         4.4.0-31.50                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-34-generic                         4.4.0-34.53                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-36-generic                         4.4.0-36.55                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-38-generic                         4.4.0-38.57                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-42-generic                         4.4.0-42.62                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-43-generic                         4.4.0-43.63                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-45-generic                         4.4.0-45.66                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-47-generic                         4.4.0-47.68                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-51-generic                         4.4.0-51.72                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-53-generic                         4.4.0-53.74                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-57-generic                         4.4.0-57.78                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-59-generic                         4.4.0-59.80                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-62-generic                         4.4.0-62.83                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-63-generic                         4.4.0-63.84                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-64-generic                         4.4.0-64.85                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-4.4.0-65-generic                         4.4.0-65.86                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-4.4.0-66-generic                         4.4.0-66.87                                   amd64        Linux kernel image for version 4.4.0 on 64 bit x86 SMP
rc  linux-image-extra-3.19.0-15-generic                  3.19.0-15.15                                  amd64        Linux kernel extra modules for version 3.19.0 on 64 bit x86 SMP
rc  linux-image-extra-4.2.0-34-generic                   4.2.0-34.39                                   amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.2.0-35-generic                   4.2.0-35.40                                   amd64        Linux kernel extra modules for version 4.2.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-21-generic                   4.4.0-21.37                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-22-generic                   4.4.0-22.40                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-28-generic                   4.4.0-28.47                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-31-generic                   4.4.0-31.50                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-34-generic                   4.4.0-34.53                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-36-generic                   4.4.0-36.55                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-38-generic                   4.4.0-38.57                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-42-generic                   4.4.0-42.62                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-43-generic                   4.4.0-43.63                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-45-generic                   4.4.0-45.66                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-47-generic                   4.4.0-47.68                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-51-generic                   4.4.0-51.72                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-53-generic                   4.4.0-53.74                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-extra-4.4.0-57-generic                   4.4.0-57.78                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-59-generic                   4.4.0-59.80                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-62-generic                   4.4.0-62.83                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-63-generic                   4.4.0-63.84                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
ii  linux-image-extra-4.4.0-64-generic                   4.4.0-64.85                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iF  linux-image-extra-4.4.0-65-generic                   4.4.0-65.86                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-extra-4.4.0-66-generic                   4.4.0-66.87                                   amd64        Linux kernel extra modules for version 4.4.0 on 64 bit x86 SMP
iU  linux-image-generic                                  4.4.0.66.70                                   amd64        Generic Linux kernel image
Run Code Online (Sandbox Code Playgroud)

以下是“sudo apt-get autoremove”中的错误

Setting up linux-firmware (1.157.8) ...
update-initramfs: Generating /boot/initrd.img-4.4.0-65-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-42-generic
Setting up linux-image-4.4.0-66-generic (4.4.0-66.87) ...
Internal Error: Could not find image (/boot/vmlinuz-4.4.0-66-generic)
dpkg: error processing package linux-image-4.4.0-66-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-extra-4.4.0-66-generic:
 linux-image-extra-4.4.0-66-generic depends on linux-image-4.4.0-66-generic; however:
  Package linux-image-4.4.0-66-generic is not configured yet.

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

dpkg: error processing package linux-image-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-generic:
 linux-generic depends on linux-image-generic (= 4.4.0.66.70); however:
  Package linux-image-generic is not configured No apport report written because the error message indicates its a followup error from a previous failure.  
No apport report written because the error message indicates its a followup error from a previous failure.                                                                                                                  No apport report written because MaxReports is reached already yet.

dpkg: error processing package linux-generic (--configure):
 dependency problems - leaving unconfigured
Setting up linux-image-extra-4.4.0-65-generic (4.4.0-65.86) ...
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-65-generic
run-parts: executing /etc/kernel/postinst.d/pm-utils 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 4.4.0-65-generic /boot/vmlinuz-4.4.0-65-generic
Generating grub configuration file ...
Warning: Setting GRUB_TIMEOUT to a non-zero value when GRUB_HIDDEN_TIMEOUT is set is no longer supported.
Found linux image: /boot/vmlinuz-4.4.0-65-generic
Found initrd image: /boot/initrd.img-4.4.0-65-generic
Found memtest86+ image: /memtest86+.elf
Found memtest86+ image: /memtest86+.bin
done
Errors were encountered while processing:
 linux-image-4.4.0-66-generic
 linux-image-extra-4.4.0-66-generic
 linux-image-generic
 linux-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
Run Code Online (Sandbox Code Playgroud)

小智 15

对我来说,这是 update-initramfs 和旧的、陈旧的文件在之前的内核升级期间没有从 /var/lib/initramfs-tools 中删除的问题(可能是由于 apt 之前由于某种原因或其他原因出错)。

cd /var/lib/initramfs-tools
Run Code Online (Sandbox Code Playgroud)

删除旧内核版本的文件(显然,不要删除当前内核版本的文件)。

cd /boot
Run Code Online (Sandbox Code Playgroud)

删除 /boot 中旧版本的 initrd。

然后运行:

/usr/sbin/update-initramfs -u -k all
Run Code Online (Sandbox Code Playgroud)

这应该会成功,并且只会在 /boot 中为您当前的内核版本创建(或更新)一个 initrd 文件。


use*_*216 0

我的问题是由于使用“sudo rm”错误地从启动中删除文件引起的。

第一个问题是旧包被自动加载并填充/boot。要自动删除旧软件包,我可以使用“sudo apt-get autoremove”。

但是,我仍然无法升级,并出现以下错误:

处理时遇到错误: linux-image-4.4.0-66-generic linux-image-extra-4.4.0-66-generic linux-image-generic linux-generic E:子进程 /usr/bin/dpkg 返回错误代码 (1)

我在这里读到类似的问题:Cannot apt Upgrade due to kernel package issues并按照答案部分中的步骤进行操作,如下所示...

我尝试“wajig删除linux-headers-4.4.0-66.generic”和“sudo apt-get升级”但它仍然返回:处理时遇到错误:linux-image-4.4.0-66-generic linux-image -extra-4.4.0-66-generic linux-image-generic

因此,我制作了 /var/lib/dpkg/status 的备份副本,然后在 gedit 中打开 /var/lib/dpkg/status 。

我在 /var/lib/dpkg/status 中搜索了“4.4.0-66”,并删除了以“Package: linux-image-4.4.0-66-generic”开头的整个部分,因为该部分的第二行说“状态:安装正常,半配置”。

之后,“sudo apt-get Upgrade”就能够正确安装最新的内核。