Sono riuscito a creare un CD Linux live piccolo e perfettamente funzionante che contiene solo kernel (compilato con opzioni predefinite) e BusyBox (compilato con opzioni predefinite + statico, tutte le applet presenti, incluso /sbin/init
). Non ho avuto problemi da creare initrd
e popolare /dev
, /proc
e non /sys
ho avuto problemi con il mio /init
script shell.
Di recente ho letto che BusyBox supporta le /etc/inittab
configurazioni (almeno a un certo livello) e mi piacerebbe molto fare una delle seguenti operazioni:
- Dimentica il mio
/init
script shell e fai affidamento interamente sulla/etc/inittab
configurazione. - Usa sia
/init
lo script della shell che la/etc/inittab
configurazione.
Ora il vero problema - sembra che /etc/inittab
venga completamente ignorato quando la mia distribuzione si avvia. I sintomi sono:
- Quando rimuovo
/init
e lascio solo/etc/inittab
finisco con il panico del kernel. La mia ipotesi è che il kernel non viene eseguito/sbin/init
affatto o che/sbin/init
non trova (o legge)/etc/inittab
. - Ho letto che BusyBox dovrebbe funzionare bene anche senza
/etc/inittab
. Così, ho rimosso sia/init
e/etc/inittab
e indovinate - Kernel Panic di nuovo. - Ho provato ad eseguire
/sbin/init
dalla mia shell e dopo diverse ipotesi che includevanoexec /sbin/init
,setsid /sbin/init
eexec setsid /sbin/init
ho finito con il panico del kernel. Sia con che senza / etc / inittab presenti sul file system.
Ecco il contenuto del mio /init
script 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
A questo punto non mi interessa quale sia il contenuto di /etc/inittab
, purché abbia un modo per sapere che la configurazione lì effettivamente funziona. Ho provato diverse /etc/inittab
configurazioni, tutte basate sulle informazioni che ho trovato qui .
Come minimo mio / etc / inittab conteneva solo questa riga:
::sysinit:/bin/sh
Ancora una volta - ho finito con il panico del kernel e sembra che sia /etc/inittab
stato ignorato.
Qualche suggerimento su come forzare la mia piccola distribuzione live a funzionare bene con BusyBox /etc/inittab
è molto apprezzato!
Aggiornare:
- Giusto per chiarire: non ho problemi di panico nel kernel con il mio attuale
/init
script shell sia con che senza/etc/inittab
. Funziona tutto bene, la mia/bin/ash
console funziona benissimo e non ho problemi inaspettati. L'unico problema è che/etc/inittab
viene completamente ignorato, come ho descritto sopra. - Ho esaminato 3 diverse distribuzioni Linux live: Slax, Finnix e SysResCD. Tutti loro hanno
/init
e nessuno ha/etc/inittab
. Inoltre questo articolo di Wiki conclude il mio sospetto che/sbin/init
non è stato affatto invocato.