为什么把 /home 以外的东西放到一个单独的分区?

Ale*_*x B 62 linux partition

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

这样做的实际原因是什么?我知道/home放在一个单独的分区上可能是有利的,因为用户文件可以单独加密,但为什么要这样做呢?

Mac*_*tka 63

  1. 最小化损失:如果/usr是在单独的分区上,损坏/usr并不意味着您无法恢复/etc
  2. 安全性:/不能总是 ro(/root可能需要是 rw 等)但/usr可以。它可以用来制作尽可能多的ro。
  3. 使用不同的 FS:我可能想使用不同的系统/tmp(对许多文件不可靠但速度快)和/home(必须可靠)。Similary/var包含数据,而/usr不会/usr牺牲稳定性,但不会牺牲那么多/tmp
  4. fsck 的持续时间:较小的分区意味着检查一个更快。
  5. 提到填充分区,尽管其他方法是配额。


Did*_*set 27

/usr如果您有多台机器共享相同的操作系统,单独的可能会很有用。他们可以共享一个中央/usr而不是在每个系统上复制它。/usr可以只读挂载。

/var并且/tmp可以由用户程序或守护进程填充。因此,将它们放在单独的分区中是安全的,这会阻止/根分区 100% 满,并且会严重影响您的系统。要避免这两个不同的分区,它是不是经常看到/tmp是一个符号链接/var/tmp


小智 15

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

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


txw*_*ger 13

问题是完整的根 fs 使 Linux 系统无法运行,以至于即使是系统管理员也无法在不使用 live CD 的情况下修复它。当/tmp,/var特别/home是在一个单独的分区上时,如果没有 root 访问权限,root fs 无法填充它们。将/usr目录添加到将放置所有常用安装的组合中,即使安装新软件也不会导致此问题。

  • 除非它安装到`/opt` :) (2认同)

小智 11

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

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

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


Con*_*lls 8

传统上,由于其开发所依赖的 DEC 硬件的特殊性,因此采用这种方式。为 root 和交换购买一个小而快速的磁盘,为用户数据购买一个更大、更慢的磁盘更经济(/usr)。在某些方面,公约只是停滞不前。

但是,仍然有一些原因可以这样做。几个常见的有:

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

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

  • 不同分区上的不同文件系统。例如,您可能希望将日志文件系统用于/usr但不用于为诸如 Oracle 之类的 DBMS 托管文件的分区 - DBMS 执行自己的日志记录,而日志文件系统可能会产生大量开销。

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

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

  • fsck对于某些类型的文件系统,在大卷上需要很长时间。您可能希望为系统区(频繁)和用户区(不太频繁)制定不同的文件系统维护计划。


gab*_*be. 5

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