为什么 dpkg 要寻找旧的标题?

为什么 dpkg 要寻找旧的标题?

我目前使用的是 Debian 9.9 Stretch。

当我想使用 安装新的数据包时dpkg -iapt install或者甚至当我正在执行时,apt-upgrade我收到以下错误:

Processing triggers for initramfs-tools (0.130) ...
update-initramfs: Generating /boot/initrd.img-4.9.0-9-amd64
Added Linux  +  *

Fatal: open /boot/vmlinuz-4.9.0-7-amd64: No such file or directory

run-parts: /etc/initramfs/post-update.d//runlilo exited with return code 1
dpkg: error processing package initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

我不明白为什么它会寻找 4.9.0-7 因为我有 4.9.0-9:

 $ uname -a
 Linux my_laptop 4.9.0-9-amd64 #1 SMP Debian 4.9.168-1+deb9u3 (2019-06-16) x86_64 GNU/Linux

看来我也有 4.9.0-8 文件:

$ ll boot/ | grep vmlinuz
vmlinuz-4.9.0-8-amd64
vmlinuz-4.9.0-9-amd64

我尝试安装 4.9.0-7 标头(通过 synaptic 包管理器),但最终出现同样的错误。

似乎我弄坏了一些东西,但我不知道如何修复它(不从头开始完全重新安装,这是我想避免的)。

有什么指点吗?

答案1

我实际上在这里找到了答案:https://superuser.com/a/1318064/329216

以下命令似乎起了作用:

sudo apt install --reinstall linux-image-4.9.0-7-amd64

[编辑]一年后,我遇到了类似的问题,在谷歌上搜索并找到了我自己的帖子……但这次它不起作用。原来我的/etc/lilo.conf已经过时了,指向旧图像。我执行了以下步骤:

  • 删除旧图像/内核(做不是删除一个匹配的uname -R)(此时仍然收到更新后的 lilo 错误)
  • 手动编辑/etc/lilo.conf最后一张图片的顶点
  • sudo liloconfig -u
  • sudo lilo
  • 重启
  • sudo apt dist-upgrade

问题解决了。

相关内容