![如何让 init 远离pivot_root 并保留在 ramdisk 中?](https://linux22.com/image/229479/%E5%A6%82%E4%BD%95%E8%AE%A9%20init%20%E8%BF%9C%E7%A6%BBpivot_root%20%E5%B9%B6%E4%BF%9D%E7%95%99%E5%9C%A8%20ramdisk%20%E4%B8%AD%EF%BC%9F.png)
简而言之,我对可用的发行版不满意,因为它们要么太大,要么缺少我需要的 ootb 功能,我还希望它能够将其启动到 ramdisk,所以我制作了自己的 ISO。
该 ISO 包含 isolinux 引导加载程序、linux 内核和 initrd(其中包含 busybox 和一些其他工具)。
现在我遇到的问题是 busybox init 正在尝试pivot_root并且我没有指定root,我也不想旋转,因为我需要的所有东西已经在ramdisk中,但是设置 root=/dev/ram0 不会不起作用(无效的分区/根),它仍然会导致内核恐慌
在此“操作”下关联我想进入第5步,不再进一步,我还没有找到太多,所以我在这里问。
我如何阻止 linux/busybox/init 尝试离开 ramdisk?
答案1
所以是的,看来我是个傻瓜,问题是双重的:我用 initramfs 源文件编译了内核,并且我有两个 initrd。
第一个阻止了外部 initrd 的加载,而第二个是 isolinux 不喜欢点 (.) 的情况,因为我没有清理 iso 根并且有 initrd 和 initrd.xz
现在我只需要弄清楚如何在runit上获取
这是我的项目的灵感和基础:尼尔·利希特曼 (Nir Lichtman) 的视频从头开始制作简单的 Linux 发行版。