为什么我们要在 Linux 中创建自定义分区?

为什么我们要在 Linux 中创建自定义分区?

我是 Linux 新手,我在虚拟机中安装了 centos VM,在安装时我创建了分区:/(root)、boot、home 和 swap,所以我认为这与我们在 Windows 中创建的分区相同C、D、E 分区,但是当我登录 Linux 并进入计算机时,我看到 /(root) 里面有多个目录,如 root、boot、home、var、bin。所以我的问题是:

  • 如果我们创建了 home 的不同分区 root,为什么所有这些都在 root 内。为什么他们不分开? (我知道Linux文件系统中的每个目录/文件都嵌套在根/目录下)

  • 主分区(我们在安装时创建)和 /(root) 内的主目录是否相同?

  • 为什么我们将 /home 放在单独的文件系统上,而不是 /usr 或 /var 之类的文件系统上?

我的心态就像在Windows中一样,我们创建C、D和E分区,C盘包含操作系统或软件文件,D和E盘将是空的。所以在Linux中如果我们创建这些分区,应该有/(root)、boot和home,但是为什么这里只有/,所有东西(包括我们在安装时创建的boot和home分区)都在/里面,这是自动的创建?

(我不是在问这个单独的文件夹是做什么的。)

答案1

如果我们创建了 home 的不同分区 root ,为什么所有这些都在根目录内。为什么这不是单独的? (我知道Linux文件系统中的每个目录/文件都嵌套在根/目录下)

因为与“经典”Windows 不同,目录树有一个公共根。

为什么要分开呢?这只是 Microsoft 在 1980 年根据竞争对手的设计为 MS-DOS 做出的设计选择!顺便说一句,即使是 Windows 底层也不再将“C:”、“D:”等视为文件系统的“根”;在内部,有统一的表示(例如\\?\C:\Windows)。

主分区(我们在安装时创建)和/(root)内的主目录是否相同?

是/否。分区实际上是您分配用于存储所谓的硬盘驱动器的一部分文件系统。文件系统只是一个包含文件信息和文件数据本身的大数据结构。将其视为数据库,其设计目的是准确填充它所获得的分区空间!

/home目录是一个目录,该文件系统所在的位置已安装。换句话说,文件系统“数据库”被打开,并且该“数据库”的内容(文件和目录!)作为 的内容可见/home

因此,分区是以某种明确定义的格式存储数据的物理空间,而目录/home是可以作为文件和目录进行访问的地方。

如果要人性化的比喻的话:分区就是书,/home目录就是你从阅读那本书中获得的知识。

为什么我们将 /home 放在单独的文件系统上,而不是像 /usr 或 /var 这样的文件系统?

因为如果您可以对 /home 进行完整备份,有时会很有利,因为那是全部重要的数据/文件是您不能简单地重新安装。

如果您的备份策略不基于分区,那么对于现代系统来说,这是一个相对较弱的论据。还有性能方面的考虑,但这些也并不真正适用于单用户单存储计算机。

这可能只是取决于一组系统管理员的历史偏好!即使你这样做整个系统也会工作不是为/home 建立一个单独的分区。

/boot 有点特殊,有技术原因(计算机需要 /boot 才能启动,甚至在它可以加载理解所有其他分区上的数据所需的所有内容之前)。

交换实际上并不是安装在某个地方的东西。


历史视角:据我所知,将数据视图分区为“植根”于承载数据的实际设备/分区的想法来自 1974 年称为 CP/M 的操作系统。
MS-DOS在 IBM 与 CP/M 背后的公司谈判失败后,该操作系统成为 IBM PC 的标准操作系统,采用了该方案。与此同时,UNIX 已经存在,并且有一个不同的模型——您仍然在 Linux 中观察到的模型,您可以在其中子目录上的文件系统。
因此,从技术上讲,CP/M 故意为微型计算机的目录树布局选择了一种与当时至少一种数据中心操作系统不同的设计,并且询问为什么 CP/M / DOS 选择这种设计也同样有效。就这样,到底为什么 WindowsNT(您当前的 Windows 所基于的)选择坚持这一点,而不是随波逐流。与Windows95不同,Windows NT/2000/XP/Vista/7/8/10/11不是后代或尝试与 MS-DOS 或 CP/M 兼容。

相关内容