initramfs制作和bzImage制作之间有什么具体的关系吗?

initramfs制作和bzImage制作之间有什么具体的关系吗?

我最初的问题是系统被initramfsshell阻止了。之后,电信公司汤姆Yan发现我的问题是由于缺少驱动以及后续驱动版本不匹配造成的。因此,我听从了他们的建议并解决了我的问题。

不过后来我修改了内核的编译选项,可能是修改过多了。而不是making clean,我直接make bzImage,却发现系统启动的时候,initramfs又卡了。我尝试修改rootdealy并检查驱动程序是否编译到内核中来解决我的问题。

经过这个答案,我只是按照它的运行重新编译安装了内核。但是,我并没有更改硬盘或内核版本,只是修改了内核配置选项。所以我猜initramfs和 的产生之间似乎存在某种关系bzImage

我的问题::

在此输入图像描述

回答:

在此输入图像描述

答案1

理论上答案是“视情况而定”。

在实践中,我从未有意见过 initramfs 可以独立于内核的情况。大多数系统为每个内核生成一个 initramfs(据我所知)。

initramfs 的一个实际用例是加载内核模块挂载根文件系统。这解决了根文件系统需要未静态编译到内核中的特殊驱动程序时引起的先有鸡还是先有蛋的问题。为此,initramfs 必须包含要加载的内核模块的副本。

由于编译的内核模块可能与不同的内核配置存在二进制差异,因此更改配置可能需要编译新的内核模块,然后打包到 initramfs 中。

同样,如果某些模块可以静态编译或动态加载,则更改配置以要求动态加载模块可能需要将这些模块添加到 initramfs 中。

假设您可以拥有一个包含静态编译的正确模块的内核。这样就不需要在每次内核重新编译时更改 Initramfs。就像我上面说的:我从来没有真正见过这样做。

相关内容