Мне удалось создать небольшой и полностью функциональный 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вообще не вызывается.