在安装linux时,为什么我们需要将我们的“根分区”挂载到“/”,它有什么作用呢?

在安装linux时,为什么我们需要将我们的“根分区”挂载到“/”,它有什么作用呢?

我正在安装 arch linux,并且我的根分区位于/dev/sda2.据我了解,这个分区现在将是我的根目录,包含所有子目录/home/usr等等。

让我困惑的是为什么我们必须在安装过程中将“root”安装到看似“root”的地方。例如,arch linux 的安装步骤为:mount /dev/root_partition /mnt

据我所知,我们正在将分区安装到安装介质的文件系统中的目录。但是当我们这样做时genfstab,它指定根分区将安装到“/”。

这对我来说似乎有点递归,因为我们将“root”安装到“root”。内核还有其他的文件系统吗?这有什么关系吗initramfs

答案1

现代 Linux 从 initramfs 启动。在此引导环境中,“根”文件系统是安装在 的 initramfs /

作为引导过程的一部分,initramfs 加载驱动程序和内容,找到真正的根文件系统,并将其安装在某个子目录上。最初,此时,chroot 用于将该子目录更改为/用于将来的进程。然后linux添加了一个系统调用,允许将initramfs挂载点与子目录交换,这样initramfs就可以被卸载并从内存中释放。

在两者之间的某个地方,像 genfstab 这样的东西可以用来动态生成一个新的 fstab,反映 chroot 之后移动的安装点。 (我没有看到它在动态云环境之外使用 - 通常 fstab 是一个静态文件,列出要安装的内容,而不是当前安装的内容。)

答案2

不,这与 initramfs 无关。

文件系统就是文件系统。您可以将其安装在任何地方、多个位置或任何地方。在你当前的linux(我猜它是你的实时安装程序archlinux)中,/dev/sda2的文件系统安装在/mnt下。但是当安装完成并重新启动后,它将被安装在/(根目录)下。

答案3

没有root分区之类的东西。它只是您选择安装为的一个分区/

在我看来,我们根本不需要挂载根分区,因为它包含整个文件系统?

默认情况下,内核不会挂载任何东西,它没有任何线索,并且它不关心你想要的根文件系统在哪里。

挂载在/的分区,即根目录所在的分区,通常称为“根分区”。

这只是一个调用约定。可能有“根分区”、“exfat 分区”或任意数量的“SWAP 分区”。

相关内容