नहीं, पीएक्सई बूटिंग के लिए कोई डिफ़ॉल्ट कर्नेल कॉन्फ़िगरेशन नहीं है।
एक अखंड कर्नेल को संकलित करना संभव है जो स्वचालित रूप से बुनियादी बीओओटीपी / डीएचसीपी का उपयोग करके खुद को एक आईपी पता प्राप्त करने का प्रयास करेगा, लेकिन यह वह तरीका नहीं है जैसा कि आमतौर पर किया जाता है।
आधुनिक दृष्टिकोण एक बूटलोडर (जैसे pxelinux या iPXE) का उपयोग करना है, जो दो फ़ाइलों को डाउनलोड करेगा: कर्नेल और इनट्राम्रफ़्स / initrd फ़ाइल। Initramfs / initrd फ़ाइल में कर्नेल मॉड्यूल हो सकते हैं (आवश्यक हार्डवेयर लोड करने के लिए, मिलान हार्डवेयर का पता लगाने पर) और महत्वपूर्ण हार्डवेयर के आरंभ के लिए आवश्यक उपयोगिताओं ताकि बूट आगे बढ़ सके। नेटवर्क से बूट करने के मामले में, इसमें नेटवर्क इंटरफेस का आरंभ शामिल है। उसके बाद क्या होता है यह initramfs / initrd फ़ाइल में निर्मित कोड / स्क्रिप्ट के संयोजन से निर्धारित होता है, और बूट लोडर द्वारा कर्नेल को दिए गए बूट विकल्प (आमतौर पर APPEND कीवर्ड का उपयोग करके)।
मैं udhcpd से बहुत परिचित नहीं हूं, लेकिन यह एक बहुत ही कम डीएचसीपी क्लाइंट प्रतीत होता है। तो इसके निम्नलिखित गुण हो सकते हैं:
- यह समय से पहले नेटवर्क इंटरफ़ेस को संचालित करने की उम्मीद कर सकता है (जैसे "ifconfig eth0 up" या "ip लिंक सेट eth0 up", यह निर्भर करता है कि क्या पुराना "ifconfig" कॉन्फ़िगरेशन कमांड या नया "ip" उपलब्ध है)
- यह डीएचसीपी मापदंडों को प्राप्त करने के बाद वास्तविक इंटरफ़ेस सेट-अप को संभाल नहीं सकता है: इसके बजाय, यह उन्हें एक स्क्रिप्ट में पास करेगा, जिसमें "ifconfig", "ip" और / या "मार्ग" जैसी कमांड का उपयोग करने की उम्मीद है। प्राप्त मापदंडों के अनुसार नेटवर्क इंटरफ़ेस सेट करें।
मुझे लगता है कि आप एक कर्नेल के निर्माण के विचार से अनावश्यक रूप से ठीक हो गए होंगे; यह आपकी समस्या का मूल कारण होने की संभावना नहीं है। आप जिक्र कर रहे हैं https://bugs.busybox.net/show_bug.cgi?id=1963 जो अब 7 साल पुरानी जानकारी है। (पूर्ण विशेषताओं वाले लिनक्स वितरण में, "ifup -a" सभी नेटवर्क इंटरफेस को इनिशियलाइज़ करने के लिए एक सामान्य उच्च-स्तरीय कमांड है; क्लॉन्जिला जैसे कॉम्पैक्ट सेट-अप्स में ifup कमांड आमतौर पर मौजूद नहीं है।)
आपने कहा कि आपके प्रयास अब तक एक आतंक के साथ समाप्त हो गए हैं। इसका मतलब है कि कर्नेल रूट फाइल सिस्टम को एक्सेस करने में विफल हो रहा है - और क्लोनज़िला के साथ, रूट फाइल सिस्टम फाइलसिस्टम.squashfs फाइल में है, जिसे नेटवर्क इंटरफेस को कॉन्फ़िगर करने के बाद initrd द्वारा डाउनलोड किया जाना चाहिए।
तो क्या आप जानते हैं कि आपके प्रयासों में क्या गलत हुआ? क्या आपने विंडशार्क या इसी तरह के नेटवर्क ट्रैफिक की निगरानी की है?
समस्या निवारण नेटवर्क बूट के साथ समस्या यह है कि जब बूट समय पर कुछ गलत होता है, तो लिनक्स कर्नेल और संबंधित उपयोगिताओं को अक्सर इतनी जानकारी से बाहर कर दिया जाता है कि पहली त्रुटि संदेश स्क्रीन से स्क्रॉल हो जाते हैं। और आमतौर पर वह पहली त्रुटि संदेश सबसे महत्वपूर्ण है: यह बहुत संभावना है कि बाद की सभी त्रुटियां उस पहली विफलता के परिणाम हैं।
नेटवर्क ट्रैफ़िक की निगरानी करके, आप कुछ कठिन तथ्य प्राप्त कर सकते हैं:
- क्या बूटलोडर TFTP सर्वर से कर्नेल और initrd फ़ाइल को सफलतापूर्वक डाउनलोड करेगा?
- बूटलोडर चालू होने के बाद, क्या आप एक और डीएचसीपी क्वेरी देख सकते हैं? यह udhcpd होगा जो नेटवर्क पैरामीटर प्राप्त कर रहा है।
- उसके बाद, filesystem.squashfs फ़ाइल के लिए एक TFTP अनुरोध होना चाहिए। यह सफल है या नहीं? यदि नहीं, तो वास्तविक टीएफटीपी अनुरोध क्या है और यह टीएफटीपी सर्वर की फाइलसिस्टम में किस पथनाम को मैप करता है? क्या वह फ़ाइल सही पथनाम पर मौजूद है, और क्या TFTP सर्वर को भेजने की अनुमति है?
क्या आपने Clonezilla Live की कोशिश की है, Clonezilla का एक संस्करण जो स्पष्ट रूप से PXE netbootable होने का इरादा रखता है? http://clonezilla.org/livepxe.php