gpt4 book ai didi

Linux 启动过程 -- iniramfs & root (\)

转载 作者:太空狗 更新时间:2023-10-29 11:09:41 26 4
gpt4 key购买 nike

我有一些关于 linux boot 进程的问题。 Initramfs 是加载的第一阶段根文件系统。iniramfs 内部的 init 进程负责将实际的根文件系统从硬盘挂载到/目录。

现在我的问题是init创建的/目录在哪里(initramfs的init进程)挂载实际的根分区。是在 ram 还是 hardisk ?

此外,一旦挂载了实际的根分区,那么 initramfs 会发生什么?

如果 initramfs 从 ram 中删除,那么由 initramfs 创建的/文件夹会发生什么?

请提出建议,能否解释一下这个魔法是如何工作的

//艾伦

最佳答案

/sbin/init(initramfs 的)所做的是加载文件系统和必要的模块。然后它尝试加载目标真正的“rootfs”。然后它从 initramfs 切换到真正的 rootfs 并且“/”在硬盘上。 “/”是在安装系统时创建的,完成硬盘驱动器格式化。请注意,这是关于读取文件系统的内容,因此首先加载所需模块是先决条件。如果你有一个“/”的 ext3 分区,那么 ext3.ko 将被加载等等。

第二个问题的答案 - 在完成所需的 fs 模块加载后,它从 initramfs 的 init 切换到真正的 rootfs 的 init 并且通常的引导过程开始并且 initramfs 从内存中删除。这种切换是通过 pivot_root() 完成的。

第三个答案 - initramfs 不创建任何目录,它只是将现有的 initramfs.img 镜像加载到 ram 中。

因此,简而言之,加载 iniramfs 或 rootfs 并不是要创建任何目录,而是要加载现有的文件系统镜像。刚启动后 - 它使用 initramfs 加载必需的文件系统模块,就好像它可以读取真正的文件系统一样。希望对您有所帮助!

关于Linux 启动过程 -- iniramfs & root (\),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17058199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com