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 initrde preencher /dev, /proce /sys, e também eu não tive problemas em tudo com o meu /initscript shell.
Recentemente, li que o BusyBox suporta /etc/inittabconfigurações (pelo menos em algum nível) e gostaria muito de fazer o seguinte:
- Esqueça meu
/initscript de shell e confie inteiramente na/etc/inittabconfiguração. - Use o
/initscript de shell e a/etc/inittabconfiguração.
Agora, o problema real - parece que /etc/inittabé completamente ignorado quando minha distro é inicializada. Os sintomas são:
- Quando removo
/inite saio apenas,/etc/inittabacabo com o kernel panic. Minha suposição é que o kernel não é executado de/sbin/inittodo, ou que/sbin/initnão encontra (ou lê)/etc/inittab. - Eu li que o BusyBox deve funcionar bem mesmo sem
/etc/inittab. Então, eu removi ambos/inite/etc/inittabe adivinhem - Kernel panic novamente. - Tentei executar a
/sbin/initpartir do meu shell e depois de várias tentativas, que incluíamexec /sbin/init,setsid /sbin/initeexec setsid /sbin/initacabei com o kernel panic. Com e sem o / etc / inittab presente no sistema de arquivos.
Aqui está o conteúdo do meu /initscript 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/inittabconfiguraçõ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/inittabfoi ignorado.
Todas as sugestões de como forçar minha pequena distribuição ao vivo a funcionar bem com o BusyBox /etc/inittabsão muito apreciadas!
Atualizar:
- Apenas para esclarecer - não tenho problemas de pânico no kernel com meu
/initscript de shell atual, com e sem/etc/inittab. Tudo funciona bem, meu/bin/ashconsole 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
/inite nenhum deles tem/etc/inittab. Além disso, este artigo da Wiki conclui minha suspeita de que/sbin/initnão é invocada.