Logré crear un CD de Linux en vivo pequeño y completamente funcional que contiene solo kernel (compilado con opciones predeterminadas) y BusyBox (compilado con opciones predeterminadas + estático, todos los applets presentes, incluidos /sbin/init
). No tuve problemas para crear initrd
y completar /dev
, /proc
y /sys
tampoco tuve ningún problema con mi /init
script de shell.
Recientemente leí que BusyBox admite /etc/inittab
configuraciones (al menos hasta cierto nivel) y me gustaría mucho hacer cualquiera de los siguientes:
- Olvídate de mi
/init
script de shell y confía completamente en la/etc/inittab
configuración. - Utilice tanto el
/init
script de shell como la/etc/inittab
configuración.
Ahora el problema real: parece que /etc/inittab
se ignora por completo cuando se inicia mi distribución. Los síntomas son:
- Cuando elimino
/init
y dejo solo/etc/inittab
termino con pánico en el núcleo. Mi suposición es que el kernel no se ejecuta/sbin/init
en absoluto, o que/sbin/init
no encuentra (o lee)/etc/inittab
. - Leí que BusyBox debería funcionar bien incluso sin él
/etc/inittab
. Por lo tanto, me quita tanto/init
y/etc/inittab
y supongo que lo que - de pánico del kernel nuevo. - Traté de ejecutar
/sbin/init
desde mi shell y después de varias conjeturas que incluyeronexec /sbin/init
,setsid /sbin/init
yexec setsid /sbin/init
terminé con kernel panic. Tanto con / sin / etc / inittab como presente en el sistema de archivos.
Aquí está el contenido de mi /init
script de 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
En este punto no me importa cuál sería el contenido de la /etc/inittab
, siempre y cuando tenga una manera de saber que la configuración allí realmente funciona. Intenté varias /etc/inittab
configuraciones, todas basadas en la información que encontré aquí .
Como mínimo, mi / etc / inittab contenía solo esta línea:
::sysinit:/bin/sh
Una vez más, terminé con kernel panic y parece que /etc/inittab
fue ignorado.
Cualquier sugerencia sobre cómo forzar mi pequeña distribución en vivo para que funcione bien con BusyBox /etc/inittab
es muy apreciada.
Actualizar:
- Solo para aclararlo: no tengo problemas de kernel panic con mi
/init
script de shell actual con y sin/etc/inittab
. Todo funciona bien, mi/bin/ash
consola funciona muy bien y no experimento ningún problema inesperado. El único problema es que/etc/inittab
se ignora por completo, como describí anteriormente. - Examiné 3 distribuciones de Linux en vivo diferentes: Slax, Finnix y SysResCD. Todos tienen
/init
y ninguno tiene/etc/inittab
. Además, este artículo de Wiki concluye mi sospecha de que/sbin/init
no se invoca en absoluto.