如何使用 UEFI 调整根分区大小

如何使用 UEFI 调整根分区大小

昨天,我在 /opt 下复制了一个新软件后,Debian 中弹出一条消息,说我的根分区已满(0 MB 可用)。因此,我将文件夹移回另一个分区以暂时解决该问题。

我使用 Debian 安装 USB 从 /dev/nvme0n1p9 释放了一些空间,现在尝试使用此释放的空间扩展根分区。

磁盘分区

我的 HP 笔记本电脑的 BIOS 没有“传统”启动选项,因此我无法使用可启动的 GParted USB 记忆棒来增加根分区的大小。

我搜索了一下,看来扩展根分区很棘手。

我想确认几件事:

  • 扩展根分区是否意味着将位于此之后的分区进一步推到磁盘上,或者我可以使用磁盘末尾的未分配空间并将根分区一分为二吗?
  • 我可以随意移动这些分区而不产生任何后果吗?
  • 就我而言,如果可能的话,您将如何解决这个问题?
  • 如果不是,我是否注定要重新安装操作系统?
  • 我可以通过在此根分区之外安装新应用程序来绕过此限制吗?

操作系统:GNU/Linux Debian 11(靶心)

谢谢。

  • 编辑 - 根分区使用情况的详细信息

根据 @oldfred 的评论,这里是根分区的最大文件夹。

最大的用途是 texlive,但如果可能的话,我不想卸载它。

根分区使用情况

答案1

  • 扩展根分区是否意味着将位于此之后的分区进一步推到磁盘上,或者我可以使用磁盘末尾的未分配空间并将根分区一分为二吗?

是的,就是这个意思。分区从头到尾必须始终是连续的。 LVM 逻辑卷可以使用多个不连续的磁盘块,但将现有系统转换为 LVM 并非易事。

  • 我可以随意移动这些分区而不产生任何后果吗?

如果您/etc/fstab被写入使用分区 UUID 而不是其设备名称,或者如果gparted不会重新排列表中的条目以匹配它们在磁盘上的顺序,那么可以。

  • 就我而言,如果可能的话,您将如何解决这个问题?

(正如你最终所做的那样,正如我写这篇文章时你自己的答案出现的那样。)

首先,将位于您想要扩展的分区“右侧”的所有分区尽可能向右移动。

之后,启动到已安装的操作系统以验证一切是否仍然有效。

然后引导回外部介质以扩展根分区。

  • 如果不是,我是否注定要重新安装操作系统?

根本就没有注定。只需要一点点缓慢而仔细的工作即可。

  • 我可以通过在此根分区之外安装新应用程序来绕过此限制吗?

这当然是绕过它的一种方法,但对于通过操作系统的包管理器安装的程序来说可能很难实现。对于第三方软件来说,这实际上可能很容易。

另一种可能的方法是在根文件系统上找到目录树的某个分支,该分支占用相当大的空间,但对于早期启动过程不是必需的,并将其移动到另一个文件系统,然后创建一个符号链接,以便它仍然可以使用原始路径名访问。例如,您可以轻松移动/usr/share/doc到不同的文件系统:

mv /usr/share/doc /new/filesystem/mountpoint/
ln -s /new/filesystem/mountpoint/doc /usr/doc

但是,您拥有的文件系统越多,您所需要的文件系统中没有可用空间的风险就越大。这就是为什么如果分区对于您的要求来说显然太小,那么扩展分区可能是值得的。

答案2

我尝试使用 Ubuntu Live CD 上的 GParted,它按预期工作。

我分两步完成:

  • 首先,使用未分配的空间将所有非根分区移动到右侧
  • 然后,扩展根分区

我在第一步后重新启动,确保一切仍然正常,并且知道可以逆转第一步。

相关内容