我目前使用的是 Debian 9.9 Stretch。
当我想使用 安装新的数据包时dpkg -i
,apt 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
问题解决了。