एमकेएनबीआई - क्लाउड में ऑनलाइन

यह कमांड mknbi है जिसे हमारे कई मुफ्त ऑनलाइन वर्कस्टेशन जैसे कि उबंटू ऑनलाइन, फेडोरा ऑनलाइन, विंडोज ऑनलाइन एमुलेटर या मैक ओएस ऑनलाइन एमुलेटर का उपयोग करके ऑनवर्क्स फ्री होस्टिंग प्रदाता में चलाया जा सकता है।

कार्यक्रम:

नाम


mknbi - नेटवर्क बूट करने योग्य छवि बनाएं

SYNOPSIS


mknbi --संस्करण

mknbi --फॉर्मेट =प्रारूप --लक्ष्य=लक्ष्य [--आउटपुट =निर्गम संचिका] लक्ष्य-विशिष्ट-तर्क

mkelf-linux [--आउटपुट =निर्गम संचिका] कर्नेलछवि [रैमडिस्क]

mknbi-linux [--आउटपुट =निर्गम संचिका] कर्नेलछवि [रैमडिस्क]

mknbi-रोम [--आउटपुट =निर्गम संचिका] .z?rom-फ़ाइल

mkelf-img [--आउटपुट =निर्गम संचिका] .z?img-फ़ाइल

mkelf-मेनू [--आउटपुट =निर्गम संचिका] [dataimage]

mknbi-मेनू [--आउटपुट =निर्गम संचिका] [dataimage]

एमकेएलएफ-एनएफएल [--आउटपुट =निर्गम संचिका] [dataimage]

एमकेएनबीआई-एनएफएल [--आउटपुट =निर्गम संचिका] [dataimage]

mkelf-lua [--आउटपुट =निर्गम संचिका] लुआबिन

mknbi-fdos [--आउटपुट =निर्गम संचिका] कर्नेल.sys फ़्लॉपीछवि

mknbi-डॉस [--आउटपुट =निर्गम संचिका] फ़्लॉपीछवि

वर्णन


mknbi एक प्रोग्राम है जो विभिन्न ऑपरेटिंग सिस्टम के लिए नेटवर्क बूट करने योग्य छवियां बनाता है
ईथरबूट या नेटबूट द्वारा नेटवर्क लोडिंग के लिए उपयुक्त, जो ROM बूट लोडर हैं। अगर आप
यदि आप पीएक्सई का उपयोग करके बूट करना चाह रहे हैं, तो आगे न देखें, एमकेएनबीआई वह नहीं है जो आप चाहते हैं। आप शायद
आप PXELINUX जैसा कुछ चाहते हैं जो SYSLINUX पैकेज का हिस्सा है।

mknbi --version वर्तमान संस्करण को प्रिंट करता है। समस्याओं की रिपोर्ट करने से पहले इसका उपयोग करें.

mknbi के साथ आह्वान किया जा सकता है --प्रारूप और --लक्ष्य इसमें विकल्प या लिंक बनाये जा सकते हैं
प्रारूप के अंतर्गत और विशिष्ट नामों को लक्षित करें। उदाहरण के लिए mkelf-linux, mknbi के समान है
--format=elf --target=linux.

--प्रारूप=प्रारूप आउटपुट का प्रारूप निर्दिष्ट करें. वर्तमान में एनबीआई और एल्फ उपलब्ध हैं।
ईएलएफ प्रारूप केवल लिनक्स और मेनू के साथ काम करता है। अन्यथा मंगलाचरण 'के लिए' के ​​समान ही है
mknbi. नीचे दी गई चर्चाओं में, mknbi फॉर्म का उपयोग किया गया है।

--लक्ष्य=लक्ष्य लक्ष्य बाइनरी निर्दिष्ट करें. वर्तमान में लिनक्स, मेनू, रोम, एफडीओएस उपलब्ध हैं
और क्या करें? mknbi FreeBSD को बूट करने के लिए इसकी आवश्यकता नहीं है।

--आउटपुट=निर्गम संचिका आउटपुट फ़ाइल निर्दिष्ट करें, सभी प्रकारों के साथ उपयोग किया जा सकता है। स्टडआउट है
चूक।

निष्पादन योग्य होने से पहले पैकेज को गंतव्य स्थान पर स्थापित किया जाना चाहिए
रन, क्योंकि यह लाइब्रेरी फाइलों की तलाश करता है।

प्रत्येक प्रकार का अलग-अलग वर्णन किया जाएगा।

एमकेएलएफ-लिनक्स


mkelf-linux और mknbi-linux लिनक्स कर्नेल छवि से एक बूट छवि बनाता है, या तो एक zImage
या एक bzImage.

एमकेएलएफ-लिनक्स विकल्प


--परम=स्ट्रिंग डिफ़ॉल्ट पैरामीटर स्ट्रिंग को निर्दिष्ट पैरामीटर स्ट्रिंग से बदलें। इस विकल्प
निम्नलिखित सभी विकल्पों को ओवरराइड करता है इसलिए आपको पता होना चाहिए कि आप क्या कर रहे हैं।

--परिशिष्ट=स्ट्रिंग निर्दिष्ट स्ट्रिंग को मौजूदा पैरामीटर स्ट्रिंग में जोड़ता है। इस विकल्प
अन्य पैरामीटर विकल्पों के मूल्यांकन के बाद संचालित होता है।

--रूटडिरो=रूटडिर बूट सर्वर से एनएफएस के माध्यम से माउंट करने के लिए निर्देशिका का नाम परिभाषित करें।

इस विकल्प की अनुपस्थिति में, डिफ़ॉल्ट निर्देशिका "/tftpboot/" का उपयोग करना है%s, साथ में
la %s बूटिंग सिस्टम के होस्टनाम या आईपी-पते का प्रतिनिधित्व करना, इस पर निर्भर करता है
होस्टनाम विशेषता BOOTP/DHCP उत्तर में मौजूद है।

यदि "रोम" दिया गया है, और यदि BOOTP/DHCP सर्वर RFC 1497 एक्सटेंशन को संभालने में सक्षम है,
रूटपाथ विकल्प का मान रूट निर्देशिका के रूप में उपयोग किया जाता है।

यदि विकल्प को दिया गया नाम " से शुरू होता है/ Dev /", संबंधित डिवाइस का उपयोग इस प्रकार किया जाता है
रूट डिवाइस, और कोई एनएफएस निर्देशिका माउंट नहीं की जाएगी।

--रूटमोड= "ro|rw" परिभाषित करता है कि रूट डिवाइस को केवल-पढ़ने के लिए माउंट किया जाएगा या पढ़ने-लिखने के लिए
क्रमश। इस पैरामीटर के बिना, डिफ़ॉल्ट "rw" है।

--आईपी=स्ट्रिंग क्लाइंट और सर्वर आईपी पते को परिभाषित करें।

इस विकल्प की अनुपस्थिति में कोई आईपी पता परिभाषित नहीं किया गया है, और कर्नेल निर्धारित करेगा
आईपी ​​​​पता स्वयं, आमतौर पर डीएचसीपी, बीओओटीपी या आरएआरपी का उपयोग करके। ध्यान दें कि कर्नेल
क्वेरी है in इसके अलावा सेवा मेरे बूट्रोम द्वारा बनाई गई क्वेरी, और आईपी: कर्नेल स्तर की आवश्यकता है
ऑटोकॉन्फिगरेशन (CONFIG_IP_PNP) सुविधा को कर्नेल में शामिल किया जाएगा।

महत्वपूर्ण नोट: लिनक्स कर्नेल 2.2.x में जहां x >= 18, और 2.4.x जहां x >= 5, यह है
आवश्यक आईपी ​​का कारण बनने के लिए अगले पैराग्राफ में सक्षम विकल्पों में से एक को निर्दिष्ट करने के लिए
ऑटोकॉन्फ़िगरेशन सक्रिय किया जाना है. पिछले कर्नेल के विपरीत, आईपी ऑटोकॉन्फ़िगरेशन करता है
डिफ़ॉल्ट रूप से नहीं होता. यह भी ध्यान दें कि आईपी ऑटोकॉन्फिगरेशन और एनएफएसरूट के जाने की संभावना है
लिनक्स 2.6 में दूर और रैमडिस्क और यूजरस्पेस का उपयोग करके यूजरस्पेस आईपी कॉन्फ़िगरेशन विधियां
डीएचसीपी डेमॉन को अब प्राथमिकता दी जाती है।

यदि निम्नलिखित में से एक: "बंद, कोई नहीं, चालू, कोई, डीएचसीपी, बूटपी, आरआरपी, दोनों", दिया गया है, तो
विकल्प को कर्नेल में असंशोधित रूप से पारित किया जाएगा और उस ऑटोकॉन्फ़िग विकल्प का कारण बनेगा
चुना।

यदि इस विकल्प के तर्क के रूप में "रोम" दिया गया है, तो एनएफएस रूट के लिए सभी आवश्यक आईपी पते
माउंटिंग को सर्वर से प्राप्त बूट्रोम उत्तर BOOTP/DHCP से विरासत में प्राप्त किया जाएगा।

बूट छवि के संकलन के दौरान पतों को परिभाषित करना भी संभव है। फिर, सब
पतों को कोलन द्वारा अलग किया जाना चाहिए, और निम्नलिखित तरीके से क्रमबद्ध किया जाना चाहिए:

"--आईपी ="क्लाइंट: सर्वर: गेटवे: नेटमास्क: होस्टनाम [: देव [: प्रोटो]]

इस विकल्प का उपयोग करना mkelf-linux स्वचालित रूप से सिस्टम नामों को दशमलव आईपी में परिवर्तित कर देगा
इस स्ट्रिंग में पहली तीन प्रविष्टियों के पते। मेजबाननाम प्रविष्टि का उपयोग किया जाएगा
बूट किए गए लिनक्स डिस्कलेस क्लाइंट का होस्ट नाम सेट करने के लिए कर्नेल। जब एक से अधिक
डिस्क रहित क्लाइंट में नेटवर्क इंटरफ़ेस स्थापित है, नाम निर्दिष्ट करना संभव है
वैकल्पिक देकर एनएफएस के माध्यम से रूट निर्देशिका को माउंट करने के लिए इंटरफ़ेस का उपयोग करें
मान "देव"। यह प्रविष्टि स्ट्रिंग "एथ" से शुरू होनी चाहिए और उसके बाद 0 से एक संख्या होनी चाहिए
9. हालाँकि, यदि क्लाइंट में केवल एक इंटरफ़ेस स्थापित है, तो यह देव प्रविष्टि सहित
पूर्ववर्ती अर्धविराम को छोड़ा जा सकता है. आद्य तर्क आईपी ऑटोकॉन्फ़िगरेशन में से एक है
ऊपर सूचीबद्ध विकल्पों को सक्षम करना। (लेखक: यह मेरे लिए स्पष्ट नहीं है कि आईपी क्या है
ऑटोकॉन्फ़िगरेशन तब होता है जब पैरामीटर पहले से ही निर्दिष्ट होते हैं। शायद यह हासिल करना है
पैरामीटर निर्दिष्ट नहीं हैं, उदाहरण के लिए एनआईएस डोमेन।)

- तीसरा आधार =शीर्ष|एसिस|0xNNNNNNNN रैमडिस्क लोड पता सेट करें। "शीर्ष" रैमडिस्क को ले जाता है
कर्नेल पर जाने से पहले मेमोरी के शीर्ष पर जाएँ। यदि rdbase नहीं है तो यह डिफ़ॉल्ट है
निर्दिष्ट. इस विकल्प के लिए आवश्यक है कि फर्स्ट-लिनक्स का कर्नेल आकार सही ढंग से काम करे। "जैसा है"
यदि कर्नेल कम लोड है तो इसे 0x100000 (1MB) पर लोड करता है; या इसे कर्नेल के ठीक बाद छोड़ देता है
मेमोरी में, यदि कर्नेल अधिक लोड किया गया है। इस विकल्प के काम करने के लिए, कर्नेल को सक्षम होना चाहिए
इन पतों पर रैमडिस्क को संभालने के लिए। 0xNNNNNNN रैमडिस्क को हेक्स पते पर ले जाता है
निर्दिष्ट. एक उपयुक्त पता निर्दिष्ट करने का दायित्व उपयोगकर्ता पर है जो उसे स्वीकार्य हो
कर्नेल और किसी भी अन्य सेगमेंट के साथ ओवरलैप नहीं होता है। ईथरबूट पते को नीचे की ओर पूर्णांकित करेगा
4k का गुणज (अंतिम 3 अंक शून्य तक)।

--rdnopad डिफ़ॉल्ट रूप से, ईथरबूट पैड (शून्य के साथ) किसी भी आकार के दिए गए initrd को एकाधिक में बदल देता है
4k बाइट्स (मेमोरी पेज सीमा के अनुरूप)। यदि पैडिंग है तो उसे अक्षम करने के लिए इस विकल्प का उपयोग करें
समस्या का कारण बनता है.

--प्रथम32=कार्यक्रम डिफ़ॉल्ट प्रथम चरण सेटअप प्रोग्राम को ओवरराइड करें। इसका उपयोग कॉल करने के लिए किया जा सकता है
ईथरबूट कोड का विस्तार, जो अतिरिक्त उपयोगी कार्यक्षमता का मार्ग प्रशस्त करता है
ईथरबूट फ़ुटप्रिंट के आकार को बढ़ाए बिना। --first32 ईएलएफ द्वारा निहित है
प्रारूप.

--उन्नति इस विकल्प का उपयोग --first32 के साथ संयोजन में किया जाता है और यह केवल इसके साथ ही मान्य है
ईथरबूट लोडर को इंगित करने का विकल्प कि बुलाया गया प्रोग्राम लोडर पर वापस आ जाएगा
और इसलिए ईथरबूट को नेटवर्क डिवाइस को अक्षम नहीं करना चाहिए जैसा कि प्रोग्राम के मामले में होता है
ईथरबूट पर कभी वापस नहीं आएगा।

--रिलोकसेग=segaddr इस विकल्प का उपयोग पहले लिनक्स के स्थानांतरण, बूट, को निर्दिष्ट करने के लिए किया जाता है।
सेटअप, और पैरामीटर सेगमेंट दूसरे 64k बैंड पर। वर्तमान में केवल मान्य मान ही हैं
0x9000 और 0x8000, 0x90000 और 0x80000 से ऊपर के रैखिक पतों के अनुरूप।
डिफ़ॉल्ट 0x9000 है. आमतौर पर आप इस विकल्प का उपयोग करते हैं यदि आपने ईथरबूट को 0x84000 पर स्थानांतरित किया है
0x90000 सेगमेंट में DOC जैसे अन्य कोड से बचने के लिए। Linux कर्नेल को समर्थन करना चाहिए
स्थानांतरण जिसका तात्पर्य 2.4 कर्नेल या बाद का संस्करण है। --relocseg केवल ELF या के साथ विश्वसनीय रूप से काम करता है
--प्रथम32=.

मेम=memsize यह एक कमांड लाइन विकल्प नहीं है बल्कि एक कर्नेल पैरामीटर है जिसे इंटरसेप्ट किया गया है
पहले 32 चरण द्वारा और लिनक्स की व्याख्या से मेल खाने के लिए मेमोरी के शीर्ष के रूप में उपयोग किया जाता है।
memsize गिबिबाइट्स (गुना 2^30) को इंगित करने के लिए "जी" प्रत्यय लगाया जा सकता है, इंगित करने के लिए "एम" लगाया जा सकता है
मेबिबाइट्स (गुना 2^20) या किबिबाइट्स (गुना 2^10) को इंगित करने के लिए "के"। ध्यान दें कि प्रत्यय
अपरकेस हैं. इस कर्नेल पैरामीटर को --append= या विकल्प-129 में निर्दिष्ट किया जा सकता है
डीएचसीपी/बीओओटीपी रिकॉर्ड।

प्रोग्राम को इस प्रकार चलाएँ:

mkelf-linux कर्नेल-छवि [रैमडिस्क-छवि] > linux.nb

फिर हटो linux.nb जहां नेटवर्क बूटिंग प्रक्रिया इसे ढूंढने की अपेक्षा करती है।

एमकेएलएफ-लिनक्स बूट/डीएचसीपी विक्रेता टैग


mkelf-linux लिनक्स कर्नेल की शुरुआत में एक स्टार्टअप कोड शामिल है जो सक्षम है
कुछ डीएचसीपी विक्रेता परिभाषित विकल्पों का पता लगाएं। इनका उपयोग कर्नेल को संशोधित करने के लिए किया जा सकता है
रनटाइम पर लोडिंग प्रक्रिया। ISC DHCPD v3, एक लोकप्रिय DHCP डेमॉन के साथ इन विकल्पों का उपयोग करने के लिए,
वाक्यविन्यास नीचे जैसा है। आपको अन्य डीएचसीपी या बीओओटीपी के लिए सिंटैक्स को समायोजित करने की आवश्यकता होगी
दानव

विकल्प ईथरबूट-हस्ताक्षर कोड 128 = स्ट्रिंग;

विकल्प कर्नेल-पैरामीटर कोड 129 = पाठ;

...

option etherboot-signature E4:45:74:68:00:00;

विकल्प कर्नेल-पैरामीटर "INITRD_DBG=6 NIC=3c509";

विकल्प 128 में उपरोक्त छह बाइट हस्ताक्षर होना आवश्यक है। का वेंडरटैग परिशिष्ट देखें
विवरण के लिए ईथरबूट उपयोगकर्ता मैनुअल।

निम्नलिखित विकल्प वर्तमान में समर्थित है mkelf-linux:

129 RSI स्ट्रिंग इस विकल्प के साथ दिया गया मान शब्दशः कर्नेल के अंत में जोड़ा जाता है
कमांड लाइन। इसका उपयोग I/O पते या डीएमए चैनल जैसे तर्क निर्दिष्ट करने के लिए किया जा सकता है
एससीएसआई एडाप्टर, नेटवर्क कार्ड आदि जैसे विशेष हार्डवेयर के लिए आवश्यक है। कृपया परामर्श लें
उन विकल्पों के लिए आवश्यक सिंटैक्स के बारे में लिनक्स कर्नेल दस्तावेज़ीकरण। यह वैसा ही है
la --परिशिष्ट कमांड लाइन विकल्प mkelf-linux, लेकिन छवि के बजाय बूट समय पर काम करता है
निर्माण समय।

130 इस विकल्प के साथ माउंटिंग के लिए उपयोग किए जाने वाले नेटवर्क एडाप्टर का चयन करना संभव है
मल्टीहोम्ड डिस्कलेस क्लाइंट पर एनएफएस के माध्यम से रूट करें। के लिए वाक्यविन्यास स्ट्रिंग मूल्य वही है
जहाँ तक इसके साथ प्रयुक्त "देव" प्रविष्टि का प्रश्न है --आईपी= विकल्प जैसा कि ऊपर बताया गया है। हालाँकि ध्यान दें
la mkelf-linux रनटाइम सेटअप रूटीन स्ट्रिंग के सिंटैक्स की जाँच नहीं करता है।

एमकेएनबीआई-रोम


mknbi-रोम ईथरबूट ".rom" या ".zrom" बूट ROM छवि से एक बूट छवि बनाता है। यह
इसे मौजूदा ROM का उपयोग करके नेटबूट करने की अनुमति देता है। यह ईथरबूट विकसित करने के लिए उपयोगी है
ड्राइवर या पुराने संस्करण के साथ ईथरबूट का नया संस्करण लोड करना।

mknbi-rom को इस प्रकार चलाएँ:

mknbi-rom nic.zrom > nic.nb

चाल nic.nb जहां नेटवर्क बूटिंग प्रक्रिया इसे ढूंढने की अपेक्षा करती है। बूट ROM होगा
इसे इस रूप में लोड करें परिचालन प्रणाली और ROM छवि निष्पादित करें।

एमकेईएलएफ-आईएमजी


mkelf-img ईथरबूट ".img" या ".zimg" छवि से एक बूट छवि बनाता है। यह इसकी अनुमति देता है
किसी मौजूदा ROM का उपयोग करके नेटबूट किया जाए। यह ईथरबूट ड्राइवर विकसित करने के लिए उपयोगी है
पुराने संस्करण के साथ ईथरबूट का नया संस्करण लोड करें।

mkelf-img को इस प्रकार चलाएँ:

mkelf-img nic.zimg > nic.nb

चाल nic.nb जहां नेटवर्क बूटिंग प्रक्रिया इसे ढूंढने की अपेक्षा करती है। बूट ROM होगा
इसे इस रूप में लोड करें परिचालन प्रणाली और छवि निष्पादित करें.

ध्यान दें कि यह ROM लोडर भाग का परीक्षण नहीं करता है जो ".z?rom" छवि में है, लेकिन इसमें नहीं
एक ".z?img"।

एमकेएलएफ-मेनू


mkelf-मेनू और mknbi-मेनू एक सहायक मेनू प्रोग्राम से एक बूट छवि बनाएं। ईथरबूट के पास है
एक सहायक प्रोग्राम को लोड करने की क्षमता जो उपयोगकर्ता के साथ बातचीत कर सकती है, डीएचसीपी को संशोधित कर सकती है
संरचना, और एक स्थिति लौटाएँ। स्थिति के आधार पर, ईथरबूट एक और बाइनरी लोड कर सकता है,
पुनरारंभ करें या बाहर निकलें. इससे बिना विस्तृत उपयोगकर्ता इंटरफ़ेस प्रोग्राम बनाना संभव हो जाता है
ईथरबूट को संशोधित करना होगा। सहायक कार्यक्रम के लिए विनिर्देश प्रलेखित है
ईथरबूट डेवलपर मैनुअल।

mkelf-मेनू और mknbi-मेनू लाइब्रेरी निर्देशिका से "मेनू" नाम का एक बाइनरी लें, जो है
0x60000 का प्रवेश बिंदु माना गया है। एक वैकल्पिक तर्क स्वीकार किया जाता है, और यह है
0x80000 पर लोड किया गया। यह मेनू प्रोग्राम द्वारा उपयोग की जाने वाली डेटा फ़ाइल हो सकती है।

वर्तमान में, प्रदान किया गया मेनू बाइनरी ईथरबूट की अंतर्निहित मेनू सुविधा को डुप्लिकेट करता है
कुछ छोटे अंतरों को छोड़कर: कोई सर्वर या गेटवे विनिर्देश नहीं हैं
प्रयुक्त और नेस्टेड टीएफटीपी लोड काम नहीं करते हैं। आपके पास MOTD या IMAGE_MENU परिभाषित नहीं होना चाहिए
इस बाहरी मेनू बाइनरी का उपयोग करने में सक्षम होने के लिए आपका ईथरबूट बिल्ड। की विशिष्टताएँ
आवश्यक डीएचसीपी विकल्प ईथरबूट उपयोगकर्ता मैनुअल में वेंडरटैग दस्तावेज़ में है।

विशिष्ट उपयोग इस प्रकार है:

एमकेएलएफ-मेनू > मेनू.एनबी

फिर टीएफटीपी बूट निर्देशिका में मेनू.एनबी डालें और उसके अनुसार अपने डीएचसीपी विकल्पों को संपादित करें
प्रलेखन।

वैकल्पिक उपयोगकर्ता इंटरफ़ेस प्रोग्रामों को अत्यधिक प्रोत्साहित किया जाता है।

एमकेईएलएफ-एनएफएल


एमकेएलएफ-एनएफएल और एमकेएनबीआई-एनएफएल एनएफएल मेनू प्रोग्राम से एक बूट छवि बनाएं। यह मेनू प्रोग्राम
मेनू-टेक्स्ट-फ़ाइल फ़ाइल से छवियों के नाम लेता है जिसमें केवल पंक्तियाँ होती हैं
लोड करने के लिए छवियों के फ़ाइल नाम (tftpd रूट निर्देशिका के सापेक्ष)। यूजर-इंटरफ़ेस है
एक लाइट-बार, जैसा कि GRUB में उपयोग किया जाता है। इसमें एक नमूना मेनू-टेक्स्ट-फ़ाइल है
"मेनू-nfl.eg"। विशेष प्रविष्टि "क्विट ईथरबूट" (निश्चित रूप से उद्धरण चिह्नों के बिना) का उपयोग किया जा सकता है
मेनू-टेक्स्ट-फ़ाइलों में एक प्रविष्टि के रूप में जो ईथरबूट को छोड़ने और इनवोकिंग पर वापस लौटने का कारण बनता है
पर्यावरण, जो ROM के मामले में BIOS है।

विशिष्ट उपयोग है:

एमकेएलएफ-एनएफएल मेनू-पाठ-फ़ाइल > nfl.nb

फिर nfl.nb को TFTP बूट निर्देशिका में रखें और बूट छवि के रूप में निर्दिष्ट करें। जंजीर से बाँधना
अन्य मेनू काम करता है.

शीर्षक जैसी अन्य सुविधाओं को निर्दिष्ट करने के लिए मेनू प्रारूप में संवर्द्धन स्वीकार किए जाते हैं।
टाइमआउट, रंग इत्यादि को अत्यधिक प्रोत्साहित किया जाता है।

एमकेएलएफ-लुआ


mkelf-lua पूर्व संकलित लुआ से एक ईएलएफ छवि बनाता है ("http://www.tecgraf.puc-rio.br/lua/")
कार्यक्रम.

विशिष्ट उपयोग है:

mkelf-lua hello.lb > luaprog.nb

जहां "hello.lb" को लुआ प्रोग्राम से उत्पन्न किया गया था:

luac -o hello.lb hello.lua

इस वातावरण में लुआ कार्यक्रमों के लिए उपलब्ध कार्यों का वर्णन अलग से किया गया है
दस्तावेज़.

एमकेएनबीआई-एफडीओएस


mknbi-fdos FreeDOS कर्नेल फ़ाइल और फ़्लॉपी छवि से एक बूट छवि बनाता है। ध्यान दें कि
कर्नेल छवि को बूट छवि के फ़्लॉपी अनुभाग से नहीं पढ़ा जाता है, बल्कि यह एक अलग है
बूट छवि में अनुभाग. बूटलोडर को सीधे उस पर जाने के लिए समायोजित किया गया है। यह
अर्थात वह स्थान जिस पर कब्जा किया जाएगा फ्लॉपी कर्नेल छवि फ़ाइल द्वारा अब किया जा सकता है
एप्लिकेशन और डेटा के लिए उपयोग किया जाता है।

नवीनतम कर्नेल के साथ FreeDOS का वितरण प्राप्त करें, संभवतः कम से कम 2006। यह हो चुका है
2012 में परीक्षण किया गया लेकिन इससे पुराना कुछ भी नहीं। आप यहां FreeDOS कर्नेल प्राप्त कर सकते हैं:

"http://freedos.sourceforge.net/"

बूट करने योग्य फ्लॉपी बनाने के लिए निर्देशों का पालन करें। फिर फ़्लॉपी की एक छवि प्राप्त करें:

dd if=/dev/fd0 of=/tmp/floppyimage

साथ ही निकालें कर्नेल.sys फ़्लॉपी से. आप इसे mtools का उपयोग करके छवि से कर सकते हैं
पैकेज, एक फ़ाइल को एक के रूप में निर्दिष्ट करके ड्राइव इस तरह की घोषणा के साथ ~/.mtoolsrc:

ड्राइव x: फ़ाइल = "/tmp/floppyimage"

फिर भागो:

एमकॉपी x:kernel.sys .

फिर mknbi चलाएँ:

mknbi-fdos कर्नेल.sys /tmp/floppyimage > freedos.nb

जहां कर्नेल.sys और /tmp/फ्लॉपीइमेज ऊपर निकाली गई फ़ाइलें हैं। फिर हटो freedos.nb
जहां नेटवर्क बूटिंग प्रक्रिया इसे ढूंढने की अपेक्षा करती है।

यदि आपने इसे सफलतापूर्वक नेटबूट कर लिया है, तो आप वापस जा सकते हैं और अपनी फ़ाइलें इसमें जोड़ सकते हैं
फ़्लॉपी छवि. आप हटा सकते हैं कर्नेल.sys फ़्लॉपी छवि में स्थान बचाने के लिए, ऐसा नहीं है
आवश्यकता है। ध्यान दें कि आप mformat के साथ अपनी इच्छानुसार किसी भी आकार की फ़्लॉपी छवि बना सकते हैं
mtools से प्रोग्राम, आप बूट फ़्लॉपी के वास्तविक आकार तक सीमित नहीं हैं।

एमकेएनबीआई-एफडीओएस विकल्प


--हार्ड डिस्क बूट रैमडिस्क को पहली हार्ड डिस्क यानी C: बनाएं। एक कारण जो आप चाह सकते हैं
ऐसा करने का कारण यह है कि आप वास्तविक फ़्लॉपी का उपयोग करना चाहते हैं। में "डिस्क आकार" की सीमा
इस विकल्प से बूट छवि उभरी नहीं है, इसलिए यह इस विकल्प का उपयोग करने का कोई कारण नहीं है। यह
विकल्प --disableharddisk के साथ असंगत है।

--हार्डडिस्क अक्षम करें जब रैमडिस्क फ्लॉपी डिस्क ड्राइव का अनुकरण कर रहा हो, तो यह स्विच करेगा
हार्ड डिस्क एक्सेस अक्षम करें. यदि क्लाइंट को नेटवर्क फ़ाइल का उपयोग करना चाहिए तो यह आवश्यक है
ड्राइव C: के रूप में सिस्टम, जो केवल तभी संभव है जब DOS द्वारा कोई हार्ड डिस्क न मिली हो। यह
विकल्प --हार्डडिस्क के साथ असंगत है।

--नोस्क्वैश फ़्लॉपी छवि के अंत से अप्रयुक्त सेक्टरों को काटने का प्रयास न करें। यह
बूट छवि का आकार बढ़ जाता है और इसलिए फ़्लॉपी पर FAT फ़ाइल सिस्टम लोड होने का समय बढ़ जाता है
अधिकतर खाली है लेकिन यदि आपको इस बात पर संदेह है कि क्या आप इस विकल्प का उपयोग करना चाह सकते हैं
स्क्वैशिंग एल्गोरिदम सही ढंग से काम कर रहा है।

- तीसरा आधार =0xNNNNNNN रैमडिस्क लोड पता सेट करें। रैमडिस्क के लिए डिफ़ॉल्ट लोड पता
0x110000 है. यदि किसी कारण से आपको आवश्यकता हो तो इसे ऊपर ले जाया जा सकता है (निचला काम नहीं करेगा)।
अन्य सामग्री को उस पते पर लोड करें जिस पते पर वह वर्तमान में है। चूंकि यह एक रेखीय पता है और नहीं
एक खंड पता, अंतिम 4 बिट्स का उपयोग नहीं किया जाता है और 0 होना चाहिए।

एमकेएनबीआई-डॉस


mknbi-डॉस बूट करने योग्य DOS फ़ाइल सिस्टम वाली फ़्लॉपी छवि से एक बूट छवि बनाता है। यह
यदि आपके पास एमटूल्स हैं तो भौतिक फ़्लॉपी पर फ़ाइल सिस्टम बनाना आवश्यक नहीं है
पैकेज, लेकिन आरंभ करने के लिए आपको किसी भी आकार की बूट करने योग्य फ़्लॉपी की आवश्यकता होगी। सबसे पहले बूट निकालें
फ़्लॉपी से ब्लॉक करें, यह बूट ब्लॉक उन डॉस कर्नेल फ़ाइलों से मेल खाना चाहिए जिन्हें आप कॉपी करेंगे
अगले कदम:

dd if=/dev/fd0 of=bootblock bs=512 गिनती=1

फिर DOS कर्नेल फ़ाइलें प्राप्त करें (यह DR-DOS के लिए सही है, MS में नाम भिन्न हैं-
DOS, IO.SYS और MSDOS.SYS):

mcopy a:IBMBIO.COM a:IBMDOS.COM a:COMMAND.COM .

इसके बाद एक प्रविष्टि करें ~/.mtoolsrc किसी फ़्लॉपी को फ़ाइल में मैप करने की घोषणा करना:

ड्राइव x: फ़ाइल = "/tmp/floppyimage"

अब वांछित आकार की फ्लॉपी को, इस उदाहरण में 2.88 एमबी फ्लॉपी को, उसी आकार में प्रारूपित करें
उस पर बूटब्लॉक लिखने का समय:

mformat -C -t 80 -s 36 -h 2 -B बूटब्लॉक x:

"फ्लॉपी" का आकार केवल सिलेंडरों, सेक्टरों की संख्या की सीमा द्वारा सीमित है
और शीर्ष, जो क्रमशः 1023, 63 और 255 हैं, और आप जितनी रैम चाहते हैं
स्मृति में "फ़्लॉपी" को आवंटित करने के लिए। चूँकि RAM बहुमूल्य है, इसलिए थोड़ा बड़ा आकार चुनें
आपकी "फ़्लॉपी" फ़ाइलों को रखने के लिए क्या आवश्यक है।

अंत में, अपनी सभी वांछित फ़ाइलों को फ़्लॉपी पर कॉपी करें:

एमकॉपी IBMBIO.COM x:

एमकॉपी IBMDOS.COM x:

mcopy Command.COM x:

mcopy CONFIG.SYS AUTOEXEC.BAT APP.EXE APP.DAT ... x:

MS-DOS के लिए IBMIO.COM के स्थान पर IO.SYS और IBMDOS.COM के स्थान पर MSDOS.SYS का प्रयोग करें। का मामला
फ़ाइलों को संरक्षित किया जाना चाहिए, यदि VFAT लोअरकेस नाम उत्पन्न होते हैं तो यह काम नहीं कर सकता है
फ़्लॉपी छवि. प्रतिलिपि बनाने के क्रम पर ध्यान दें क्योंकि बूट ब्लॉक अपेक्षा कर सकता है
नव स्वरूपित डिस्क पर पहली दो प्रविष्टियाँ IO.SYS, MSDOS.SYS होंगी। संभवतः भी
COMMAND.COM तीसरी प्रविष्टि होनी चाहिए ताकि हम सुरक्षित रहें। फिल डेवी और फिलिप को धन्यवाद
इन युक्तियों के लिए रोआ।

मेरे पास रिपोर्ट है कि MS-DOS 6.22 का बूटब्लॉक कभी-कभी रैमडिस्क को बूट करने में विफल रहता है। आप
बूट ब्लॉक को हटाने के बजाय नेटबूट से बूट ब्लॉक का उपयोग करने का प्रयास किया जा सकता है
फ़्लॉपी. मैंने इस बूट ब्लॉक को वितरण में altboot.bin और स्रोत में प्रदान किया है
altboot.S और Boot.inc के रूप में फॉर्म। एक आवश्यक बात यह है कि IO.SYS को पहली फ़ाइल बनाएं
डिस्क, या यह बूटब्लॉक काम नहीं करेगा।

यदि आपके पास समान आकार का मीडिया है तो आप जांच कर सकते हैं कि छवि बूट करने योग्य है या नहीं
इसे मीडिया पर कॉपी करना, और फिर इसे बूट करना:

dd if=/tmp/floppyimage of=/dev/fd0

फिर छवि पर mknbi-dos चलाएँ /tmp/फ्लॉपीइमेज बूट छवि बनाने के लिए:

mknbi-dos /tmp/floppyimage > dos.nb

चाल dos.nb जहां नेटवर्क बूटिंग प्रक्रिया इसे ढूंढने की अपेक्षा करती है।

एमकेएनबीआई-डॉस विकल्प


--हार्ड डिस्क बूट रैमडिस्क को पहली हार्ड डिस्क यानी C: बनाएं। एक कारण जो आप चाह सकते हैं
ऐसा करने का कारण यह है कि आप वास्तविक फ़्लॉपी का उपयोग करना चाहते हैं। में "डिस्क आकार" की सीमा
इस विकल्प से बूट छवि उभरी नहीं है, इसलिए यह इस विकल्प का उपयोग करने का कोई कारण नहीं है। यह
विकल्प --disableharddisk के साथ असंगत है।

--हार्डडिस्क अक्षम करें जब रैमडिस्क फ्लॉपी डिस्क ड्राइव का अनुकरण कर रहा हो, तो यह स्विच करेगा
हार्ड डिस्क एक्सेस अक्षम करें. यदि क्लाइंट को नेटवर्क फ़ाइल का उपयोग करना चाहिए तो यह आवश्यक है
ड्राइव C: के रूप में सिस्टम, जो केवल तभी संभव है जब DOS द्वारा कोई हार्ड डिस्क न मिली हो। यह
विकल्प --हार्डडिस्क के साथ असंगत है।

--नोस्क्वैश फ़्लॉपी छवि के अंत से अप्रयुक्त सेक्टरों को काटने का प्रयास न करें। यह
बूट छवि का आकार बढ़ जाता है और इसलिए फ़्लॉपी पर FAT फ़ाइल सिस्टम लोड होने का समय बढ़ जाता है
अधिकतर खाली है लेकिन यदि आपको इस बात पर संदेह है कि क्या आप इस विकल्प का उपयोग करना चाह सकते हैं
स्क्वैशिंग एल्गोरिदम सही ढंग से काम कर रहा है।

- तीसरा आधार =0xNNNNNNN रैमडिस्क लोड पता सेट करें। रैमडिस्क के लिए डिफ़ॉल्ट लोड पता
0x110000 है. यदि किसी कारण से आपको आवश्यकता हो तो इसे ऊपर ले जाया जा सकता है (निचला काम नहीं करेगा)।
अन्य सामग्री को उस पते पर लोड करें जिस पते पर वह वर्तमान में है। चूंकि यह एक रेखीय पता है और नहीं
एक खंड पता, अंतिम 4 बिट्स का उपयोग नहीं किया जाता है और 0 होना चाहिए।

onworks.net सेवाओं का उपयोग करके ऑनलाइन mknbi का उपयोग करें



नवीनतम Linux और Windows ऑनलाइन प्रोग्राम