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


41

当使用“其他”选项安装Ubuntu时,我发现有很多文件夹可以挂载在单独的分区上,如下图所示。

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

那么将这些文件夹(或目录)挂载在单独的分区上有什么优点和缺点?

具体来说,目录是

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


6
@CharlesGreen这个问题描述了这些目录的使用。我有兴趣了解将它们安装在单独的分区上的优缺点。因此,这些问题并不相同。
注册用户

Answers:


54

很久很久以前...

...曾经有一段时间,人们习惯于安装Linux并根据他们的特定需求手动进行配置。即使在今天,对于服务器来说,其中某些也是正确的。gparted与那些普通桌面用户(Ubuntu桌面的目标受众)相比,那些需求有很大不同的用户会看到一些受欢迎的选择。

让我们一次接受这些。我将跳过那些我不太了解的内容。

  1. /boot曾经有一段时间,Linux文件系统非常脆弱,硬盘驱动器很小。人们担心硬盘会填满或损坏,而Ubuntu无法启动。将内核保存在单独的分区中有助于在出现其他问题时引导系统。在那些日子里,Linux用户曾经编译自己的内核并清理旧内核。与Ubuntu 16.04 LTS一样Software Updater应用程序安装了最新的内核更新,但未删除旧内核。结果,一个很小的/boot分区充满了旧内核,除非有人定期对其进行清理,否则系统将停止引导。如果您有一个单独的/boot分区却忘记定期清理分区,会发生什么情况:如何释放/ boot中的更多空间? 使用Ubuntu 18.04 LTSSoftware Updater应用程序不仅可以使系统保持最新,还可以删除旧内核。
  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. 保持/opt//usr/local在独立的分区也有道理,如果你从源代码安装程序(自己的或其他地方),并希望在其他分发使用他们(说的Red Hat),安装在自己的分区在同一台计算机。然后,发行版Ubuntu和Red Hat都可以共享/opt/usr/local分区。(感谢Rmano!)
  7. /srv并且/var,如果你运行的服务器或开发网页是作为单独的分区特别有用。对于普通的台式机用户,这些文件夹不会占用太多空间,并且不会保存任何对用户有价值的东西。对于网络开发人员而言,失去/var/www可能意味着失去工作。

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

希望这可以帮助


+1,不错的答案。您也可以在askubuntu.com/a/379212/16395askubuntu.com/a/379019/16395
Rmano 2014年

1
谢谢@Rmano我之前已经看过您的详细答案。我将从您的第二个答案中借用并编辑我的答案。
user68186 2014年

2
没关系(尽管我这样做是为了使它们能够在完全重新安装后生存下来---较新的安装程序可以保存,/home但不能保存/usr/local。顺便说一句,“手工安装和定制”是Arch Linux的引理...所以仍然(很多)的人这样做
Rmano 2014年

2
将/ boot作为单独的分区的历史原因是从硬盘大于BIOS可以处理的日子开始的,因此如果内核位于磁盘的不可访问部分,则无法加载。通过将/ boot分区放在磁盘上,可以确保BIOS始终可以访问内核,以便Linux可以引导。
托尔比约恩Ravn的安德森

1
还要注意,可以添加磁盘以获取更多空间,但是在Unix中,您需要在某个地方挂载它们,而不仅仅是分配驱动器号。例如,如果磁盘已满,则购买了一个新磁盘来存放/ home并将当前内容移到那里。
托尔比约恩Ravn的安德森

15

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

  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,以便您可以独立于数据重新安装操作系统。


别客气。我不同意/boot为普通桌面用户提供一个单独的分区是一个好主意。旧内核不会自动清除,而新内核会被添加。然后发生这种情况!
user68186 2014年

1
如果已满,则用户将无法安装较新的内核,并且更新将失败。但是系统将正常运行。
Mircea Vutcovici 2014年

1
另一方面,如果您使用的是GRUB不支持的文件系统或对/分区进行加密,则必须使用/ boot分区。
Mircea Vutcovici 2014年

双方都同意。
user68186 2014年

1
我已经编辑了答案,以删除/ boot分区的强制性要求。
Mircea Vutcovici 2014年

2

对于台式机?

没有不同。

对于服务器?

空间管理和备份。

如果您的系统有许多用户,则可以为/ 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(缓慢)


1
您能详细说明最后一点吗?另一则文章建议不要将这些分区放在单独的磁盘上,因为这会导致其他故障点:现在,如果任何一个驱动器出现故障,您都将无法使用操作系统。更不用说这会减慢启动时间,因为现在/正在等待HDD分区安装。
Khashir '16

2

przemo的答案imo最接近实际问题。以下是一些其他实际注意事项:

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

对于我个人的非服务器用途,我只保留单独的/,/ boot和/ home分区,以便可以双重引导多个Linux / UNIX OS并为其使用相同的/ home分区。

在Oracle Virtualbox,VMWare Player / Workstation / Fusion等中构建供个人使用的VM的情况下,至少由于VirtualBox提供的漂亮的文件夹共享功能,实际上没有实际的理由要具有多个具有不同安装点的分区和VMWare Player / Workstation / Fusion。出于我在“企业环境”段落中给出的恢复外壳程序原因,单个异常可能是/ boot。


2

如果在更新或主要版本升级期间确实出了什么问题,则将/ home放在其他分区上可以使您从CD引导,然后完全擦除并重新安装操作系统,而不会丢失数据。同样,这使得使用各种Linux发行版进行多重引导成为可能,有些人喜欢对它们进行并行评估。


单独的/ home是我的肥皂盒之一,但是最近在另一个分区中安装saucy只是为了在oneiric笔记本上进行测试时,我仍然被烧死了,它弄乱了我共享的/ home中的一堆配置文件,这使oneiric感到非常不高兴我重新启动了它。
2014年

0

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

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

您可能有一些特殊的用例,它们使您可以进行不同的调整(对同一类型的文件系统进行调整,例如用于许多小文件的EXT4分区和用于少量大文件(例如虚拟机)的EXT4分区)针对两个用例优化存储和性能。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.