在启动时root partion is mounted at root(/)
,它被称为根文件系统。
http://www.linfo.org/root_directory.html
这是否意味着将根分区从硬盘复制到内存?
它mount point root(/)
存在于哪里?在 RAM 或硬盘或交换区?
每当我们在基于 Ram 的根文件系统中创建副本时,都会对硬盘等后备存储进行相同的更改。我理解得对吗??
编辑 : - - -
但是目录/
在哪里?当我们启动时根文件系统仍未安装时,这意味着目录根应该存在于某个地方来安装根文件系统。那个地方在哪里?
答案1
在大多数正常的 Linux 启动过程中实际上有两个根文件系统。
这真正的根文件系统位于物理磁盘上的分区或逻辑卷中 - 它不会作为文件系统加载到 RAM 中,尽管最近访问过它的块会存在于 RAM 的缓存中。对此文件系统的更新会在发生时写入磁盘。根文件系统也可能位于网络资源上,但在这种情况下,它通常也保存在物理磁盘上的某个分区/卷/文件中。
这初始根文件系统在启动过程的早期阶段与内核一起加载到 RAM 中。这是一个位于文件下的小型文件系统,/boot
仅包含内核模块/驱动程序、脚本和其他可能需要查找、验证和安装真实根文件系统(例如 RAID 和 LVM 模块,或者如果通过网络安装根文件系统,则为 NFS 模块/工具)的实用程序。一旦安装了真实根文件系统,这个特殊的“初始”文件系统就会被丢弃。initrd
(代表 INITial Ram Disk)将在进行重大更改(例如安装新的内核包)时重建。它(通常)不会通过其他操作更新。
以上适用于大多数 Linux 安装,但对于特殊情况(例如可写入 CD/DVD 或 USB 驱动器上的某些实时系统)可能会有很大不同。
but where does directory / exist.. ?
它在物理上并不如此。与其他挂载点(即其他文件系统中的目录)不同(例如/mnt
或下的目录/media
,尽管它们实际上可以位于任何地方),的挂载点/
没有物理存在,并且是仅保存在内核内部的虚拟对象。另一方面,挂载的文件系统/
是上面列出的两个之一 -initrd
在早期启动过程中是内存中的文件,或者在其他时间是物理磁盘或网络资源上的文件系统(除了如上所述的某些特殊情况)。
答案2
文件系统不会被复制到 RAM。内核维护一个已安装文件系统的表,以便能够/a/b/c
在正确的文件系统中找到路径名的元素(例如)。