如何将 / 和 /home 放在不同的分区上?

如何将 / 和 /home 放在不同的分区上?

文件系统的结构(作为一个分层数据库)和运行系统中分层目录树的呈现之间存在一些混淆。

每个层次结构都有一个根。因此,每个分层文件系统都有自己的根。

但是当它们被挂载时,它们的根会映射到内存层级中某个位置。所以实际上,虽然你的/home的内容是该文件系统的根,但当它作为/home被挂载时,它的内容会在该路径下呈现。这种混淆源于一个重要的单个文件系统,称为“根”,它被挂载到内存层级的根,因此其根成为内存层级的根。

在各种情况下,你可能会看到这些文件系统被挂载到其他路径。常见的情况包括:

安装。 在操作系统安装过程中,将要成为新安装的“根目录”的文件系统会被挂载到其他位置(Debian安装程序使用挂载点/target,Gentoo手册建议将其挂载在/mnt/gentoo等位置)。这部分解释了安装程序本身是在已经挂载了自己的根文件系统并需要运行的操作系统之上运行的应用程序。

恢复。 这可以被视为前一项的变体;您运行一个具有自己根目录的恢复操作系统,但要访问要恢复的根系统(或其其他文件系统)上的文件,您需要将其挂载到其他位置。

启动。 操作系统启动过程通常需要在获得对主根文件系统的访问权限之前初始化存储。例如,它可能位于加密卷中,因此需要实例化一个透明的加密路径来访问该文件系统,并且您需要已经能够运行的某些应用程序来执行此实例化:请求密码或密钥,进行检查等等。其他情况可能包括使用软件RAID、卷管理、加载驱动程序、配置网络(如果根文件系统将是网络化的,如NFS或iSCSI)等等。在所有情况下,都会使用一个称为initramfs的小型临时根文件系统,它存储在引导卷中与内核映像一起,或者与内核一起从PXE引导设备传输,甚至可以内置到内核映像中。该文件系统包含初始化主根文件系统所需的所有配置、程序、驱动程序和/或脚本。完成后,主根文件系统被挂载到initramfs根目录的某个路径(通常是/newroot),然后执行切换,使内核在运行时从一个根目录切换到另一个根目录。(initramfs占用的内存随后被释放并返回给通用使用。)如果您在启动菜单中看到调试initramfs shell,那就是在切换之前停止启动过程的方法,这样您可以探索系统在该阶段的状态。

相关阅读