Linux 中“/”和“/home”分区的用途是什么?

Linux 中“/”和“/home”分区的用途是什么?

我正在全新安装 CentOS 8 最小版本,它默认建议以下分区:

swap swap 4G
/boot ext3 512M
/     ext4 2014G
/home ext4 all

(这是使用软件 RAID 1 中的一对 4TB NVMe 驱动器)

我理解单独的交换/启动/数据分区的必要性/好处,但是为什么要有两个单独的数据分区呢?

我的直觉是将其重组为

swap swap 4G
/boot ext3 512M
/     ext4 all

但我认为 CentOS 比我更了解,并且单独分区是有充分理由的/home

这将是一个 Web 服务器和数据库服务器。传统上,我将 Web 文件存储在 /var/www/sites 中,将数据库存储在 /var/lib/mysql 中。

以我的经验来看,/home(作为一个目录,而不是一个单独的分区)除了 .bashrc、.vimrc 等之外基本上是空的,如果我将文件通过 FTP 传输到服务器,它偶尔会成为一个临时的着陆点。

我做错了吗? 使困惑

谢谢你!

答案1

为什么 home 是一个单独的分区?以防万一发生错误。您说您的数据目录通常是 /var/www 和 /var/lib/mysql。许多其他人使用他们的主目录来存储重要文件、文档、代码。您的用例是生产服务器之一,其中 /home 中的文件并不重要。对于使用 Linux 或 CentOS 作为桌面的用户来说,单独的 /home 文件夹意味着非常重要。

但是单独的 /home 分区如何保证我的安全?当出现问题时,需要重新安装操作系统。安装向导可能会检测到现有的 /home 文件夹,并将该 /home 文件夹映射回操作系统。因此,其他每个分区都将被清除并重新安装,但您的文件将是安全的。

就像 ext4 对于保证文件系统安全很重要一样。/home 分区可以保证文件的安全。

答案2

通常,对于工作站,它会尝试将人为操作与服务器操作分开。人为操作导致工作分区过满的情况并不少见,例如您构建软件时空间不足。在这种情况下,进程至少能够收集日志并保留其重要的临时数据以正常运行。这也是将人为数据与服务器数据分开以简化迁移的一个好处。

对于服务器,您可以将邮件保存在 /home 中,将队列保存在 /var 中。如果您的邮件溢出 /home 分区,您的邮件服务器将只返回临时错误,不会出现任何功能问题,只是没有空间保存邮件,但如果只是 / 分区 - 它甚至无法记录发生的事情,并且很可能会崩溃。当您第二天登录时 - 您会发现软件崩溃了,日志中没有任何内容。登录甚至可能是一个问题,因为 /var 对于 ssh 和 systemd 等其他服务至关重要。

在更保守的环境中,例如 BSD,不仅 /home 是分开的 - /usr /var 和 /tmp 通常放在不同的分区上。

答案3

对我来说,主要原因是大多数不懂如何检查分区表的用户都是家庭/桌面用户,而不是服务器管理员。对于这些人来说,如果操作系统出现灾难性故障,他们只需稍微花点功夫就可以重新安装之前安装的所有内容,从而准确地恢复到故障发生之前的状态。

一旦个人照片、文件等丢失,它们就永远消失了。你也许会犯类似的错误,但它永远不会是你丢失的那个。

单独的主分区可以轻松地重新安装操作系统,而不会丢失不可替代的东西。

答案4

简而言之,如果您由于任何应用程序而耗尽空间/home,您的机器仍然可以工作并且如果您将它放在不同的分区上,它仍然可以接受 SSH 连接。

当你安装特定服务时也会出现同样的问题,例如:

  • MySQL,创建不同的分区,如 /var/db/mysql
  • 代理/缓存应用程序,创建不同的分区,如/cache

因此,如果此服务创建的任何数据量超出预期,它将被分区大小阻止,并阻止整个系统停止工作。

相关内容