在不同的分区上挂载各种目录的优缺点是什么?

Reg*_*ser 47 partitioning mount

在使用“其他”选项安装 Ubuntu 时,我发现有许多文件夹可以安装在不同的分区上,如下图所示。

许多文件夹可以安装在单独的分区上

那么将这些文件夹(或目录)安装在不同的分区上有什么优点和缺点?

具体目录是

  1. /boot
  2. /home
  3. /tmp
  4. /usr
  5. /var
  6. /srv
  7. /opt
  8. /usr/local

use*_*186 66

很久很久以前...

... 曾经有一段时间人们习惯于安装 Linux 并根据他们的特定需求手动配置它。其中一些甚至在今天对于服务器来说也是正确的。您在gparted其中看到的选择是一些流行的选择,与普通桌面用户(Ubuntu 桌面的目标受众)相比,这些用户的需求非常不同。

让我们一次拿这些。我会跳过那些我不太了解的。

  1. /boot曾几何时,Linux 文件系统很脆弱,硬盘也很小。人们担心硬盘驱动器会填满或损坏而 Ubuntu 无法启动。将内核保存在单独的分区中有助于系统在其他事情出错时启动。在那些日子里,Linux 用户过去常常编译自己的内核并清理旧内核。最近与 Ubuntu 16.04 LTS 一样软件更新程序应用程序安装了最新的内核更新,但没有删除旧内核。结果,一个小/boot分区被旧内核填满,系统停止启动,除非定期清理它。看看如果您有一个单独的/boot分区并且忘记定期清理会发生什么:如何在 /boot 中释放更多空间? 在 Ubuntu 18.04 LTS 中软件更新程序应用程序不仅可以使系统保持最新状态,还可以删除旧内核。它保留最后两个内核,以防最新内核出现问题并且需要恢复前一个内核。
  2. 另一方面,如果您想加密/分区(以保护您正在使用的秘密软件),您将需要一个单独的(未加密的)/boot分区。否则系统将无法启动。同样,如果您有 RAID 驱动器,则保留/boot在非 RAID 分区中可能会很有用。/boot由于这些和其他原因,许多人认为拥有一个单独的分区是一个非常好的主意。
  3. /home将家放在单独的分区中仍然有意义。此文件夹/分区包含您的个人文件,将其放在单独的分区中可以让您格式化/和重新安装 Ubuntu,同时保持您的文件不变。最新版本的 Ubuntu 安装软件包括从 DVD/USB 更新的选择。/home即使它不在单独的分区上,此选项也保持不变。如果带/分区的主驱动器空间不足。您可能想要添加一个新驱动器并在新驱动器中创建一个/home分区。
  4. /tmp是临时文件所在的位置。如果您运行的服务器会创建大型临时文件,它们可能会填满所有磁盘空间并导致您的服务器停止运行。将其保存在单独的分区中只会填满该分区,并且可能会停止创建大临时文件的进程,但不会停止系统的其余部分。有人告诉我,处理已填满的/tmp分区比处理分区下的临时文件夹更容易/
  5. /usr//opt/、 和/usr/local都是在不同条件下保存程序和应用程序的地方。如果您为 Linux 开发软件,将它们保存在单独的分区中可能是有意义的,这样如果您重新安装 Ubuntu,您就不会删除您编写或一直在使用的程序。
  6. 如果您从源代码(您自己的或其他地方)安装程序并希望在安装在同一台计算机上自己分区的另一个发行版(例如 Red Hat)中使用它们,则将/opt/和保持/usr/local在单独的分区中也是有意义的。然后两个发行版,Ubuntu 和 Red Hat 可以共享/opt/usr/local分区。(感谢 Rmano!)
  7. /srv并且/var,如果你运行的服务器或开发网页是作为单独的分区特别有用。对于普通桌面用户而言,这些文件夹不会占用太多空间,也不会保存对用户有价值的任何内容。对于 Web 开发人员而言,失去工作/var/www可能意味着失去工作。

可以肯定的是,这些并不是唯一可以作为分区挂载的目录。在 Linux 中,可以将分区挂载为任何位置的任何文件夹。分区通常安装为子目录/mnt//media

希望这可以帮助

  • +1,很好的答案。您还可以在 http://askubuntu.com/a/379212/16395 和 http://askubuntu.com/a/379019/16395 中查看我的看法 (2认同)
  • 没关系(虽然我这样做是为了让它们在完全重新安装后幸存下来 --- 较新的安装程序能够保存 `/home` 但不能保存 `/usr/local`。顺便说一句,“手动安装和裁缝”是 Arch Linux 的引理......所以仍然有(很多)人这样做。 (2认同)
  • 将 /boot 作为单独分区的历史原因是因为硬盘比 BIOS 可以处理的大,因此如果内核位于磁盘的不可访问部分,则无法加载它。通过将 /boot 分区首先放在磁盘上,可以确保 BIOS 始终可以访问内核,以便 Linux 可以启动。 (2认同)

Mir*_*ici 17

具有多个分区的一般优点:

  1. 您可以使用不同的磁盘/LUN 并获得更好的性能。这可以提高数据库的性能,因为您可以将事务日志放在一个存储上,而将数据文件放在另一个上。类似于磁盘 I/O 密集型 Web 应用程序。
  2. 您可以使用不同的挂载选项(以更精细的方式提高安全性或影响性能或稳定性)
  3. 你可以有不同的文件系统
  4. 您单独管理空间。所以你可以有一个讨厌的应用程序来填充不影响其他应用程序的空间。
  5. 一个分区的分片是独立于另一个分区的。
  6. 您可以独立地对这些文件系统的性能进行快照、挂载、卸载、格式化、碎片整理和监控。
  7. 您可以对特定卷进行加密。
  8. 您可以按需安装卷。
  9. 您可以查看每个块设备的 I/O 统计信息。

具有多个分区的一般缺点:

  1. 它增加了管理开销。
  2. 您将有更大的机会浪费更多的磁盘空间。
  3. 您将遇到更多涉及磁盘已满的事件。
  4. 为在不同卷上运行的应用程序创建一致的快照更加困难。
  5. 它使用更多的资源。
  6. 难以收缩。根据卷类型(MS-DOS 标签、LVM、btrfs...),您可能无法通过缩小另一个卷轻松地从一个卷分配空间。尤其是网上。
  7. 如果您进行分区以便可以使用 nodev、nosuid 和/或 noexec,则此设置可能过于受限,您可以使用 SELinux、grsecurity 或 AppArmor 获得更好的粒度,只需使用大 /。
  8. 如果您使用旧的分区工具,您可以获得“创造性”和未对齐分区与底层范围。一些磁盘阵列可以检测到这一点并进行补偿。
  9. 如果在 MS-DOS 磁盘标签上使用所有 4 个主分区,将很难创建新分区。

另一种对系统进行分区的方法是将 LVM、btrfs 或 zfs 用于 /。只为 / 分配最小空间,并在需要时创建逻辑卷或扩展 /。这让您可以选择在以后拆分卷并降低维护成本。

当你有一个新的磁盘卷(磁盘、磁盘阵列、SAN LUN)时,你可以使用不同的磁盘标签(一些可以混合在另一个之上)

  • MS-DOS 磁盘标签。它已被淘汰,但仍被很多机器支持
  • GPT。与 EFI/UEFI 一起使用,与 MS-DOS 磁盘标签类似,但去除了一些限制并增加了一些稳定性(备份、校验和)
  • LVM - 在 Linux 中使用,最新版本的 GRUB 可以引导位于 LVM 上的内核。大多数人在 MS-DOS 或 GPT 磁盘标签上使用它,但我更喜欢直接在卷上使用它。这给了我最好的灵活性。
  • 如果您想惹恼您的队友,可以使用其他磁盘标签(BSD、SUN、Windows 动态磁盘)。
  • ZFS,Btrfs?- 正在将文件系统与卷管理器集成
  • 使用您需要的文件系统直接格式化卷。没有磁盘标签,就像软盘一样。

现在具体的东西:

  • /boot 最好是一个单独的分区。文件系统必须是您的引导加载程序(通常是 GRUB)支持的文件系统。
  • 如果您使用 EFI/UEFI,则需要在 GPT 磁盘标签上具有 EFI 系统分区。
  • /home 可以很好地将用户内容与操作系统和应用程序分开。
  • /tmp 可以用 noexec、nodev、nosuid 挂载。它可以是像 tmpfs 这样的内存映射文件系统。
  • /usr 可以以只读方式挂载,并且只能重新挂载 rw 以进行更新,它可以像 NFS 共享一样远程。
  • /srv /opt 将存储应用程序和应用程序数据。如果您有 I/O 密集型应用程序,您可以使用更好的磁盘子系统(例如 SSD)
  • /usr/local 是当前机器上本地安装的应用程序使用的默认值。例如,您在 NFS 上拥有其他所有内容并拥有一个本地磁盘...

没有完美的解决方案。如果您没有明确的理由为什么要创建新分区,那就不要。除了 / 之外,您可能需要创建的唯一分区是 /boot。

尝试使用尽可能少的分区,并只为它们分配近期(4-6 个月)所需的分区。如果需要,您可以添加更多并扩展它们。如果可能,直接在磁盘卷上使用 LVM、ZFS 或 Btrfs。这为您提供了最佳的灵活性。

对于台式机/笔记本电脑,拥有 /home 很好,这样您就可以独立于数据重新安装操作系统。

  • 另一方面,如果您使用的是 GRUB 不支持的文件系统,或者您对 / 分区进行加密,则必须使用 /boot 分区。 (2认同)