如何释放Ubuntu中`/boot`分区的空间

不久前,我收到了一个警告,提示我的/boot分区几乎已满或没有剩余空间了。是的,我使用的是一个独立的/boot分区,这在如今并不常见,但我相信它在某些情况下仍然非常有用。

这是我第一次遇到这样的错误,让我感到困惑。虽然在Ubuntu(或基于Ubuntu的发行版)上有多种方法可以释放空间,但并不是所有方法都在这种情况下有用。

因此,我决定编写这篇文章,介绍我采取的步骤来释放/boot分区中的一些空间。

方法一:使用apt autoremove

你不必是一个终端专家来执行这个操作,只需一个命令,你就可以删除未使用的内核,以释放/boot分区中的空间。

你只需输入以下命令:

sudo apt autoremove

这不仅会删除未使用的内核,还会清理掉你不需要的依赖项,或者那些没有被任何已安装工具所需要的依赖项。

一旦你输入这个命令,它会列出将要被删除的内容,然后你只需要确认操作。如果你感到好奇,你可以仔细查看它删除了什么。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-5.4.0-81 linux-headers-5.4.0-81-generic linux-image-5.4.0-81-generic linux-modules-5.4.0-81-generic linux-modules-extra-5.4.0-81-generic
0 upgraded, 0 newly installed, 5 to remove and 29 not upgraded.
After this operation, 470 MB disk space will be freed.
Do you want to continue? [Y/n]

你需要按下Y来继续。

需要注意的是,这个方法只在你的/boot分区仍有一点空间并出现警告时才有效。但如果你的/boot分区已满,APT甚至可能无法工作。

在下一个方法中,我将介绍两种不同的方法,通过这两种方法,你可以使用图形界面和终端来删除旧的内核以释放空间。

方法二:手动删除未使用的内核(如果apt autoremove不起作用)

在尝试删除旧内核以释放空间之前,你需要确定当前正在使用的内核,并确保你不删除它。

要检查你的内核版本,可以在终端中输入以下命令:

uname -r

uname命令通常用于获取Linux系统的信息。在这里,这个命令会显示当前正在使用的Linux内核版本。它应该看起来像这样:

5.4.0-81-generic

现在,你知道了你当前使用的Linux内核是什么,你只需要删除与这个版本不匹配的内核。你应该把它记下来,以确保你不会意外删除它。

使用图形界面工具删除旧的Linux内核

你可以使用Synaptic Package Manager或类似的工具(如Stacer)来开始。个人而言,当我遇到/boot分区已满且APT无法正常工作时,我使用了Stacer来删除旧的内核。让我展示你Stacer的使用方法。

首先,你需要启动“Stacer”,然后在界面中导航到软件包卸载器,如下面的截图所示。

stacer

在这里,搜索“image”,你将找到Linux内核的镜像文件。你只需删除旧的内核版本,而不是你当前正在使用的内核镜像。

linux-image-5.4.0-80-generic
linux-image-5.4.0-81-generic

我在上面的截图中标出了我当前使用的内核和旧的内核版本,因此你必须对你系统上的内核版本要小心。

你不需要删除其他任何东西,只需删除那些旧的内核版本。

同样,只需在软件包列表中搜索“headers”,并删除旧的版本,如下所示。

linux-headers-5.4.0-80-generic
linux-headers-5.4.0-81-generic

警告:不要删除“linux-headers-generic”。只关注带有版本号的那些。

这样,你就完成了,APT将恢复工作,你已成功释放了/boot分区的一些空间。同样,你可以使用任何你熟悉的其他软件包管理器来执行此操作。

使用命令行删除旧的内核

这与使用图形界面相同,只是使用终端而已。因此,如果你无法使用图形界面(例如,如果是远程机器/服务器)或者你更喜欢使用终端,你可以按照以下步骤操作。

首先,使用以下命令列出所有已安装的内核。

ls -l /boot

它应该看起来像这样:

total 285380
-rw-r--r-- 1 root root  24838092 Jul 19  2021 config-5.4.0-77-generic
-rw-r--r-- 1 root root  24838092 Oct  7  2021 config-5.4.0-88-generic
-rw-r--r-- 1 root root  24838092 Jan 20 13:16 config-5.4.0-91-generic
-rw-r--r-- 1 root root      3181 Mar  1  2021 grub.cfg
-rw-r--r-- 1 root root  19604448 Jul 19  2021 initrd.img-5.4.0-77-generic
-rw-r--r-- 1 root root  19604448 Oct  7  2021 initrd.img-5.4.0-88-generic
-rw-r--r-- 1 root root  19604448 Jan 20 13:17 initrd.img-5.4.0-91-generic
-rw-r--r-- 1 root root   1827048 Mar  1  2021 memtest86+_multiboot.bin
-rw-r--r-- 1 root root   1839672 Mar  1  2021 memtest86+.elf
-rw-r--r-- 1 root root   1843712 Mar  1  2021 memtest86+_lpia.bin
-rw-r--r-- 1 root root      2058 Jul 19  2021 System.map-5.4.0-77-generic
-rw-r--r-- 1 root root      2058 Oct  7  2021 System.map-5.4.0-88-generic
-rw-r--r-- 1 root root      2058 Jan 20 13:16 System.map-5.4.0-91-generic
-rw-r--r-- 1 root root  67297200 Jul 19  2021 vmlinuz-5.4.0-77-generic
-rw-r--r-- 1 root root  67297200 Oct  7  2021 vmlinuz-5.4.0-88-generic
-rw-r--r-- 1 root root  67297200 Jan 20 13:17 vmlinuz-5.4.0-91-generic

标记为“old”的或与当前内核版本不匹配的内核就是你可以删除的未使用内核。

现在,你可以使用rm命令从/boot分区中删除特定的内核,使用以下命令中的每一个(每个命令删除一个内核):

sudo rm /boot/vmlinuz-5.4.0-77-generic

确保检查你系统的版本 - 它可能与你的系统不同。

如果你有很多未使用的内核,这将需要一些时间。因此,你也可以使用以下命令一次性删除多个内核:

sudo rm /boot/*-5.4.0-{77}-*

需要澄清的是,你需要将内核版本的最后部分/代码用逗号分隔,以一次性删除它们。

例如,如果我有两个旧的内核版本5.4.0-77-generic和5.4.0-88-generic,那么命令将是:

sudo rm /boot/*-5.4.0-{77,88}-*

如果你不想在grub启动菜单中看到旧的内核版本,你可以使用以下命令简单地更新grub:

sudo update-grub

就这样。你完成了。你已经释放了空间,如果你的/boot分区已满并导致APT出现问题,你也可能已经修复了它。

在某些情况下,你可能需要输入以下命令来修复损坏的apt(我在论坛上注意到有些人这样做):

sudo dpkg --configure -a
sudo apt install -f

请注意,除非你发现APT出现问题,否则不需要输入上述命令。个人而言,我没有需要这些命令,但我发现它们对一些人在论坛上很有用。

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:如何释放Ubuntu中`/boot`分区的空间

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年10月28日
下一篇 2023年10月28日

相关推荐

  • 如何在Ubuntu上安装MySQL

    有一天,你突然意识到你需要在你的Ubuntu系统上安装MySQL数据库。也许你是一名开发人员,需要一个强大的数据库管理系统来存储和管理数据。也许你是一名系统管理员,需要为你的服务器配置一个可靠的数据库。无论是哪…

    2023年11月2日
    00
  • 如何正确发音和读写Ubuntu

    嗨,大家好!你是否曾经被Ubuntu这个操作系统的名称搞得困惑不已,不知道应该如何正确发音和读写它?或者你已经使用Ubuntu很长时间,但依然对这个问题感到困惑?不用担心,今天我将带你解开这个谜题,让你彻底明白…

    2023年10月26日
    00
  • 如何在Ubuntu上离线安装和处理.deb软件包

    有一天,当我需要在我的Ubuntu系统上安装一个新的软件包时,我遇到了一个挑战:我无法连接到互联网。这时我明白了,在某些情况下,离线安装.deb软件包可能是唯一的选择。在本文中,我将分享如何在Ubuntu上离线安装.…

    2023年10月13日
    00
  • 如何在Ubuntu终端中进行高效搜索

    大家好!你是否曾经遇到在Ubuntu终端中需要查找文件、目录或命令的情况?或许你正在寻找一个更加高效的方式来进行这些任务?在本教程中,我们将深入探讨如何在Ubuntu终端中执行各种搜索操作,以便更快地找到你需要…

    2023年10月26日
    00
  • Debian vs. Ubuntu:Linux发行版之争

    Linux作为一种免费开源的操作系统,有着众多不同的发行版,每个发行版都有其独特的特点和适用场景。在本文中,我们将深入探讨两个备受欢迎的Linux发行版:Debian和Ubuntu。我们将比较它们的特点、优势以及适用的用…

    2023年9月7日
    00
  • 解析Ubuntu中/etc/gai.conf开启IPv4的原因

    你是否曾经在使用Ubuntu操作系统时,遇到需要手动开启IPv4的情况?或许你对/etc/gai.conf文件有些疑惑,不知道它的作用以及为什么要在其中进行配置。本文将深入探讨这个话题,为你解开Ubuntu中/etc/gai.conf开启IPv…

    2023年10月27日
    00
  • Debian 和 Ubuntu:有什么不同?应该选择哪一个?

    在广袤的Linux世界中,有各种各样的发行版供我们选择。其中,Debian和Ubuntu都是备受欢迎的Linux发行版,它们在许多方面相似,但也有着明显的差异。作为一名热爱技术的王大神,他不禁思考:在Debian和Ubuntu之间,…

    2022年1月24日
    00
  • Mojo安装教程:适用于Intel Mac、M1 Mac和Ubuntu

    大家好,我是王大神。今天,我将为你提供一篇关于安装Mojo的详细教程。Mojo是一门新兴的编程语言,被誉为Python的升级版,由Swift的创始人Chris Lattner开发。本教程将覆盖Intel Mac、M1 Mac和Ubuntu的安装步骤,同…

    2023年10月21日
    00
  • 探索Ubuntu系统:从安装到中文设置的完全指南

    故事时间:曾经有一位朋友向我提出了一个问题:“Ubuntu是什么?怎么安装它?我如何将它设置成中文?还有,怎么关机?”这让我想起了自己刚开始使用Ubuntu系统时的困惑。因此,今天我将与大家分享一个完整的Ubuntu系…

    2023年10月15日
    00
  • Ubuntu Zerotier自启动安装教程

    在使用Ubuntu操作系统时,有时我们需要在系统启动时自动运行特定的应用程序或服务。本教程将向您介绍如何在Ubuntu上安装Zerotier,并配置它在系统启动时自动运行。Zerotier是一款用于创建虚拟局域网络的工具,它可…

    2023年12月14日
    00