第一次安装Ubuntu时,我将/
和home
分成不同的分区。转念一想,这怎么可能呢?
不是home
“在” /
。
答案1
分区可以包含文件系统。 Linux 可以在挂载点(目录)挂载文件系统。这个挂载点可以在另一个文件系统的目录树中,并且挂载点/home
在根目录中/
。
挂载意味着挂载目录的内容可通过挂载点获取。这意味着主目录位于根目录(目录树)中,但它仍然位于自己的分区中的自己的文件系统中。
答案2
您可能需要阅读该mount
命令的手册页条目:https://www.man7.org/linux/man-pages/man8/mount.8.html
Unix 系统中可访问的所有文件都排列在一棵大树中,即文件层次结构,根位于
/
.这些文件可以分布在多个设备上。
文件层次结构是一种在系统上逻辑组织文件的方式,但并不真正代表文件的物理存储方式。
答案3
文件系统的结构(作为分层数据库)和运行系统中分层目录树的表示之间存在一些混淆。
每个层次结构都有一些根。因此,每个分层文件系统都有自己的根。
但是当它们被挂载时,它们的根被映射到内存层次结构中的某个位置虚拟文件系统层。所以确实,虽然你的内容/home
是根该文件系统的,当它是安装为/home
,其内容正在呈现在那条路下。这种混乱的根源在于,有一个重要的单一文件系统,称为“根”,它被安装到内存层次结构的根,因此它的根成为内存层次结构的根。
在各种情况下,您可能会看到这些文件系统安装到备用路径中。通常的情况是:
- 安装。在操作系统安装期间,将成为新安装的“根”的文件系统被安装在其他位置(Debian 安装程序使用安装点
/target
,Gentoo 手册建议将其安装在/mnt/gentoo
等等)。部分原因是安装程序本身是在操作系统之上运行的应用程序,操作系统已经安装了自己的根文件系统并需要运行。 - 恢复。这可以被视为前一项的变体;您运行具有自己的根的恢复操作系统,但要访问要恢复的根系统(或其其他文件系统)上的文件,您需要将其安装在其他位置。
- 启动。操作系统启动过程通常需要在获得对主根文件系统的访问权限之前初始化存储。例如,它可能被放置在加密卷中,因此需要实例化透明加密路径以访问该文件系统,并且您需要已经能够运行一些应用程序来执行此实例:询问密码或密钥、检查等等。其他情况可能是使用软件 RAID、卷管理、加载驱动程序、配置网络(如果根文件系统是联网的(NFS 或 iSCSI))等等。在所有情况下,都会使用一个小型临时根文件系统,称为初始化文件系统它与内核映像一起存储在启动卷中,或者与内核一起从 PXE 启动工具传输,甚至可以内置到内核映像中。该文件系统包含初始化主根文件系统所需的所有配置、程序、驱动程序和/或脚本。完成后,主根将被安装到 initramfs 根的某个路径中(通常是这样
/newroot
),然后转变执行后,内核会在运行时从一个根切换到另一个根。 (然后,被 占用的内存initramfs
将被释放并恢复正常使用。)如果您看到调试 initramfs shell在启动菜单中,这是在切换之前停止启动过程的方法,因此您可以探索系统在该阶段的外观。