这里有一个Ubuntu14.04 LTS用户。
基本上我在跑步的时候遇到了问题
sudo apt-get update
sudo apt-get upgradedpkg返回一个错误代码,因为Linux内核包3.13.0.57被标记为“未完全安装”:
Errors were encountered while processing:
linux-image-3.13.0.57-generic
linux-image-extra-3.13.0-57-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)我输入uname -r是为了查看我的系统内核的当前版本,令人惊讶的是它是3.13.0.57。之后,我重新启动系统并输入grub来列出所有已安装的linux内核,并看到我有3.8.0-35通用的,所以我与它一起启动,尝试重新安装3.13.0.57版本。我不知道为什么在默认情况下,当3.8.0-35可用时,Ubuntu14.04会用3.13.0.57启动。
在使用3.8.0成功引导之后,我再次列出了dpkg的所有内核,以确保3.13.0-57的存在。
sudo dpkg --list | grep linux-image
sudo apt-get purge linux-image-3.13.0.57-generic
sudo apt-get purge linux-image-extra-3.13.0-57-generic但是不能删除额外的映像包,而纯linux映像可以:
Errors were encountered while processing:
linux-image-extra-3.13.0-57-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)有什么办法解决这个问题吗?我搜索并发现,在引导分区上可能缺少空间可能会导致这种问题,但我认为我的情况不同。我设法手动清除了4-5个老内核,以确保我已经在引导分区上释放了足够的空间。
编辑1:我看到Ubuntu14.04.2附带了LinuxKernel3.16.x,但我没有它。我最新的一个是3.8.0-35,然后是3.13.0-57。
编辑2:运行sudo apt-get autoremove或sudo apt-get dist-upgrade没有帮助。看来我不能进行任何升级。下面是sudo apt-get autoremove__的日志:
$ sudo apt-get autoremove
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
linux-image-extra-3.13.0-57-generic
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 152 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 747752 files and directories currently installed.)
Removing linux-image-extra-3.13.0-57-generic (3.13.0-57.95) ...
depmod: FATAL: could not load /boot/System.map-3.13.0-57-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
run-parts: executing /etc/kernel/postinst.d/dkms 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
update-initramfs: Generating /boot/initrd.img-3.13.0-57-generic
grep: /boot/config-3.13.0-57-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
run-parts: executing /etc/kernel/postinst.d/zz-runlilo 3.13.0-57-generic /boot/vmlinuz-3.13.0-57-generic
Fatal: open /boot/vmlinuz-3.13.0-46-generic.efi.signed: No such file or directory
run-parts: /etc/kernel/postinst.d/zz-runlilo exited with return code 1
dpkg: error processing package linux-image-extra-3.13.0-57-generic (--remove):
subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
linux-image-extra-3.13.0-57-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)我不知道这- Fatal: open /boot/vmlinuz-3.13.0-46-generic.efi.signed: No such file or directory与删除3.13.0-57有什么关系.
发布于 2015-07-11 17:01:23
我设法找到了解决这个问题的办法。尽管如此,如果有同样问题的人挣扎,我还是决定把它作为一个答案。
我检查了包的dpkg状态:
dpkg --status linux-image-3.13.0.57-generic
dpkg --status linux-image-extra-3.13.0-57-generic输出清楚地表明包处于糟糕的状态。正如我在上面的问题中所写的,它们“没有完全安装”。
这些包的条目必须从dpkg的状态文件中删除,这样apt-get才能正常工作。这些步骤如下:
sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup/var/lib/dpkg/status,只搜索和删除损坏包的引用。你不能再删除任何东西了!sudo apt-get upgrade以确保一切都是固定的。发布于 2015-07-11 15:16:43
如果你想升级到一个新的内核版本,你可以手动安装它通过“.”通过"apt-get dist-升级“打包vor
这些故障发生在完整的luks加密的Volumens中,因为在这些设置中/boot太小了。
也许“自动移除”也有帮助.
发布于 2015-07-11 23:49:42
wajig remove linux-headers-3.13.0-57-generic为我工作。
我重新启动并运行在3.13.0-57-generic内核上。
不过要小心!备份你的数据。
https://askubuntu.com/questions/647171
复制相似问题