为什么将/ home以外的内容放在单独的分区中?


53

所以,最近一个Debian 5.0.5安装程序为我提供有独立的/usr/home/var/tmp分区(在一个物理磁盘)。

实际原因是什么?我知道/home放置在单独的分区上会很有利,因为用户文件可以单独加密,但是为什么还要其他呢?


10
保持/home独立的另一个好理由是,它可以让您自由地重新安装系统和/或切换发行版而不会丢失您的个人文件。
David Z 2010年

4
@David Zaslavsky:我不建议您切换发行版。因为您的主目录中的隐藏配置文件经常会冲突。
Troubadour

7
@Troubadour:其实我不这么认为。这些配置文件由特定的应用程序放置在此处,通常与您所使用的发行版无关。因此,例如,~/.mozilla/firefoxFirefox的Ubuntu,Fedora或Gentoo可以很好地使用的内容。~/.bashrc无论您运行哪个基础系统,它对Bash始终具有相同的效果。我已经做了很多切换发行版,而这些配置文件从未真正有问题。
David Z

3
@David Zaslavsky:如果新发行版使用的应用程序版本比以前的发行版早,我会看到问题,因为他们可能不知道如何读取这些配置文件。话虽这么说,我还没有尝试自己做任何事情。
直觉

另一个原因,如果您同时使用硬盘和固态硬盘,则可能需要将大量安装内容放在固态硬盘上,但想在硬盘上放置/ home和/ var以避免大量安装写入ssd。
凯文(Kevin)

Answers:


55
  1. 最大程度地减少损失:如果/usr位于单独的分区上,则损坏/usr并不意味着您无法恢复/etc
  2. 安全性:/不能始终为ro(/root可能需要为rw等),但是/usr可以。它可以用来使ro尽可能多。
  3. 使用不同的FS:我可能想要使用不同的系统/tmp(不可靠,但对于许多文件来说速度很快)和/home(必须可靠)。相似/var包含数据,而/usr不是这样/usr可以牺牲稳定性,但不能牺牲太多/tmp
  4. fsck的持续时间:较小的分区意味着检查一个分区更快。
  5. 提到填补部分,尽管其他方法是配额。

23

/usr如果您有多台共享同一操作系统的计算机,则单独使用可能会很有用。他们可以共享一个中心,/usr而不必在每个系统上都进行复制。/usr可以只读方式安装。

/var/tmp可以由用户程序或守护程序填充。因此,将这些文件放在单独的分区中是安全的,这样可以防止/根分区100%充满,并严重影响系统。为了避免有两个不同的分区,通常会看到/tmp与的符号链接/var/tmp


我想我可以理解/ var和/ tmp,但是由于安装程序提供了对单个磁盘进行分区的功能,因此单独使用磁盘的功能/usr非常有限吗?
亚历克斯·B

它允许您/usr通过NFS与其他系统共享。但是即使它不是一个单独的分区,您也可以共享它,这是真的…… 大声思考 ……只读装载是否足够好?
Didier Trosset

您如何通过这种设置进行更新?通常(至少在Linux下)软件包会更改系统本地目录中的文件,例如/etc
直觉

+1用于/ usr只读挂载。在进行更新之前将其重新装入rw。
LawrenceC

13

因为普通用户可能会导致将内容写入/var/tmp,从而可能导致整个系统出现问题。这样,用户进程可以填充/var/tmp,但不能填充根fs。分隔/usr符对于/usr通过NFS或其他远程fs 很有用。

(我希望这很清楚,我还没有喝咖啡)


第一句话是最好的解释,谢谢。
greenoldman 2011年

11

问题是,完整的root fs使Linux系统无法运行,即使管理员没有恢复CD或类似设备也无法修复它。当/tmp/var特别/home是在单独的分区中时,如果没有管理员,根目录fs永远不会填满。以/usr成其所有常见的安装将被放置的搭配,甚至是安装新的软件不能导致此问题。


除非安装到/opt:)
Troubadour

1
好。您也可以为此创建一个不同的分区,或创建一个链接,使/ opt实际上位于/ usr分区中。原理仍然相同。
txwikinger 2010年

10

通常,具有单独分区的参数为:

  1. 安全性:例如,您可以以只读方式挂载分区,以防止恶意用户(或进程)覆盖特洛伊木马或用特洛伊木马替换二进制文件。因此,如果您的ssh二进制文件位于/ usr / local / bin中,并且/ usr / local是只读安装的,那么任何人都很难替换该二进制文件。

  2. 灵活性/便利性:例如,如果在自己的分区上设置/ var,并且/ var的磁盘已满80%,则可以调整其大小,甚至可以根据需要将其移动到另一个磁盘。我宁愿这样做,也不愿处理'/'为100%已满的系统,因为/ var下的日志已经以某种方式陷入困境。不同的分区也可以完全具有不同的文件系统,从而允许您的OS使用ext3(例如),而数据库使用ext4,或者对象存储库使用XFS,或者您的自定义应用程序使用...原始设备!


在第一种情况下,处理系统更新的通常方法是什么?
直觉

6

传统上,这样做是因为开发DEC硬件的特殊性。为根和交换而购买较小的快速磁盘,为用户数据(/usr)购买较大的较慢的磁盘更为经济。在某些方面,惯例只是停留了下来。

但是,这样做仍有一些原因。一些常见的是:

  • 将/ boot放在靠近磁盘开头的单独的小分区上。较旧的PC BIOS固件只能从磁盘的前1024个磁道启动。对于现代硬件,这不太可能成为问题。

  • 将繁忙的分区(例如/var或放置/tmp在单独的磁盘上)以消除访问用户数据的瓶颈。

  • 不同分区上的不同文件系统。例如,您可能希望将日记文件系统用于/usr而不是用于托管DBMS(例如Oracle)文件的分区-DBMS会执行自己的日记操作,日记文件系统可能会产生大量开销。

  • 将用户数据存储在单独的磁盘或分区上,可以轻松地将其迁移到更大的磁盘上,而无需在机器上进行大刀阔斧的手术。

  • 您可能希望通过NFS挂载共享数据,例如主目录或应用程序二进制文件。

  • fsck对于某些类型的文件系统,在大容量卷上花费很长时间。您可能希望对系统区域(频繁)和用户区域(不太频繁)有不同的文件系统维护计划。


5

格式化文件系统也可以比rm -rf'ing更快。特别是如果您要擦除数千个小文件。您想完全重新创建鱿鱼缓存...需要处理的大量图像文件,但是在创建最终结果后可以将其丢弃。.obj文件来自大量编译...等等。


4

我有时将文件夹放在一个单独的分区上,/usr/local/这样,如果我更改/升级发行版或与发行版旁边安装的另一个发行版,可以与发行版的程序包管理器分开构建和安装的任何软件都可以重新使用。显然不能保证可以在所有可能的组合中使用它,但不会造成伤害。


2

我放/tmp了一个tmpfs,所以内容存储在RAM中而不是磁盘中。这将不会是有用的/etc/usr然。

但是能够将不同的目录放在不同的文件系统上可能是有益的。即/home在ext4这样的快速/实验性文件系统上与ext2这样的稳定​​/可靠的文件系统上/etc

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.