我设法创建了一个小型且功能齐全的实时Linux CD,其中仅包含内核(使用默认选项编译)和BusyBox(使用默认选项+静态编译,所有小程序都包括在内/sbin/init
)。我没有问题,建立initrd
和填充/dev
,/proc
并且/sys
也是我在所有与我没有任何问题/init
shell脚本。
最近,我读到BusyBox支持/etc/inittab
配置(至少在某种程度上),我非常想执行以下任一操作:
- 忘记我的
/init
shell脚本,完全依靠/etc/inittab
配置。 - 同时使用
/init
Shell脚本和/etc/inittab
配置。
现在是实际问题- /etc/inittab
当我的发行版启动时,似乎完全被忽略了。症状是:
- 当我删除
/init
并离开时,/etc/inittab
我最终会陷入内核崩溃。我的假设是内核根本不执行/sbin/init
,或者/sbin/init
根本找不到(或读取)/etc/inittab
。 - 我读到即使没有,BusyBox也应该可以正常工作
/etc/inittab
。因此,我同时删除了两者/init
,/etc/inittab
然后猜测是什么-再次出现内核恐慌。 - 我试图执行
/sbin/init
从我的外壳经过几次猜测,其中包括exec /sbin/init
,setsid /sbin/init
和exec setsid /sbin/init
我结束了内核崩溃。文件系统上同时存在和不存在/ etc / inittab。
这是我的/init
shell脚本的内容:
#!/bin/sh
dmesg -n 1
mount -t devtmpfs none /dev
mount -t proc none /proc
mount -t sysfs none /sys
setsid cttyhack /bin/sh
在这一点上,我不在乎它的内容/etc/inittab
,只要我有办法知道那里的配置确实有效。我尝试了几种/etc/inittab
配置,所有这些配置都是基于在这里找到的信息。
作为最低要求,我的/ etc / inittab仅包含以下这一行:
::sysinit:/bin/sh
再次-我最终陷入内核恐慌,似乎/etc/inittab
被忽略了。
/etc/inittab
非常感谢任何有关如何强制我的小型现场发行版与BusyBox配合使用的建议!
更新:
- 为了清楚起见,使用和不使用当前的shell脚本,我都不会遇到内核崩溃的麻烦。一切正常,我的控制台运行良好,没有任何意外的麻烦。唯一的问题是,正如我上面所述,它被完全忽略了。
/init
/etc/inittab
/bin/ash
/etc/inittab
- 我检查了3种不同的实时Linux发行版:Slax,Finnix和SysResCD。他们都有
/init
,没有一个/etc/inittab
。另外,这篇Wiki文章总结了我的怀疑,/sbin/init
根本没有引起我的怀疑。
如果您来这里,请看一下Minimal Linux Live,它似乎可以满足您
—
Ciro Santilli冠状病毒审查六四事件法轮功
啊,OP写了Minimal Linux Live!伙计,你摇滚。
—
Ciro Santilli冠状病毒审查六四事件法轮功