前几天,我收到警告,引导分区几乎已满或没有剩余空间。是的,我有一个单独的启动分区,我相信现在没有多少人这样做。
这是我第一次看到这样的错误,这让我感到困惑。现在,有几种方法可以释放Ubuntu(或基于Ubuntu的发行版)上的空间,但是在这种情况下,并非所有方法都有用。
这就是为什么我决定写一些关于释放/ boot分区中的空间的步骤的原因。
我建议您仔细阅读解决方案,并遵循最适合您情况的解决方案。这很容易,但是您需要对在生产系统上执行其中一些操作保持谨慎。
您无需成为终端专家即可执行此操作,这只是一个命令,并且您将删除未使用的内核以释放/ boot分区中的空间。
您要做的就是输入:
sudo apt autoremove
这不仅会删除未使用的内核,还会摆脱您不需要或不需要的已安装任何工具所依赖的依赖项。
输入命令后,它将列出将要删除的内容,您只需确认操作即可。如果您好奇,可以仔细检查一下,看看它实际上删除了什么。
这是它的样子:
您必须按Y才能继续。
值得注意的是,该方法仅在您只剩一点点空间并且收到警告时才有效。但是,如果/ boot分区已满,则APT可能甚至无法工作。
在下一个方法中,我将重点介绍两种不同的方式,您可以通过两种方式使用GUI和终端删除旧内核以释放空间。
在尝试删除任何较旧的内核以释放空间之前,需要确定当前的活动内核,并确保不要删除该内核。
要检查您的内核版本,请在终端中输入以下命令:
uname -r
该uname命令通常用来获取Linux系统的信息。在这里,此命令显示当前使用的Linux内核。它看起来应该像这样:
现在,您知道当前的Linux内核是什么,只需删除与该版本不匹配的Linux内核即可。您应该在某处记下它,以确保不会意外删除它。
接下来,要删除它,您可以使用终端或GUI。
警告!
删除内核时要格外小心。仅识别和删除旧内核,而不是当前使用的内核,否则您的系统将损坏。
您可以使用Synaptic软件包管理器或Stacer之类的工具开始使用。就个人而言,当我遇到一个完整的/ boot分区且apt损坏时,我使用Stacer摆脱了较旧的内核。所以,让我向您展示一下。https://fdbe3af2b5f90e9ca80c9c343780675d.safeframe.googlesyndication.com/safeframe/1-0-37/html/container.html?upapi=true
首先,您需要启动“ Stacer ”,然后导航到软件包卸载程序,如下面的屏幕快照所示。
在这里,搜索“ image ”,您将找到您拥有的Linux内核的图像。您只需要删除旧的内核版本,而不是当前的内核映像即可。
在上面的屏幕快照中,我已经指出了当前的内核和旧的内核,因此您必须小心系统上的内核版本。
您不必删除其他任何内容,而只需删除较旧的内核版本。
同样,只需在软件包列表中搜索“ header ”,然后删除旧的标题,如下所示。
只是警告您,您不想删除“ linux-headers-generic”。只关注那些带有版本号的版本。
就是这样,您将完成操作,并且apt将再次工作,并且您已经成功从/ boot分区中释放了一些空间。同样,您可以使用其他任何熟悉的软件包管理器来执行此操作。
这是同一件事,只是使用终端。因此,如果您没有使用GUI的选项(如果它是远程计算机/服务器),或者您只是对终端感到满意,则可以按照以下步骤操作。
首先,使用以下命令列出所有已安装的内核:
ls -l /boot
它看起来应该像这样:
提到的“旧”或与当前内核版本不匹配的是可以删除的未使用的内核。
现在,您可以使用rm命令,使用以下命令(从单个命令中删除每个内核)从引导分区中删除特定内核:
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
而已。你完成了。您已经释放了空间,并且还可能解决了损坏的APT,如果在/ boot分区填满后出现问题的话。
在某些情况下,您可能需要输入以下命令来修复损坏的apt(如我在论坛中所注意到的):
sudo dpkg --configure -a
sudo apt install -f
请注意,除非发现APT损坏,否则无需输入上述命令。就个人而言,我不需要这些命令,但我在论坛上找到了它们非常方便。