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 initrdvà cư trú /dev, /procvà /systôi cũng không có vấn đề gì với /initkịch bản shell của mình .
Gần đây tôi đọc được rằng BusyBox hỗ trợ các /etc/inittabcấ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
/initkịch bản shell của tôi và hoàn toàn dựa vào/etc/inittabcấu hình. - Sử dụng cả
/initshell script và/etc/inittabcấu hình.
Bây giờ vấn đề thực tế - có vẻ như /etc/inittabhoà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ỏ
/initvà chỉ còn lại/etc/inittabtô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/inithoặc/sbin/initkhô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/initvà/etc/inittabvà đ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/inittừ shell của mình và sau vài lần đoán bao gồmexec /sbin/init,setsid /sbin/initvàexec setsid /sbin/inittô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 /inittậ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/inittabnó 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/inittabcấ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
/inittậ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/ashbả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/inittablà 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ó
/initvà 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/initkhông được viện dẫn.