在使用“其他”选项安装 Ubuntu 时,我发现有许多文件夹可以安装在单独的分区上,如下图所示。
那么将这些文件夹(或目录)挂载在单独的分区上有什么优点和缺点?
具体来说,目录是
/boot
/home
/tmp
/usr
/var
/srv
/opt
/usr/local
答案1
很久很久以前...
... 曾经有一段时间,人们习惯于安装 Linux 并手动配置它以满足他们的特定需求。即便是在今天的服务器中,这种情况仍然时有发生。您看到的选择gparted
是一些受欢迎的选择,适合那些与普通桌面用户(Ubuntu 桌面的目标受众)有非常不同需求的人。
让我们逐一讨论这些问题。我将跳过那些我不太了解的问题。
/boot
曾经有一段时间,Linux 文件系统很脆弱,硬盘很小。人们担心硬盘会填满或损坏,Ubuntu 无法启动。将内核保存在单独的分区中有助于系统在其他事情出错时启动。在那些日子里,Linux 用户习惯于编译自己的内核并清理旧内核。最近的是 Ubuntu 16.04 LTS, 这软件更新程序app 安装了最新的内核更新,但没有删除旧内核。结果,一个小/boot
分区被旧内核填满,除非定期清理,否则系统将停止启动。看看如果你有一个单独的/boot
分区,但忘记定期清理它,会发生什么:如何在 /boot 中释放更多空间? 使用 Ubuntu 18.04 LTS这软件更新程序应用程序不仅使系统保持最新状态,还会删除旧内核。它保留最后两个内核,以防最新内核出现问题而需要恢复到前一个内核。- 另一方面,如果您想要加密分区
/
(以保护您正在使用的秘密软件),则需要一个单独的(未加密的)/boot
分区。否则系统将无法启动。同样,如果您有 RAID 驱动器,保留/boot
非 RAID 分区可能会很有用。许多人认为/boot
出于这些和其他原因,拥有一个单独的分区是一个非常好的主意。 /home
将 home 保存在单独的分区中仍然有意义。此文件夹/分区包含您的个人文件,将其保存在单独的分区中允许您格式化/
并重新安装 Ubuntu,同时保持文件不变。Ubuntu 安装软件的最新版本包括从 DVD/USB 更新的选择。/home
即使它不在单独的分区上,此选项也会保持不变。如果您的主驱动器中的分区空间不足。/
您可能需要添加新驱动器并在新驱动器中创建一个/home
分区。/tmp
是临时文件存放的地方。如果您运行的服务器会创建大型临时文件,这些文件可能会填满所有磁盘空间并使服务器停止运行。将其保存在单独的分区中只会填满该分区,并可能停止创建大型临时文件的进程,但不会停止系统的其余部分。有人告诉我,处理已填满的分区/tmp
比处理分区下的临时文件夹更容易/
。/usr/
、/opt/
和/usr/local
都是以不同方式保存程序和应用程序的地方。如果您为 Linux 开发软件,则将它们保存在单独的分区中可能很有意义,这样如果您重新安装 Ubuntu,就不会删除您编写或正在开发的程序。- 如果您从源代码(您自己的或从其他地方)安装程序并希望在安装在同一台计算机中其自己的分区中的另一个发行版(例如 Red Hat)中使用它们,则将和保留在单独的分区中也是有意义的。然后,Ubuntu 和 Red Hat 这两个发行版可以共享
/opt/
和分区。 (感谢 Rmano!)/usr/local
/opt
/usr/local
/srv
/var
如果您运行服务器或开发网页,这些文件夹作为单独的分区尤其有用。对于普通桌面用户来说,这些文件夹不会占用太多空间,也不会包含任何对用户有价值的东西。对于网络开发人员来说,丢失这些文件夹可能/var/www
意味着失去工作。
当然,这些并不是唯一可以挂载为分区的目录。在 Linux 中,可以将分区挂载为任意位置的任意文件夹。分区通常挂载为/mnt/
和的子目录/media
。
希望这可以帮助
答案2
拥有多个分区的一般优点:
- 您可以使用不同的磁盘/LUN 并获得更好的性能。这可以提高数据库的性能,因为您可以将事务日志放在一个存储上,将数据文件放在另一个存储上。磁盘 I/O 密集型 Web 应用程序也类似。
- 您可以使用不同的安装选项(以更细致的方式提高安全性或影响性能/稳定性)。
- 您可以拥有不同的文件系统。
- 您可以单独管理空间。因此,您可以让某个应用程序填充空间,而不会影响其他应用程序。
- 一个分区的碎片与另一个分区无关。
- 您可以独立地对这些文件系统进行快照、挂载、卸载、格式化、碎片整理、性能监控。
- 您可以对特定卷进行加密。
- 您可以根据需要安装卷。
- 您可以查看每个块设备的 I/O 统计信息。
具有多个分区的一般缺点:
- 这增加了管理开销。
- 您将有更大的机会浪费更多的磁盘空间。
- 您将遇到更多涉及磁盘已满的事件。
- 创建在不同卷上运行的应用程序的一致快照更加困难。
- 它使用的资源稍微多一些。
- 难以缩小。根据卷类型(MS-DOS 标签、LVM、btrfs...),您可能无法通过缩小另一个卷轻松地从一个卷分配空间。尤其是在线。
- 如果您进行分区以便使用
nodev
、nosuid
和/或noexec
,则此设置可能会过于限制,而您可以使用SELinux
、grsecurity
或 获得更好的粒度,AppArmor
并且只需使用一个大的/
。 - 如果您使用旧的分区工具,您可能会“发挥创造力”,导致分区与底层范围错位。某些磁盘阵列可以检测到这种情况并进行补偿。
- 如果使用 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
单独的分区上,以便您可以独立于数据重新安装操作系统。
答案3
对于桌面来说?
没有不同。
对于服务器?
空间管理和备份。
如果您的系统有许多用户,您可以为 /home/ 创建额外的分区,这样用户就不会占用该空间,并且根目录 (/) 也不会受到影响。
您还可以在这些文件夹上安装 NFS、SMB 或在其他物理磁盘上进行分区。例如:
/dev/sda1 /boot (1GB)
/dev/sda2 / (60GB)
nfs://IP/文件夹 /home ( X TB )
/dev/sdb1 /var(/var/www 或 /var/ftp 为 1TB)
对于笔记本电脑
/ 在 m-sata 上(快速)
硬盘上的 /var /home /opt /tmp(慢)
答案4
如果在更新或主要版本升级期间出现严重错误,将 /home 放在不同的分区上可让您从 CD 启动,然后完全擦除并重新安装操作系统,而不会丢失数据。此外,这还可以使用各种 Linux 发行版进行多重启动,有些人喜欢并排评估这些发行版。