成长不烦恼 發表於 2023-8-28 00:00:00

如何在Ubuntu Linux上释放/boot分区的空间?

<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/c3c4333f753945258f1613db90740a60.jpg"></p>
<p>
        前几天,我收到一个警告,<code>/boot</code> 分区已经几乎满了,没有剩余空间了。是的,我有一个独立的 <code>/boot</code> 分区,我相信现在很少有人这样做了。(LCTT 译注:个人认为保留单独的 /boot 分区是个好的运维经验,除此以外,/tmp、/var 也单独划定分区比较好。)</p>
<p>
        这是我第一次看到这样一个错误,它让我很迷惑。现在,这里有一些 方法来释放在 Ubuntu (或基于 Ubuntu 的分区)上的分区 ,但是在这种情况下并不是所有的方法都能用。</p>
<p>
        这就是为什么我决定写这些我释放 <code>/boot</code> 分区空间的步骤的原因。</p>
<p class="mume-header" id="%E5%A6%82%E4%BD%95%E5%9C%A8-ubuntu-%E4%B8%8A%E9%87%8A%E6%94%BE-boot-%E5%88%86%E5%8C%BA%E7%9A%84%E7%A9%BA%E9%97%B4">
        <strong>如何在 Ubuntu 上释放 /boot 分区的空间</strong></p>
<p>
        我建议你仔细阅读这些解决方案,并由此得出最适合你情况的解决方案。解决方案的操作很容易,但是你需要在你的生产力系统上小心的执行这些解决方案。</p>
<p class="mume-header" id="%E6%96%B9%E6%B3%95-1-%E4%BD%BF%E7%94%A8-apt-autoremove">
        <strong>方法 1: 使用 apt autoremove</strong></p>
<p>
        你不必是一名终端专家来做这件事,它只需要一个命令,你将移除未使用的内核来释放 <code>/boot</code> 分区中是空间。</p>
<p>
        你所有要做的事情是,输入:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> apt autoremove</span></code></p>
</blockquote>
<p>
        这个命令不仅仅可以移除未使用的内核,而且也将移除你不需要的或工具安装后所不需要的依赖项。</p>
<p>
        在你输入命令后,它将列出将被移除的东西,你只需要确认操作即可。如果你很好奇它将移除什么,你可以仔细检查一下看看它实际移除了什么。</p>
<p>
        这里是它应该看起来的样子:</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/d509e918a01b816897e2c20ba252acd0.jpg"></p>
<p>
        你必须按 <code>Y</code> 按键来继续。</p>
<p>
        <strong>值得注意的是,这种方法只在你还剩余一点点空间,并且得到警告的情况下才有效。但是,如果你的 <code>/boot</code> 分区已经满了,APT 甚至可能不会工作。</strong></p>
<p>
        在接下来的方法中,我将重点介绍两种不同的方法,通过这些方法你可以使用 GUI 和终端来移除旧内核来释放空间。</p>
<p class="mume-header" id="%E6%96%B9%E6%B3%95-2-%E6%89%8B%E5%8A%A8%E7%A7%BB%E9%99%A4%E6%9C%AA%E4%BD%BF%E7%94%A8%E7%9A%84%E5%86%85%E6%A0%B8">
        <strong>方法 2: 手动移除未使用的内核</strong></p>
<p>
        在你尝试 移除一些旧内核 来释放空间前,你需要识别当前活动的内核,并且确保你不会删除它。</p>
<p>
        为 检查你的内核的版本 ,在终端中输入下面的命令:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">uname</span><span class="pln"> </span><span class="pun">-</span><span class="pln">r</span></code></p>
</blockquote>
<p>
        uname 命令通常用于获取 Linux 系统信息。在这里,这个命令显示当前正在被使用的 Linux 内核。它看起来应该是这样:</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/423a72d1fcaf6b5677c5850bd68337b4.jpg"></p>
<p>
        现在,你已经知道你当前的 Linux 内核是什么,你必须移除一个不同于这个版本的内核。你应该把它记录在某些地方,以便你不会不知不觉地移除它。</p>
<p>
        接下来,要移除它,你可以使用终端或 GUI。</p>
<blockquote>
        <p>
                警告!</p>
        <p>
                在删除内核时一定要额外的小心。只识别和删除旧内核,而不是当前你正在使用的内核,否则你将会拥有一个残缺的系统。</p>
</blockquote>
<p class="mume-header" id="%E4%BD%BF%E7%94%A8%E4%B8%80%E4%B8%AA-gui-%E5%B7%A5%E5%85%B7%E6%9D%A5%E7%A7%BB%E9%99%A4%E6%97%A7%E7%9A%84-linux-%E5%86%85%E6%A0%B8">
        <strong>使用一个 GUI 工具来移除旧的 Linux 内核</strong></p>
<p>
        你可以使用 Synaptic 软件包管理器 或一个类似 Stacer 的工具来开始。就我个人而言,当我遇到一个满满的 <code>/boot</code> 分区且 APT 损坏时,我使用 Stacer 来丢弃旧内核。因此,让我向你展示一下它看起的样子。</p>
<p>
        首先,你需要启动 Stacer ,然后导航到软件包卸载器,如下面屏幕截图所示。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/62541b5d5a939c038f7414349efa2c02.jpg"></p>
<p>
        在这里,搜索 “image” ,你将找到你所拥有的 Linux 内核。你只需要删除旧内核版本的镜像,而不是当前内核的镜像。</p>
<p>
        在上面的屏幕截图中,我已经指出了我系统上的当前内核和旧内核,因此你必须注意你系统上的内核。</p>
<p>
        你没有必要删除任何其它东西,只需要删除旧的内核版本。</p>
<p>
        同样的,只需要在软件包列表中搜索 “headers” ,并删除如下显示的旧的 “headers” 版本。</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/45810c757440356e44a0fb88f55e1a19.jpg"></p>
<p>
        作为提醒,你 <strong>不会希望移除 <code>linux-headers-generic</code></strong> 。只关注一下那些与其相关的有版本号的就行。</p>
<p>
        然后,就这样,你完成了所有的工作,APT 将会再次工作,并且你将成功地释放来自 <code>/boot</code> 分区的一些空间。同样地,你也可以使用任意其它的软件包管理器来完成这些工作。</p>
<h4 class="mume-header" id="%E4%BD%BF%E7%94%A8%E5%91%BD%E4%BB%A4%E8%A1%8C%E6%9D%A5%E7%A7%BB%E9%99%A4%E6%97%A7%E5%86%85%E6%A0%B8">
        使用命令行来移除旧内核</h4>
<p>
        使用命令行来移除旧内核与使用 GUI 来移除旧内核是一样的。因此,如果你没有选择使用 GUI 软件(如果它是一台远程机器/一项远程服务)的权利,或者如果你只是对终端情有独钟,你可以仿效下面的步骤。</p>
<p>
        首先,使用下面的命令列出所有已安装的内核:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">ls</span><span class="pln"> </span><span class="pun">-</span><span class="pln">l </span><span class="pun">/</span><span class="pln">boot</span></code></p>
</blockquote>
<p>
        它应该看起来像这样:</p>
<p>
        <img style="max-width:100%!important;height:auto!important;"title="如何在Ubuntu Linux上释放/boot分区的空间?" alt="如何在Ubuntu Linux上释放/boot分区的空间?" src="https://zhuji.jb51.net/uploads/img/202305/1fa25b020e983e55c0c07d55b0562d70.jpg"></p>
<p>
        标记为 “old” 的内核,或者不匹配你当前内核版本,都是未使用的内核,你可以删除它们。</p>
<p>
        现在,你可以使用 <code>rm</code> 命令来移除具体指定来自 <code>/boot</code> 分区中的内核,使用下面的命令(一个命令对应一个内核):</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> </span><span class="kwd">rm</span><span class="pln"> </span><span class="pun">/</span><span class="pln">boot</span><span class="pun">/</span><span class="pln">vmlinuz</span><span class="pun">-</span><span class="lit">5.4</span><span class="pun">.</span><span class="lit">0</span><span class="pun">-</span><span class="lit">7634</span><span class="pun">-</span><span class="kwd">generic</span></code></p>
</blockquote>
<p>
        务必检查系统的版本 — 这里可能与你的系统的版本不同。</p>
<p>
        如果你有很多未使用的内核,这将需要一些时间。因此,你也可以下面的命令丢弃多个内核:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> </span><span class="kwd">rm</span><span class="pln"> </span><span class="pun">/</span><span class="pln">boot</span><span class="com">/*-5.4.0-{7634}-*</span></code></p>
</blockquote>
<p>
        为了清晰起见,你需要用逗号分隔内核版本号的最后一部分/编码,以便同时删除它们。</p>
<p>
        假设,我有两个旧的内核 5.4.0-7634-generic 和 5.4.0-7624 ,那么命令将是:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> </span><span class="kwd">rm</span><span class="pln"> </span><span class="pun">/</span><span class="pln">boot</span><span class="com">/*-5.4.0-{7634,7624}-*</span></code></p>
</blockquote>
<p>
        如果你不希望在 grub 启动菜单中再看到这些旧的内核版本,你可以使用下面的命令简单地 更新 grub:</p>
<blockquote>
        <p class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> update</span><span class="pun">-</span><span class="pln">grub</span></code></p>
</blockquote>
<p>
        就这样,你完成了所有的工作。你已经释放了空间,还修复了可能潜在的破损的 APT 问题,如果它是一个在你的 <code>/boot</code> 分区填满后出现的重要的问题的话。</p>
<p>
        在一些情况下,你需要输入这些命令来修复破损的(正如我在论坛中注意到的):</p>
<ol class="linenums">
<li class="L0">
                <code><span class="kwd">sudo</span><span class="pln"> dpkg </span><span class="pun">--</span><span class="pln">configure </span><span class="pun">-</span><span class="pln">a</span></code>
</li>
        <li class="L1">
                <code><span class="kwd">sudo</span><span class="pln"> apt install </span><span class="pun">-</span><span class="pln">f</span></code>
</li>
</ol>
<p>
        注意,除非你发现 APT 已破损,否则你不需要输入上面的命令。就我个人而言,我不需要这些命令,但是我发现这些命令对论坛上的一些人很有用。</p>
頁: [1]
查看完整版本: 如何在Ubuntu Linux上释放/boot分区的空间?