Tôi đã quản lý để tạo một đĩa CD Linux nhỏ và đầy đủ chức năng, chỉ chứa kernel (được biên dịch với các tùy chọn mặc định) và BusyBox (được biên dịch với các tùy chọn mặc định + tĩnh, tất cả các applet đều có, bao gồm /sbin/init
). Tôi không có vấn đề gì để tạo initrd
và cư trú /dev
, /proc
và /sys
tôi cũng không có vấn đề gì với /init
kịch bản shell của mình .
Gần đây tôi đọc được rằng BusyBox hỗ trợ các /etc/inittab
cấu hình (ít nhất là ở một mức nào đó) và tôi rất muốn thực hiện một trong những điều sau đây:
- Hãy quên đi
/init
kịch bản shell của tôi và hoàn toàn dựa vào/etc/inittab
cấu hình. - Sử dụng cả
/init
shell script và/etc/inittab
cấu hình.
Bây giờ vấn đề thực tế - có vẻ như /etc/inittab
hoàn toàn bị bỏ qua khi distro của tôi khởi động. Các triệu chứng là:
- Khi tôi gỡ bỏ
/init
và chỉ còn lại/etc/inittab
tôi kết thúc với sự hoảng loạn hạt nhân. Giả định của tôi là kernel hoàn toàn không thực thi/sbin/init
hoặc/sbin/init
không tìm thấy (hoặc đọc)/etc/inittab
. - Tôi đọc rằng BusyBox sẽ hoạt động tốt ngay cả khi không có
/etc/inittab
. Vì vậy, tôi loại bỏ cả hai/init
và/etc/inittab
và đoán những gì - hạt nhân hoảng loạn một lần nữa. - Tôi đã cố gắng thực hiện
/sbin/init
từ shell của mình và sau vài lần đoán bao gồmexec /sbin/init
,setsid /sbin/init
vàexec setsid /sbin/init
tôi đã kết thúc với sự hoảng loạn của kernel. Cả có và không có / etc / inittab đều có mặt trên hệ thống tệp.
Đây là nội dung của /init
tập lệnh shell của tôi :
#!/bin/sh
dmesg -n 1
mount -t devtmpfs none /dev
mount -t proc none /proc
mount -t sysfs none /sys
setsid cttyhack /bin/sh
Tại thời điểm này tôi không quan tâm nội dung của /etc/inittab
nó sẽ là gì, miễn là tôi có cách để biết rằng cấu hình thực sự hoạt động. Tôi đã thử một vài /etc/inittab
cấu hình, tất cả dựa trên thông tin mà tôi tìm thấy ở đây .
Ở mức tối thiểu, my / etc / inittab chỉ chứa một dòng này:
::sysinit:/bin/sh
Một lần nữa - tôi đã kết thúc với sự hoảng loạn hạt nhân và dường như điều đó /etc/inittab
đã bị bỏ qua.
Mọi đề xuất làm thế nào để buộc bản phân phối trực tiếp nhỏ của tôi hoạt động tốt với BusyBox /etc/inittab
đều được đánh giá cao!
Cập nhật:
- Chỉ cần làm cho nó rõ ràng - Tôi không gặp rắc rối hoảng loạn hạt nhân với
/init
tập lệnh shell hiện tại của mình cả có và không có/etc/inittab
. Tất cả đều hoạt động tốt,/bin/ash
bảng điều khiển của tôi hoạt động rất tốt và tôi không gặp phải bất kỳ rắc rối bất ngờ nào. Vấn đề duy nhất/etc/inittab
là hoàn toàn bị bỏ qua, như tôi đã mô tả ở trên. - Tôi đã kiểm tra 3 bản phân phối Linux trực tiếp khác nhau: Slax, Finnix và SysResCD. Tất cả trong số họ có
/init
và không ai trong số họ có/etc/inittab
. Ngoài ra , bài viết Wiki này kết luận sự nghi ngờ của tôi/sbin/init
không được viện dẫn.