Мне удалось создать небольшой и полностью функциональный live CD с Linux, который содержит только ядро (скомпилировано с параметрами по умолчанию) и BusyBox (скомпилировано с параметрами по умолчанию + static, все апплеты присутствуют, в том числе /sbin/init
). У меня не было проблем с созданием initrd
и заполнением /dev
, /proc
а /sys
также у меня не было проблем с моим /init
сценарием оболочки.
Недавно я прочитал, что BusyBox поддерживает /etc/inittab
конфигурации (по крайней мере, до некоторого уровня), и я очень хотел бы сделать одно из следующего:
- Забудьте о моем
/init
сценарии оболочки и полностью полагайтесь на/etc/inittab
конфигурацию. - Используйте как
/init
сценарий оболочки, так и/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
сценария оболочки:
#!/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
был проигнорирован.
Любые предложения, как заставить мой маленький живой дистрибутив нормально работать с BusyBox, /etc/inittab
очень ценятся!
Обновить:
- Просто чтобы прояснить - у меня нет проблем с паникой ядра с моим текущим
/init
сценарием оболочки как с, так и без/etc/inittab
. Все работает нормально, моя/bin/ash
консоль работает отлично, и я не испытываю неожиданных проблем. Единственная проблема заключается в том, что/etc/inittab
полностью игнорируется, как я описал выше. - Я изучил 3 разных дистрибутива Linux: Slax, Finnix и SysResCD. Все они есть,
/init
и никто из них не имеет/etc/inittab
. Кроме того, эта статья Wiki завершает мое подозрение, которое/sbin/init
вообще не вызывается.