Saya berhasil membuat CD Linux live kecil dan berfungsi penuh yang hanya berisi kernel (dikompilasi dengan opsi default) dan BusyBox (dikompilasi dengan opsi default + statis, semua applet hadir, termasuk /sbin/init
). Saya tidak memiliki masalah untuk membuat initrd
dan mengisi /dev
, /proc
dan /sys
dan juga saya tidak memiliki masalah sama sekali dengan saya /init
shell script.
Baru-baru ini saya membaca bahwa BusyBox mendukung /etc/inittab
konfigurasi (setidaknya ke tingkat tertentu) dan saya ingin melakukan salah satu dari yang berikut:
- Lupakan
/init
skrip shell saya dan bergantung sepenuhnya pada/etc/inittab
konfigurasi. - Gunakan
/init
skrip shell dan/etc/inittab
konfigurasi.
Sekarang masalah sebenarnya - sepertinya /etc/inittab
benar-benar diabaikan ketika distro saya boot. Gejala-gejalanya adalah:
- Ketika saya menghapus
/init
dan meninggalkan hanya/etc/inittab
saya berakhir dengan panik kernel. Asumsi saya adalah bahwa kernel tidak mengeksekusi/sbin/init
sama sekali, atau yang/sbin/init
tidak menemukan (atau membaca)/etc/inittab
. - Saya membaca bahwa BusyBox akan berfungsi dengan baik bahkan tanpa
/etc/inittab
. Jadi, saya dihapus baik/init
dan/etc/inittab
dan coba tebak - kernel panik lagi. - Saya mencoba mengeksekusi
/sbin/init
dari shell saya dan setelah beberapa tebakan yang termasukexec /sbin/init
,setsid /sbin/init
danexec setsid /sbin/init
saya berakhir dengan panik kernel. Baik dengan dan tanpa / etc / inittab ada pada sistem file.
Inilah isi /init
skrip shell saya :
#!/bin/sh
dmesg -n 1
mount -t devtmpfs none /dev
mount -t proc none /proc
mount -t sysfs none /sys
setsid cttyhack /bin/sh
Pada titik ini saya tidak peduli apa isi /etc/inittab
akan menjadi, selama saya punya cara untuk mengetahui bahwa konfigurasi di sana benar-benar berfungsi. Saya mencoba beberapa /etc/inittab
konfigurasi, semua berdasarkan pada informasi yang saya temukan di sini .
Minimal saya / etc / inittab hanya berisi satu baris ini:
::sysinit:/bin/sh
Lagi - saya berakhir dengan panik kernel dan tampaknya /etc/inittab
itu diabaikan.
Ada saran bagaimana memaksa distro live kecil saya bekerja dengan BusyBox's /etc/inittab
sangat dihargai!
Memperbarui:
- Hanya untuk memperjelas - Saya tidak memiliki masalah panik kernel dengan
/init
skrip shell saya saat ini dengan dan tanpa/etc/inittab
. Semuanya bekerja dengan baik,/bin/ash
konsol saya berfungsi dengan baik dan saya tidak mengalami masalah yang tidak terduga. Satu-satunya masalah adalah yang/etc/inittab
sepenuhnya diabaikan, seperti yang saya jelaskan di atas. - Saya memeriksa 3 distribusi Linux langsung yang berbeda: Slax, Finnix dan SysResCD. Mereka semua memiliki
/init
dan tidak ada yang memiliki/etc/inittab
. Selain itu artikel Wiki ini menyimpulkan kecurigaan saya bahwa/sbin/init
tidak ada sama sekali.