मैं एक छोटा और पूरी तरह कार्यात्मक लाइव लिनक्स सीडी बनाने में कामयाब रहा जिसमें केवल कर्नेल (डिफ़ॉल्ट विकल्पों के साथ संकलित) और बिजीबॉक्स (डिफ़ॉल्ट विकल्पों के साथ संकलित + स्थैतिक, सभी एप्लेट मौजूद हैं, जिसमें शामिल हैं /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बिल्कुल भी नहीं है।