分区和 Linux

分区和 Linux

每个关于基于 Linux 的分区方案(或一般分区)的教程都会告诉您,一台 PC 可以有 4 个主分区,或 3 个主分区和 1 个扩展分区。它们还会告诉您 Linux(在我的情况下是 Ubuntu)可以安装在任一分区上。

我还注意到,FHS 目录(例如 usr/、tmp/、etc/、home/ 或 var/)被单独安装在其他分区上的情况并不太不典型。

有几个问题我无法找到答案,仅供我自己参考: (1)我说的“PC”是指常见的 PC 磁盘类型吗,比如 IDE 或 SATA?我想知道为什么 PC 的使用仅限于 4 个主磁盘或 3 个主磁盘 + 1 个扩展磁盘

(2)我对一些基本的操作系统概念感到困惑:据说分区可以由文件系统或操作系统挂载。所以我认为这意味着我可以以某种方式指示 Ubuntu 挂载到 1 个分区,然后将 ReiserFS 的任何部分挂载到另一个分区?怎么做?

(3)(一)那么创建交换分区怎么样?交换分区是不是有点太多了?如果我有 4GB RAM 和 320GB 磁盘,那么我的交换分区大小应该是多少?为什么? (3)(b)交换文件是创建交换分区的唯一方法吗?Linux 分区实用程序是否允许我将分区定义为仅用于虚拟内存?

(4)为什么分区仅限于由操作系统和文件系统“安装”?为什么我不能编写一个程序来占用自己的分区(例如 512 MB),然后让安装在其他分区上的操作系统调用或使用它?

谢谢你的启发……我了解这些事情并不重要,但它让我不断思考。当我不停地思考时,我……无法……入睡……

答案1

1)通常,您看到的“扩展”分区可以细分为多个(准确的数量我不清楚)扩展分区,这是最初解决 4 分区限制的解决方法,最终得到了所有人的支持。

2) 我不知道你的意思。分区只是硬盘的逻辑分段。将硬盘想象成文件柜,分区就是抽屉。除了这些抽屉,你可以在设置文件柜时根据需要调整大小,但你无法在不先清空所有内容的情况下重新排列它们。每个抽屉都可以以不同的方式格式化(组织),包括 EXT、RFS、XFS、NTFS 等。每个操作系统处理挂载点的方式不同,*nix 系统将它们作为普通文件路径处理。

3a) 是的,交换大小存在收益递减点。问 3 个极客,你会得到 3 个不同的答案。在大多数现代机器中,如果机器有大量 RAM,我通常不会做太多事情,只会匹配交换空间的内存量。如果机器的任务如此,并且规格不足,我可能会违反该规则并给它更多。如果机器的任务很轻,并且规格过高,我会给它更少。

3b) 交换文件 != 交换分区。交换分区是驱动器中经过特殊格式化的部分,其格式与操作系统格式化其内存空间的格式完全相同,因此可以干净地(更重要的是快速地)将内存从 RAM 移出并移至磁盘,反之亦然。这是长期以来 Linux 在许多方面胜过 Windows 的领域之一,因为 Windows 依靠交换/页面文件,其中必须将内存来回转换为页面文件,并用本机文件系统写入。这使得过程缓慢,但允许它们在虚拟内存使用方面更具动态性。

4)有些虚拟化系统正是这样做的(等待我正确理解您的建议)。

答案2

peelman 已经讲完了基础知识,我只想补充几点:

1)PC 指的是 1981 年的 IBM PC 标准。4 个分区的限制是主引导记录这是 IBM 在 1980 年选择的格式,并且一直沿用至今,因为“PC 兼容”是一个大问题。

但是单个“扩展分区”可以分成许多“逻辑分区”,因此在 Linux 中每个驱动器可以有四个以上的分区。

由于一项新标准,这一限制也即将取消GUID 分区表,这是用更现代的东西

3a)传统的建议是交换分区应该是 RAM 大小的两倍,请参阅Ubuntu 交换常见问题解答进行讨论。

答案3

    • 我们所说的“PC”实际上是在谈论常见的 PC 磁盘类型,例如 IDE 或 SATA 吗?

      他们的硬盘连接是不相关的除了驱动器的写入速度之外,其他任何因素都无关紧要。磁盘类型包括 CD、硬盘、闪存驱动器等。

    • 我想知道为什么 PC 使用仅限于 4 个主色或 3 个主色 + 1 个扩展色

      这是人类愚蠢时的遗留问题,当时人们认为 4 个分区是不可想象的。扩展分区只是一个包含分区的逻辑分区

  1. 我对一些基本的操作系统概念感到困惑:据说分区可以由文件系统或操作系统挂载。所以我认为这意味着我可以以某种方式指示 Ubuntu 挂载到 1 个分区,然后将 ReiserFS 的任何部分挂载到另一个分区?怎么做?

    不是。分区基本上是磁盘的一部分,在计算机看来是另一个磁盘(有点像将披萨切成两半 - 看起来是两个不同的切片,但实际上是同一片)。您可以挂载分区,也就是说,由于您正在使用它,所以您说其他系统不能使用它,并且该分区上有一个文件系统。

    让我们尝试一下文件柜隐喻。您有一个文件柜,它代表您的驱动器。您在里面设置了分隔符,将不同的部分分开。这些分区是驱动器上的分区。每个分区中都有悬挂文件夹和一些零散文件。没有文件系统的分区只是一张很长的纸。您将那张纸分成不同的部分,即文件,以及它们的组织器,即文件夹。这就是您的文件系统。让我们打开它。通过查看某个分区中的文件,您必须安装它,即打开文件柜,找到正确的部分,然后开始浏览它。

    • 那么创建交换分区怎么样?交换分区是不是有点太多了?如果我有 4GB RAM 和 320GB 磁盘,那么我的交换分区大小应该是多少?为什么?

      除了机会成本之外,交换分区实际上并没有什么好处。128GB 硬盘上的 64GB 交换分区对任何人都没有帮助。一般来说,他们说将 RAM 数量增加一倍是好的(这样,如果你休眠并且他们在磁盘上复制 RAM,你就有空间可以转储),但其他人说这太多了。我自己也这么说320GB 是一个巨大的您可以分配 8GB 的​​空间量

    • 交换文件是创建交换分区的唯一方法吗?Linux 分区实用程序是否允许我将分区定义为仅用于虚拟内存?

      不。任何像样的分区程序都可以选择将分区的文件系统设置为swap。Linux 按逻辑顺序(即按逻辑分区 #s)遍历驱动器以搜索交换并抓取它找到的第一个交换分区。任何交换分区都专用于虚拟内存。

  2. 为什么分区仅限于由操作系统和文件系统“安装”?为什么我不能编写一个程序来占用自己的分区(例如 512 MB),然后让安装在其他分区上的操作系统调用或使用它?

    它们不是。分区包含文件系统。如果你想编写这样的程序,这是可能的,但需要 root 权限,因为分区的危险程度与向 Linux 内核投放炸弹一样高。挂载后,它们将进入一个光荣的读写世界。

答案4

您收到的答案大多是好的。关于交换,有一点需要补充。如果您有多个硬盘(或 SSD)安装在不同的总线上,则在每个总线上放置交换分区可以通过将 I/O 请求分散到两个总线上来提高交换速度。将两个交换分区放在相同的磁盘没有速度优势,而且可能造成损失。

如果您很少交换,这不会产生太大的实际差异。

相关内容