最近,我收到了一个警告,提示/boot分区几乎已满或没有剩余空间了。是的,我使用的是一个单独的/boot分区,不过现在不太多的人这样做了。
这是我第一次看到这样的错误,让我感到困惑。现在,有几种方法可以在Ubuntu(或基于Ubuntu的发行版)上释放空间,但并不是所有方法都适用于这种情况。
因此,我决定写一篇文章,介绍我采取的步骤,以释放/boot分区的一些空间。
在Ubuntu上释放/boot分区的空间(如果你的/boot分区快满了)
我建议你仔细阅读这些解决方案,并选择最适合你情况的方法。这些方法都很简单,但在生产系统上执行其中一些操作时,你需要格外谨慎。
方法1:使用apt autoremove
你不需要成为终端专家来执行这个操作,只需一个命令,你就可以删除未使用的内核,从而释放/boot分区的空间。
你只需要输入以下命令:
sudo apt autoremove
这不仅会删除未使用的内核,还会删除你不需要的依赖项,或者不被任何已安装工具所需要的依赖项。
输入命令后,系统将列出将要被删除的内容,你只需确认操作。如果你好奇的话,你可以仔细查看它到底删除了什么。
你需要按下Y键以继续。
值得注意的是,如果/boot分区剩余的空间很少并且你收到了警告,这种方法只会起作用。但是,如果/boot分区已满,APT可能根本无法工作。
在下一种方法中,我将介绍两种不同的方式,通过这两种方式你可以使用GUI和终端来删除旧的内核,以释放空间。
方法2:手动删除未使用的内核(如果apt autoremove无效)
在尝试删除旧的内核以释放空间之前,你需要确定当前活动的内核,并确保你不删除它。
要检查你的内核版本,请在终端中输入以下命令:
uname -r
uname命令通常用于获取Linux系统信息。这个命令显示了当前正在使用的Linux内核。
现在,你知道了你当前的Linux内核是什么,你只需要删除与此版本不匹配的内核。你应该将它记录在某个地方,以确保你不会意外删除它。
接下来,你可以使用终端或GUI来删除它。
警告!
在删除内核时要特别小心。只删除旧内核,不要删除你当前正在使用的内核,否则你的系统将会损坏。
使用GUI工具删除旧的Linux内核
你可以使用Synaptic软件包管理器或类似Stacer的工具来开始操作。在我遇到/boot分区已满且apt不可用的情况下,我使用Stacer来删除旧的内核。让我来演示一下它是如何工作的。
首先,你需要启动“Stacer”,然后按照下面的截图所示导航到软件包卸载器。
在这里,搜索“image”,你将找到你拥有的Linux内核的图像。你只需要删除旧的内核版本,而不是你当前的内核镜像。
在上面的截图中,我标出了我的当前内核和旧的内核,所以你必须小心你系统上的内核版本。
你不需要删除其他任何东西,只需删除旧的内核版本。
类似地,在软件包列表中搜索“headers”,并删除如下所示的旧内核。
只是提醒一下,你不想删除“linux-headers-generic”。只关注带有版本号的那些。
就是这样,你完成了,apt将再次正常工作,你已成功从/boot分区中释放了一些空间。同样,你可以使用任何其他你熟悉的软件包管理器来执行此操作。
使用命令行删除旧的内核
这与使用终端是一样的。因此,如果你没有使用GUI的选项(如果是远程机器/服务器),或者如果你只是习惯使用终端,那么你可以按照下面的步骤操作。
首先,使用以下命令列出所有已安装的内核:
ls -l /boot
那些被标记为“old”的或与你当前的内核版本不匹配的内核,就是你可以删除的未使用内核。
现在,你可以使用rm命令来从/boot分区删除特定的内核,使用以下命令(每个内核一个命令):
sudo rm /boot/vmlinuz-5.4.0-7634
-generic
请确保检查你系统的版本 - 对于你的系统可能会有所不同。
如果你有很多未使用的内核,这将需要时间。因此,你也可以使用以下命令来删除多个内核:
sudo rm /boot/*-5.4.0-{7634}-*
澄清一下,你需要用逗号分隔的方式写出内核版本的最后部分/代码,以便一次删除所有内核。
假设我有两个旧内核5.4.0-7634-generic和5.4.0-7624,那么命令将是:
sudo rm /boot/*-5.4.0-{7634,7624}-*
如果你不想在grub引导菜单中看到旧的内核版本,你可以使用以下命令来更新grub:
sudo update-grub
就是这样。你完成了。你已经释放了空间,如果/boot分区已满并且引起了APT的问题,你也可能已经解决了这个问题。
在某些情况下,你可能需要输入以下命令来修复损坏的apt(我在论坛上看到一些人这样做):
sudo dpkg --configure -a
sudo apt install -f
请注意,除非你发现APT损坏,否则不需要输入上述命令。就我个人而言,我不需要这些命令,但我发现它们对一些人来说在论坛上非常有用。
故障排除:
如果你在执行这些操作时遇到问题,请在评论中告诉我,我将尽力提供帮助。
这就是如何在Ubuntu Linux上释放/boot分区的空间。如果你的系统提示/boot分区没有剩余空间,这些方法应该可以帮助你解决问题。