मैं एक छोटा और पूरी तरह कार्यात्मक लाइव लिनक्स सीडी बनाने में कामयाब रहा जिसमें केवल कर्नेल (डिफ़ॉल्ट विकल्पों के साथ संकलित) और बिजीबॉक्स (डिफ़ॉल्ट विकल्पों के साथ संकलित + स्थैतिक, सभी एप्लेट मौजूद हैं, जिसमें शामिल हैं /sbin/init
)। मेरे पास बनाने initrd
और आबाद करने के लिए कोई मुद्दा नहीं था /dev
, /proc
और /sys
साथ ही मेरे पास अपनी /init
शेल स्क्रिप्ट के साथ कोई समस्या नहीं थी ।
हाल ही में मैंने पढ़ा कि बिजीबॉक्स /etc/inittab
कॉन्फ़िगरेशन (कम से कम कुछ स्तर तक) का समर्थन करता है और मैं बहुत निम्न में से किसी एक को करना चाहता हूं:
- मेरी
/init
शेल स्क्रिप्ट के बारे में भूल जाओ और पूरी तरह से/etc/inittab
कॉन्फ़िगरेशन पर भरोसा करो । /init
शेल स्क्रिप्ट और/etc/inittab
कॉन्फ़िगरेशन दोनों का उपयोग करें ।
अब वास्तविक समस्या है - ऐसा लगता है कि /etc/inittab
जब मेरा डिस्ट्रो बूट शुरू हो जाता है तो इसे पूरी तरह से नजरअंदाज कर दिया जाता है। लक्षण हैं:
- जब मैं हटाता हूं
/init
और छोड़ता हूं तो मैं/etc/inittab
कर्नेल पैनिक करता हूं। मेरी धारणा यह है कि कर्नेल बिल्कुल भी निष्पादित नहीं करता है/sbin/init
, या जो/sbin/init
नहीं ढूंढता (या पढ़ता है)/etc/inittab
। - मैंने पढ़ा कि बिजीबॉक्स को भी बिना ठीक काम करना चाहिए
/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
इसे अनदेखा कर दिया गया।
किसी भी सुझाव कैसे व्यस्त व्यस्त के साथ ठीक काम करने के लिए मेरे छोटे रहते distro को मजबूर करने के /etc/inittab
लिए बहुत सराहना की है!
अपडेट करें:
- बस यह स्पष्ट करने के लिए - मुझे अपनी वर्तमान शेल स्क्रिप्ट के साथ और बिना दोनों के साथ कर्नेल पैनिक की परेशानी नहीं है । यह सब ठीक काम करता है, मेरा कंसोल बढ़िया काम करता है और मैं किसी भी अप्रत्याशित परेशानी का अनुभव नहीं करता हूं। एकमात्र मुद्दा यह है कि पूरी तरह से अनदेखा किया गया है, जैसा कि मैंने ऊपर वर्णित किया है।
/init
/etc/inittab
/bin/ash
/etc/inittab
- मैंने 3 अलग-अलग लाइव लिनक्स वितरणों की जांच की: स्लैक्स, फिनिक्स और SysResCD। उन सभी के पास है
/init
और उनमें से कोई भी नहीं है/etc/inittab
। इसके अलावा यह विकी लेख मेरे संदेह को समाप्त करता है जो/sbin/init
बिल्कुल भी नहीं है।