在不同的分区上安装各种目录有什么优缺点?

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

许多文件夹可以安装在不同的分区上

那么在单独的分区上安装这些文件夹(或目录)的优点和缺点是什么?

特别是目录

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

很久很久以前…

…曾经有一段时间人们习惯安装Linux并手动配置它以满足他们的特定需求。 即使在今天,服务器也是如此。 您在gparted中看到的选项是一些受欢迎的选项,适用于那些与普通桌面用户(Ubuntu桌面的目标受众)相比需求非常不同的用户。

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

  1. /boot曾经有一段时间Linux文件系统很脆弱且硬盘很小。 人们担心硬盘会被填满或被破坏,Ubuntu无法启动。 将内核保存在单独的分区中有助于系统在出现其他问题时启动。 在那些日子里,Linux用户习惯于编译自己的内核并清理旧的内核。 这些天我发现它有点适得其反。 在获得所有更新的桌面上,小型/boot分区往往会被旧内核填满,系统会停止启动,除非定期清理它。 看看如果你有一个单独的/boot分区并忘记定期清理会发生什么: 如何在/ boot中释放更多空间?
  2. 另一方面,如果要加密/分区(以保护您正在使用的秘密软件),则需要一个单独的(未加密的) /boot分区。 否则系统将无法启动。 同样,如果您有RAID驱动器,则在非RAID分区中保留/boot可能很有用。 由于这些原因和其他原因,许多人认为拥有一个单独的/boot分区是一个非常好的主意。
  3. /home在单独的分区中保持家庭仍然有一定道理。 此文件夹/分区包含您的个人文件,并将其放在单独的分区中,允许您格式化/重新安装Ubuntu,同时保持文件不变。 最新版本的Ubuntu安装软件包括从DVD / USB更新的选择。 此选项使/home保持不变,即使它不在单独的分区上。 如果主驱动器中的空间不足/分区。 您可能希望添加新驱动器并在新驱动器中创建单个/home分区。
  4. /tmp是临时文件的去处。 如果您正在运行创建大型临时文件的服务器,它们可能会填满所有磁盘空间并使服务器停止运行。 将它保存在一个单独的分区中只会填满该分区,并可能会停止创建大临时文件但不会停止系统其余部分的进程。 我被告知处理填充/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作为单独的分区特别有用。 对于普通桌面用户,这些文件夹不占用太多空间,并且不保存对用户有价值的任何内容。 对于失去/var/www的网络开发者而言,可能意味着失去工作。

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

希望这可以帮助

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

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

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

  1. 它增加了管理开销。
  2. 您将有更多机会浪费更多磁盘空间。
  3. 您将有更多涉及磁盘已满的事件。
  4. 创建在不同卷上运行的应用程序的一致快照更加困难。
  5. 它使用稍多的资源。
  6. 根据卷类型(MS-DOS标签,LVM,btrfs …),您可能无法通过缩小另一个来轻松地从卷中分配空间。 特别是在线。

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

现在具体的东西:

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

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

对于台式机/笔记本电脑来说,很高兴/ home,以便您可以独立于您的数据重新安装操作系统。

对于桌面?

没有不同。

对于服务器?

空间管理和备份。

如果您的系统有很多用户,您可以为/ home /创建额外的分区,那么用户将不会占用该空间,并且root(/)不会受到影响。

您还可以在这些文件夹上的其他物理磁盘上安装NFS,SMB或分区。 例如 :

/ dev / sda1 / boot(1GB)

/ dev / sda2 /(60GB)

nfs:// IP /文件夹/ home(X TB)

/ dev / sdb1 / var(/ var / www或/ var / ftp为1TB)

适用于笔记本

/ on m-sata(快速)

/ var / home / opt / tmp on hdd(slow)

przemo的回答,imo,最接近实际的观点。 以下是一些其他实际考虑因素:

企业环境通常在/ opt下为/,/ home,/ opt,/ var,/ boot和其他文件系统(每个应用程序或应用程序团队1个)使用单独的分区。 这主要是为了避免由于某人主目录变得庞大(/ home),日志失控(/ var)或占用大量空间的应用程序(/ opt,/ opt //等)而导致系统空间不足和/ boot,以便其他分区可以在LVM中构建,并且还可以确保在主系统分区由于某种原因而损坏时可以获得某些恢复shell。

对于我个人的非服务器用途,我只保留单独的/,/ boot和/ home分区,以便我可以双启动多个Linux / UNIX操作系统并为它们使用相同的/ home分区。

在Oracle Virtualbox,VMWare Player / Workstation / Fusion等中构建VM以供个人使用的情况下,由于至少VirtualBox提供的良好文件夹共享function,实际上没有理由让多个分区具有不同的挂载点和VMWare播放器/工作站/ Fusion。 对于我的“企业环境”段落中给出的恢复shell原因,单个exception可能是/ boot。

如果在更新或主要版本升级期间出现问题,则在不同分区上安装/ home允许您从CD启动,然后完全擦除并重新安装操作系统而不会丢失数据。 此外,这使得可以使用各种Linux发行版进行多次启动,有些人喜欢并排评估这些。

除了现有答案之外,您还可能拥有受益于不同分区的非标准/通用兼容性和性能用例。

您可能希望与其他操作系统(如Windows)共享数据,并且需要使用Linux和支持的文件系统。

您可能拥有允许您具有不同调整的专用用例(相同类型的文件系统,例如用于许多小文件的EXT4分区和用于少数大文件的EXT4分区(例如虚拟机))优化两种用例的存储和性能。