如何改进 Linux 文件系统的当前硬盘分区?

如何改进 Linux 文件系统的当前硬盘分区?

我已经有这些问题很长时间了,所以我希望这篇文章不会被关闭。

gparted显示我的硬盘上的当前分区:

在此输入图像描述

两年前我对硬盘进行分区时,

  • 我不知道如何调整分区大小。我仍然不这样做(尝试是危险的,而且我没有另一个外部硬盘驱动器用于备份,而且我不想冒分区上文件丢失的风险)并且想知道你是否可以提供一些具体的命令(例如,在回答以下问题时 使用parted和 (可选)。gparted

  • 我不知道如何设计分区,使其大小可以灵活改变。所以我想知道您是否可以建议如何改进分区?

问题:

  • parted无论使用哪种工具(或不使用),我们只能通过更改分区的末尾而不是其开头来调整分区大小,这是正确的吗?

    是否可以合并两个分区,而无需先删除它们并创建新分区,无论parted使用哪种工具(或不使用)?

  • 是否有推荐的分区已用大小与总大小的比率/?具体来说,对于/分区(/dev/sda3)来说,其使用大小在过去两年内没有发生太大变化,目前仅为 21GiB。如果我可以从头开始重新分区,您建议我指定多少大小作为分区的总大小 /

    是否有推荐的分区已用大小与总大小的比率/home

  • /如何将分区 ( /dev/sda3)中大部分未使用的空间移动到/home分区 ( /dev/sda4) 中?

  • 我不记得为什么我在原处留下了 93GiB 的未分配空间。我想我想允许两个/home分区/从未分配的空间中获取更多空间(如果它们中的任何一个需要的话)。

    是否可以将未分配的空间添加到/home分区 ( /dev/sda4) 以及如何添加?

    是否可以将未分配的空间添加到/分区 ( /dev/sda3) 以及如何添加? (我真的不需要这样做,只是作为一个例子来启发我哪些分区可以调整大小以及如何调整)

谢谢。

答案1

我建议您调整根/分区的大小,然后在 中创建一个挂载点~/,我会使用该Downloads文件夹,因为它是不稳定的并且通常很大。

然后设置 fstab 来挂载由“释放”空间创建的新分区~/Downloads

将当前内容移动Downloads到新分区

重新启动系统

答案2

我将尽我所知尽力回答您的问题。不过我只知道 GParted 的用法。

在进行任何重新分区之前,请备份您的数据。

请使用可启动的 GParted 发行版或同等版本来执行此操作,因为您需要在继续之前卸载分区。

答案:

无论使用哪种工具(parted 或不使用),我们只能通过更改分区的末尾而不是其开头来调整分区大小,这是正确的吗?

如果分区左侧和右侧都有未分配的空间,您可以使用 GParted 在两个方向上调整大小。

GParted 演示动画

是否可以合并两个分区,而无需先删除它们并创建一个新分区,无论使用哪种工具(已分离或未分离)?

AFAIK,您必须至少删除一个分区,然后合并到另一个分区。

/ 分区的已使用大小与总大小之间是否有建议的比率?具体来说,对于/分区(/dev/sda3)来说,其使用大小在过去的两年里没有发生太大的变化,现在只有21GiB。如果我可以从头开始重新分区,您建议我指定多少大小作为 / 分区的总大小?

您观察到 / 分区的使用大小通常不会随着时间的推移而发生太大变化,这是正确的。然而,不可能有一个推荐可以满足每个人的需要。

在安装所有程序后,需要查看操作系统使用的最大大小,然后添加一些缓冲区以满足将来的需要(例如,50GB 以上),然后进行相应的分区。

/home 分区的已使用大小与总大小之间是否有建议的比率?

再说一次,每个人都有自己的。我个人保留一个 / 并交换,并将其余空间留给家。我的原因是可以使用文件夹来组织数据,而不是将磁盘分成多个分区。

如何将/分区(/dev/sda3)中大部分未使用的空间移动到/home分区(/dev/sda4)?

这里要非常小心。调整 / 分区的大小可能(将会?)导致您的系统无法启动。我认为如果您想调整 / 的大小,请准备好完全安装操作系统。

我不记得为什么我在原处留下了 93GiB 的未分配空间。我想我想允许 /home 和 / 分区从未分配的空间中获取更多空间(如果它们中的任何一个需要的话)。

安全地,您应该能够将其与 /home 分区合并(卸载 /home 后)。目前不可能与 / 合并,因为它们彼此不相邻。

是否可以将未分配的空间添加到 /home 分区 (/dev/sda4) 以及如何添加?

是的。往上看。

答案3

无论使用哪种工具(parted 或不使用),我们只能通过更改分区的末尾而不是其开头来调整分区大小,这是正确的吗?

文件系统通常期望底层存储是连续可寻址的,即当操作系统说特定磁盘/分区/LVM逻辑卷/任何容器的大小为X块时,文件系统假设第一个块是#0,最后一个块是#0。 #(X-1) 并且中间没有不可用的孔。因此,安装的文件系统只能通过在末尾添加更多块来真正增长,并通过从末尾切掉一些块来缩小。

对于未挂载的文件系统,您可以执行的操作量仅受限于您(或您的实用程序)对正在修改的文件系统的结构的理解程度,以及结果必须再次看起来像有效文件系统的要求。你完成了。

对于大多数分区管理实用程序,移动分区的开头涉及将整个分区作为一个块移动到新的起点,然后根据需要在尾部调整大小。一个真正聪明的实用程序可能能够移动一些文件,为必要的元数据结构腾出空间,然后在与分区新开始相对应的位置重建文件系统元数据,而无需移动全部块,但这样的操作风险极大,如果中断,可能会导致无可救药的文件系统损坏。

是否可以合并两个分区,而无需先删除它们并创建一个新分区,无论使用哪种工具(已分离或未分离)?

这取决于所涉及的文件系统,但通常不是;标准方法是将数据较少的分区内的文件移动到另一个分区,然后删除现在为空的分区并使用释放的空间来扩展另一个分区。如果没有足够的可用空间来一次完成这一任务,事情就会变得棘手。

/ 分区的已使用大小与总大小之间是否有建议的比率?具体来说,对于/分区(/dev/sda3)来说,其使用大小在过去的两年里没有发生太大的变化,现在只有21GiB。如果我可以从头开始重新分区,您建议我指定多少大小作为 / 分区的总大小?

由于您两年多的经验表明没有太大变化,因此我的目标是使用率在 33% .. 66% 之间,因此总大小在 40 .. 60 GiB 之间,以便为升级、软件安装留出足够的空间等等。话又说回来,我对 Linux LVM 非常熟悉,所以我更喜欢使用它,因为它比传统分区提供了更多的灵活性。 (当然,有一个学习曲线。)

/home 分区的已使用大小与总大小之间是否有建议的比率?

这在很大程度上取决于您处理的文件类型:如果您编辑 HD/4k 视频,您将拥有一个巨大的免费项目工作空间。就文件系统而言,我听说大多数文件系统在使用率低于 80% 时效果最佳。

如何将 / 分区(/dev/sda3)中大部分未使用的空间移动到 /home 分区(/dev/sda4)?

这将是一个多步骤的操作,并且您必须至少在第二步中卸载文件系统,因此您必须从 Live CD 或其他可移动媒体启动才能执行此操作。

步骤 1.) 将 /dev/sda3 缩小到所需的大小。 (gparted也许可以在安装文件系统时执行此操作。) 步骤 2.) 将现在较小的/dev/sda3“向右”移动。这肯定需要卸载文件系统,并且由于它是您的根文件系统,因此需要备用启动介质。步骤 3.) 将 /dev/sda4 扩展到现在已释放的空间。

我不记得为什么我在原处留下了 93GiB 的未分配空间。我想我想允许 /home 和 / 分区从未分配的空间中获取更多空间(如果它们中的任何一个需要的话)。

您可以卸载您的/home,然后将gparted其“向左”移动,以便未分配的空间位于sda4和之间sda3。扩展sda3仍然是“从可移动介质启动,sda3向左移动必要的量,然后扩展其尾端”操作。

如果您使用了 LVM 会怎样?

那么您很可能会设置一个卷组,其中仅包含一个 LVM PV 来代替sda3sda4,并且其中包含两个 LVM LV。您可以在可用空间范围内调整它们的大小。由于调整大小操作,磁盘上的 LV 在 PV 内可能不完全连续,但只要您不过度调整 LV 大小,就会出现少量不连续性。没问题在实践中。 (您可能有原来的分配/home,然后是根文件系统,然后是另一部分,/home因为您发现需要更多空间。文件系统驱动程序将在 LV 中看到连续范围的块;逻辑卷管理器将处理这一事实物理上你的根文件系统位于中间的某个位置。)

假设当前未分配的空间最初被其他空间使用,您现在可以从中创建另一个分区,使其成为 LVM PV,然后将该 PV 添加到现有卷组中。然后您可以使用它来扩展任何现有的 LV,或者根据需要创建新的 LV。

当需要将数据从老化磁盘移动到新磁盘时,您只需使用启动所需的任何分区 + 最好只使用一个大的 LVM PV 来对新磁盘进行分区。然后将该 PV 添加到现有卷组,然后您就可以通过操作将数据移动到新磁盘pvmove所有这些都是在您的操作系统运行时进行的。(作为一个很好的副作用,如果pvmove有空间的话,在移动所有 LV 时会使它们在物理上连续 - 并且当将所有数据移动到新磁盘时,当然有空间。)

操作完成后pvmove,您只需将旧磁盘从卷组中删除,将引导加载程序重新安装到新磁盘上,然后就可以物理删除旧磁盘了。

使用 LVM,您将把数据视为一种粘性液体,您可以随意从一个光伏容器到另一个光伏容器。如果一个 PV 已满,只要两个 PV 属于同一卷组,那么抓住另一个 PV 来保存其余部分就没有问题。

相关内容