由于启动空间较小而无法更新

由于启动空间较小而无法更新

我有一些旧的 linux 映像占用了 /boot 中的空间

$ dpkg -l | grep linux-image
rc  linux-image-5.4.0-70-generic               5.4.0-70.78~18.04.1                              amd64        Signed kernel image generic
rc  linux-image-5.4.0-71-generic               5.4.0-71.79~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-72-generic               5.4.0-72.80~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-73-generic               5.4.0-73.82~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-74-generic               5.4.0-74.83~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-77-generic               5.4.0-77.86~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-80-generic               5.4.0-80.90~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-81-generic               5.4.0-81.91~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-84-generic               5.4.0-84.94~18.04.1                              amd64        Signed kernel image generic
ii  linux-image-5.4.0-86-generic               5.4.0-86.97~18.04.1                              amd64        Signed kernel image generic
iF  linux-image-5.4.0-87-generic               5.4.0-87.98~18.04.1                              amd64        Signed kernel image generic
iF  linux-image-5.4.0-89-generic               5.4.0-89.100~18.04.1                             amd64        Signed kernel image generic
iU  linux-image-generic-hwe-18.04              5.4.0.90.101~18.04.80                            amd64        Generic Linux kernel image

我正在使用 5.4.0-86-通用

 $ uname -r
5.4.0-86-generic

我尝试使用清除旧的 linux 映像,sudo apt-get purge linux-image-5.4.0-{70,71,72,73,74,77,80}-generic 然后遇到错误:

E: Unmet dependencies. Try 'apt --fix-broken install' with no packages (or specify a solution).

然后尝试了 sudo apt --fix-broken install,但是遇到了错误:

dpkg: error processing archive /var/cache/apt/archives/linux-image-5.4.0-90-generic_5.4.0-90.101~18.04.1_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-5.4.0-90-generic' to '/boot/vmlinuz-5.4.0-90-generic.dpkg-new': failed to write (No space left on device)

如何清理 /boot 上的空间?

答案1

在这种情况下,使用较低级别的工具可以提供帮助而不是引起问题。通常,今天直接使用不是一个好主意dpkg,但在这种情况下,出于同样的原因,这将有所帮助:dpkg不会像apt.

您知道您不会使用安装的早期内核版本,因此您可以直接删除它们。假设bashshell 删除了之前的所有内容:

dpkg --purge linux-image-5.4.0-{70,71,72,73,74,77,80,81,84}-generic

然后仍然要apt修复损坏的部分。由于现在有可用空间,它应该成功创建一个或多个初始化文件系统文件来完成软件包安装。

apt --fix-broken install

现在再次检查还需要做什么:

dpkg -l 'linux-image-5.4.*generic' 'linux-image-generic*'

如果仍有软件包处于错误状态(第二列字母为大写,如dpkg输出中所述),如果位于单独的分区中,则Err: uppercase=bad可能不会发生这种情况,请使用并提供解决方案来重新安装它们。例如,如果最后三个仍然损坏:/boot--fix-broken

apt-get --fix-broken reinstall linux-image-5.4.0-87-generic linux-image-5.4.0-89-generic linux-image-generic-hwe-18.04

(然后可能摆脱linux-image-5.4.0-87-generic)。


实际上仅使用aptorapt-get也应该是可行的,但提供的解决方案必须完整,并且必须希望首先进行卸载以释放磁盘空间。也许这也可以工作(注意 bash 扩展中的包名称末尾的减号,告诉apt卸载而不是重新安装):

apt-get --fix-broken --purge reinstall linux-image-5.4.0-{70,71,72,73,74,77,80,81,84}-generic- linux-image-5.4.0-87-generic linux-image-5.4.0-89-generic linux-image-generic-hwe-18.04

相关内容