Eu consegui criar um CD Linux ao vivo pequeno e totalmente funcional que contém apenas o kernel (compilado com opções padrão) e o BusyBox (compilado com opções padrão + estático, todos os applets presentes, inclusive /sbin/init
). Eu não tive problemas para criar initrd
e preencher /dev
, /proc
e /sys
, e também eu não tive problemas em tudo com o meu /init
script shell.
Recentemente, li que o BusyBox suporta /etc/inittab
configurações (pelo menos em algum nível) e gostaria muito de fazer o seguinte:
- Esqueça meu
/init
script de shell e confie inteiramente na/etc/inittab
configuração. - Use o
/init
script de shell e a/etc/inittab
configuração.
Agora, o problema real - parece que /etc/inittab
é completamente ignorado quando minha distro é inicializada. Os sintomas são:
- Quando removo
/init
e saio apenas,/etc/inittab
acabo com o kernel panic. Minha suposição é que o kernel não é executado de/sbin/init
todo, ou que/sbin/init
não encontra (ou lê)/etc/inittab
. - Eu li que o BusyBox deve funcionar bem mesmo sem
/etc/inittab
. Então, eu removi ambos/init
e/etc/inittab
e adivinhem - Kernel panic novamente. - Tentei executar a
/sbin/init
partir do meu shell e depois de várias tentativas, que incluíamexec /sbin/init
,setsid /sbin/init
eexec setsid /sbin/init
acabei com o kernel panic. Com e sem o / etc / inittab presente no sistema de arquivos.
Aqui está o conteúdo do meu /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
Neste ponto, eu não me importo com o que seria o conteúdo /etc/inittab
, desde que eu tenha uma maneira de saber que a configuração realmente funciona. Eu tentei várias /etc/inittab
configurações, todas baseadas nas informações que encontrei aqui .
No mínimo, meu / etc / inittab continha apenas esta linha:
::sysinit:/bin/sh
Mais uma vez - acabei com o pânico do kernel e parece que /etc/inittab
foi ignorado.
Todas as sugestões de como forçar minha pequena distribuição ao vivo a funcionar bem com o BusyBox /etc/inittab
são muito apreciadas!
Atualizar:
- Apenas para esclarecer - não tenho problemas de pânico no kernel com meu
/init
script de shell atual, com e sem/etc/inittab
. Tudo funciona bem, meu/bin/ash
console funciona muito bem e não encontro problemas inesperados. O único problema é que/etc/inittab
é completamente ignorado, como descrevi acima. - Examinei 3 diferentes distribuições Linux ao vivo: Slax, Finnix e SysResCD. Todos eles têm
/init
e nenhum deles tem/etc/inittab
. Além disso, este artigo da Wiki conclui minha suspeita de que/sbin/init
não é invocada.