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 initrddan mengisi /dev, /procdan /sysdan juga saya tidak memiliki masalah sama sekali dengan saya /initshell script.
Baru-baru ini saya membaca bahwa BusyBox mendukung /etc/inittabkonfigurasi (setidaknya ke tingkat tertentu) dan saya ingin melakukan salah satu dari yang berikut:
- Lupakan
/initskrip shell saya dan bergantung sepenuhnya pada/etc/inittabkonfigurasi. - Gunakan
/initskrip shell dan/etc/inittabkonfigurasi.
Sekarang masalah sebenarnya - sepertinya /etc/inittabbenar-benar diabaikan ketika distro saya boot. Gejala-gejalanya adalah:
- Ketika saya menghapus
/initdan meninggalkan hanya/etc/inittabsaya berakhir dengan panik kernel. Asumsi saya adalah bahwa kernel tidak mengeksekusi/sbin/initsama sekali, atau yang/sbin/inittidak menemukan (atau membaca)/etc/inittab. - Saya membaca bahwa BusyBox akan berfungsi dengan baik bahkan tanpa
/etc/inittab. Jadi, saya dihapus baik/initdan/etc/inittabdan coba tebak - kernel panik lagi. - Saya mencoba mengeksekusi
/sbin/initdari shell saya dan setelah beberapa tebakan yang termasukexec /sbin/init,setsid /sbin/initdanexec setsid /sbin/initsaya berakhir dengan panik kernel. Baik dengan dan tanpa / etc / inittab ada pada sistem file.
Inilah isi /initskrip 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/inittabakan menjadi, selama saya punya cara untuk mengetahui bahwa konfigurasi di sana benar-benar berfungsi. Saya mencoba beberapa /etc/inittabkonfigurasi, 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/inittabitu diabaikan.
Ada saran bagaimana memaksa distro live kecil saya bekerja dengan BusyBox's /etc/inittabsangat dihargai!
Memperbarui:
- Hanya untuk memperjelas - Saya tidak memiliki masalah panik kernel dengan
/initskrip shell saya saat ini dengan dan tanpa/etc/inittab. Semuanya bekerja dengan baik,/bin/ashkonsol saya berfungsi dengan baik dan saya tidak mengalami masalah yang tidak terduga. Satu-satunya masalah adalah yang/etc/inittabsepenuhnya diabaikan, seperti yang saya jelaskan di atas. - Saya memeriksa 3 distribusi Linux langsung yang berbeda: Slax, Finnix dan SysResCD. Mereka semua memiliki
/initdan tidak ada yang memiliki/etc/inittab. Selain itu artikel Wiki ini menyimpulkan kecurigaan saya bahwa/sbin/inittidak ada sama sekali.