Initial ramdisk
लिनक्स सिस्टम में, initrd (प्रारंभिक रैमडिस्क) एक अस्थायी रूट फ़ाइल सिस्टम को मेमोरी में लोड करने के लिए एक योजना है, जिसका उपयोग लिनक्स स्टार्टअप प्रक्रिया के हिस्से के रूप में किया जाता है। initrd और initramfs (INITial RAM फाइल सिस्टम से) इसे प्राप्त करने के दो अलग-अलग तरीकों को संदर्भित करते हैं। दोनों का उपयोग आमतौर पर वास्तविक रूट फ़ाइल सिस्टम को स्थापित करने से पहले तैयारी करने के लिए किया जाता है। तर्कसंगत कई लिनक्स वितरण एक एकल, सामान्य लिनक्स कर्नेल छवि भेजते हैं जिसे वितरण के डेवलपर्स विशेष रूप से विभिन्न प्रकार के हार्डवेयर पर बूट करने के लिए बनाते हैं। इस सामान्य कर्नेल छवि के लिए उपकरण चालकों को लोड करने योग्य कर्नेल मॉड्यूल के रूप में शामिल किया जाता है क्योंकि एक कर्नेल में कई चालकों को स्थिर रूप से संकलित करने से कर्नेल छवि बहुत बड़ी हो जाती है, शायद सीमित मेमोरी वाले कंप्यूटरों पर बूट करने के लिए बहुत बड़ी हो जाती है, या कुछ मामलों में बूट-टाइम क्रैश या अन्य समस्याओं का कारण बन जाती है जो अस्तित्वहीन या परस्पर विरोधी हार्डवेयर की जांच के कारण होती हैं। यह स्थिर-संकलित कर्नेल दृष्टिकोण कर्नेल मेमोरी में मॉड्यूल को भी छोड़ देता है जो अब उपयोग या आवश्यकता नहीं है, और बूट समय पर रूट फ़ाइल सिस्टम को माउंट करने के लिए आवश्यक मॉड्यूल का पता लगाने और लोड करने की समस्या को बढ़ाता है, या उस मामले के लिए, यह पता लगाने के लिए कि रूट फ़ाइल सिस्टम कहाँ या क्या है। मामलों को और जटिल बनाने के लिए, रूट फ़ाइल सिस्टम एक सॉफ्टवेयर आर. ए. आई. डी. वॉल्यूम, एल. वी. एम., एन. एफ. एस. (डिस्क रहित वर्कस्टेशन पर), या एक एन्क्रिप्टेड विभाजन पर हो सकता है। इन सभी को चढ़ने के लिए विशेष तैयारी की आवश्यकता होती है। एक अन्य जटिलता हाइबरनेशन के लिए कर्नेल समर्थन है, जो मेमोरी की पूरी सामग्री की एक छवि को एक स्वैप विभाजन या एक नियमित फ़ाइल में डंप करके कंप्यूटर को डिस्क पर निलंबित कर देता है, फिर बिजली बंद कर देता है। अगले बूट पर, इस छवि को मेमोरी में वापस लोड करने से पहले इसे सुलभ बनाना होगा। कर्नेल में इतने सारे विशेष मामलों के लिए हार्डकोड हैंडलिंग से बचने के लिए, एक अस्थायी रूट फ़ाइल-सिस्टम के साथ एक प्रारंभिक बूट चरण-जिसे अब प्रारंभिक उपयोगकर्ता स्थान कहा जाता है-का उपयोग किया जाता है। इस रूट फ़ाइल-सिस्टम में उपयोगकर्ता-स्थान सहायक हो सकते हैं जो वास्तविक रूट फ़ाइल-सिस्टम को स्थापित करने के लिए आवश्यक हार्डवेयर का पता लगाने, मॉड्यूल लोडिंग और उपकरण की खोज करते हैं। कार्यान्वयन इस प्रारंभिक रूट फ़ाइल सिस्टम की एक छवि (कर्नेल छवि के साथ) को लिनक्स बूटलोडर या कंप्यूटर के बूट फर्मवेयर द्वारा कहीं सुलभ स्थान पर संग्रहीत किया जाना चाहिए। यह स्वयं रूट फाइल सिस्टम, ऑप्टिकल डिस्क पर एक बूट छवि, स्थानीय डिस्क पर एक छोटा विभाजन (एक बूट विभाजन, आमतौर पर एक्सटी2 या एफएटी फाइल सिस्टम का उपयोग करके), या एक टीएफटीपी सर्वर (उन प्रणालियों पर जो ईथरनेट से बूट कर सकते हैं) हो सकता है। बूटलोडर कर्नेल और प्रारंभिक रूट फाइल सिस्टम छवि को स्मृति में लोड करेगा और फिर छवि के स्मृति पते से गुजरते हुए कर्नेल को शुरू करेगा। अपने बूट अनुक्रम के अंत में, कर्नेल अपने पहले कुछ डेटा ब्लॉकों से छवि के प्रारूप को निर्धारित करने की कोशिश करता है, जो या तो initrd या initramfs योजना की ओर ले जा सकता है। initrd योजना में, छवि एक फ़ाइल सिस्टम छवि (वैकल्पिक रूप से संपीड़ित) हो सकती है, जिसे एक विशेष ब्लॉक डिवाइस () में उपलब्ध कराया जाता है जिसे फिर प्रारंभिक रूट फ़ाइल सिस्टम के रूप में स्थापित किया जाता है। उस फाइल सिस्टम के लिए ड्राइवर को कर्नेल में स्थिर रूप से संकलित किया जाना चाहिए। कई वितरणों में मूल रूप से संपीड़ित एक्स्ट2 फाइल सिस्टम छवियों का उपयोग किया जाता था, जबकि अन्य (डेबियन 3.1 सहित) स्मृति-सीमित प्रणालियों पर बूट करने के लिए क्रैम्फ का उपयोग करते थे, क्योंकि क्रैम्फ छवि को प्रतिसंकोचन के लिए अतिरिक्त स्थान की आवश्यकता के बिना स्थान पर स्थापित किया जा सकता है। एक बार जब प्रारंभिक रूट फ़ाइल सिस्टम चालू हो जाता है, तो कर्नेल अपनी पहली प्रक्रिया के रूप में निष्पादित होता है; जब यह बाहर निकलता है, तो कर्नेल मानता है कि वास्तविक रूट फ़ाइल सिस्टम को स्थापित किया गया है और सामान्य उपयोगकर्ता-स्थान बूट प्रक्रिया शुरू करने के लिए निष्पादित किया जाता है। initramfs योजना में (लिनक्स कर्नेल 2.6.13 के बाद से उपलब्ध), छवि एक cpio संग्रह (वैकल्पिक रूप से संपीड़ित) हो सकती है। संग्रह को कर्नेल द्वारा टी. एम. पी. एफ. एस. के एक विशेष उदाहरण में खोला जाता है जो प्रारंभिक रूट फ़ाइल सिस्टम बन जाता है। इस योजना में एक मध्यवर्ती फ़ाइल प्रणाली या ब्लॉक ड्राइवरों को कर्नेल में संकलित करने की आवश्यकता नहीं है। कुछ प्रणालियाँ एक initramfs छवि बनाने के लिए ड्राक्ट पैकेज का उपयोग करती हैं। initramfs योजना में, कर्नेल अपनी पहली प्रक्रिया के रूप में निष्पादित होता है जिससे बाहर निकलने की उम्मीद नहीं होती है। कुछ अनुप्रयोगों के लिए, initramfs कैस्पर उपयोगिता का उपयोग यूनियनएफएस का उपयोग करके केवल-पढ़ने योग्य मूल फ़ाइल सिस्टम छवि पर एक दृढ़ता परत को आच्छादित करने के लिए एक लिखने योग्य वातावरण बनाने के लिए कर सकता है। उदाहरण के लिए, ओवरले डेटा को एक यूएसबी फ्लैश ड्राइव पर संग्रहीत किया जा सकता है, जबकि एक संपीड़ित स्क्वैशएफएस रीड-ओनली छवि एक लाइव सीडी पर संग्रहीत एक रूट फ़ाइल सिस्टम के रूप में कार्य करती है। किस एल्गोरिदम को इसमें स्थिर रूप से संकलित किया गया था, इसके आधार पर कर्नेल gzip, bzip2, LZMA, XZ, LZO, LZ4 और zstd के साथ संपीड़ित initrd/initramfs छवियों को खोल सकता है। कुछ लिनक्स वितरण जैसे कि डेबियन एक अनुकूलित initrd छवि उत्पन्न करेंगे जिसमें केवल कुछ विशेष कंप्यूटर, जैसे कि ए. टी. ए., एस. सी. एस. आई. और फाइलसिस्टम कर्नेल मॉड्यूल को बूट करने के लिए आवश्यक सब कुछ होता है। ये आम तौर पर रूट फ़ाइल सिस्टम के स्थान और प्रकार को एम्बेड करते हैं। अन्य लिनक्स वितरण (जैसे फेडोरा और उबुन्टू) एक अधिक सामान्य initrd छवि उत्पन्न करते हैं। ये केवल रूट फ़ाइल सिस्टम (या इसके यू. यू. आई. डी.) के उपकरण नाम से शुरू होते हैं और बूट समय पर बाकी सब कुछ खोजना चाहिए। इस मामले में, रूट फ़ाइल सिस्टम को स्थापित करने के लिए सॉफ़्टवेयर को कार्यों का एक जटिल कैस्केड करना चाहिएः कोई भी हार्डवेयर ड्राइवर जिस पर बूट प्रक्रिया निर्भर करती है, उसे लोड किया जाना चाहिए। एक सामान्य व्यवस्था सामान्य भंडारण उपकरणों के लिए कर्नेल मॉड्यूल को initrd पर पैक करना है और फिर कंप्यूटर के खोजे गए हार्डवेयर से मेल खाने वाले मॉड्यूल को खींचने के लिए एक हॉटप्लग एजेंट को बुलाना है। उन प्रणालियों पर जो बूट स्पलैश स्क्रीन प्रदर्शित करते हैं, वीडियो हार्डवेयर को आरंभ किया जाना चाहिए और एक उपयोगकर्ता-अंतरिक्ष सहायक ने बूट प्रक्रिया के साथ लॉकस्टेप में डिस्प्ले पर एनिमेशन को पेंट करना शुरू कर दिया। यदि रूट फाइल सिस्टम एन. एफ. एस. पर है, तो उसे प्राथमिक नेटवर्क इंटरफेस लाना होगा, एक डी. एच. सी. पी. क्लाइंट को बुलाना होगा, जिसके साथ वह डी. एच. सी. पी. पट्टा प्राप्त कर सकता है, एन. एफ. एस. शेयर का नाम और लीज से एन. एफ. एस. सर्वर का पता निकाल सकता है, और एन. एफ. एस. शेयर को माउंट करना होगा। यदि रूट फाइल सिस्टम एक सॉफ्टवेयर रेड उपकरण पर प्रतीत होता है, तो यह जानने का कोई तरीका नहीं है कि कौन से उपकरण रेड वॉल्यूम फैलाते हैं; सभी उपलब्ध ब्लॉक उपकरणों को स्कैन करने और आवश्यक उपकरणों को ऑनलाइन लाने के लिए मानक एम. डी. उपयोगिताओं का उपयोग किया जाना चाहिए। यदि रूट फाइल सिस्टम लॉजिकल वॉल्यूम पर प्रतीत होता है, तो एल. वी. एम. उपयोगिताओं को स्कैन करने और इसमें शामिल वॉल्यूम समूह को सक्रिय करने के लिए लागू किया जाना चाहिए। यदि रूट फाइल सिस्टम एक एन्क्रिप्टेड ब्लॉक डिवाइस पर है, तो सॉफ्टवेयर को उपयोगकर्ता को एक कूटशब्द टाइप करने और/या एक हार्डवेयर टोकन (जैसे कि एक स्मार्ट कार्ड या एक यूएसबी सुरक्षा डोंगल) डालने के लिए प्रेरित करने के लिए एक सहायक स्क्रिप्ट का आह्वान करने की आवश्यकता होती है, और फिर डिवाइस मैपर के साथ एक डिक्रिप्शन लक्ष्य बनाएँ। कुछ वितरण उदेव जैसे घटना-संचालित हॉटप्लग एजेंट का उपयोग करते हैं, जो सहायक कार्यक्रमों को हार्डवेयर उपकरणों के रूप में आमंत्रित करता है, डिस्क विभाजन और कुछ नियमों से मेल खाने वाले भंडारण मात्रा ऑनलाइन आते हैं। यह खोज को समानांतर में चलाने की अनुमति देता है, और रूट फ़ाइल सिस्टम तक पहुंचने के लिए एल. वी. एम., आर. ए. आई. डी. या एन्क्रिप्शन के मनमाने घोंसले में उत्तरोत्तर कैस्केड करने की अनुमति देता है। जब रूट फ़ाइल सिस्टम अंततः दिखाई देता है, तो कोई भी रखरखाव कार्य जो एक माउंटेड रूट फ़ाइल सिस्टम पर नहीं चल सकता है, रूट फ़ाइल सिस्टम को केवल पढ़ने के लिए माउंट किया जाता है, और कोई भी प्रक्रिया जो चलना जारी रखना चाहिए (जैसे कि स्पलैश स्क्रीन हेल्पर और इसकी कमांड एफ. आई. एफ. ओ) को नए माउंटेड रूट फ़ाइल सिस्टम में फहराया जाता है। अंतिम रूट फ़ाइल सिस्टम को बस ऊपर नहीं रखा जा सकता है, क्योंकि यह प्रारंभिक रूट फ़ाइल सिस्टम पर स्क्रिप्ट और उपकरणों को किसी भी अंतिम सफाई कार्यों के लिए दुर्गम बना देगाः एक initrd पर, नए रूट को एक अस्थायी माउंट बिंदु पर लगाया जाता है और pivot _ root (8) के साथ घुमाया जाता है (जिसे विशेष रूप से इस उद्देश्य के लिए पेश किया गया था)। यह प्रारंभिक रूट फ़ाइल सिस्टम को एक माउंट बिंदु (जैसे) पर छोड़ देता है जहां सामान्य बूट स्क्रिप्ट बाद में इसे अनमाउंट कर सकते हैं ताकि initrd द्वारा रखी गई मेमोरी को मुक्त किया जा सके। एक initramfs पर, प्रारंभिक रूट फ़ाइल सिस्टम को दूर नहीं घुमाया जा सकता है। इसके बजाय, इसे खाली कर दिया जाता है और अंतिम रूट फ़ाइल सिस्टम को शीर्ष पर स्थापित किया जाता है। अधिकांश प्रारंभिक रूट फ़ाइल सिस्टम एक शेल स्क्रिप्ट के रूप में या लागू करते हैं और इस प्रकार कुछ आवश्यक उपयोगकर्ता-स्थान उपयोगिताओं (आमतौर पर व्यस्त बॉक्स टूलकिट) के साथ एक न्यूनतम शेल (आमतौर पर/बिन/ऐश) शामिल होते हैं। जगह को और बचाने के लिए, खोल, उपयोगिताओं और उनके सहायक पुस्तकालयों को आम तौर पर स्थान अनुकूलन सक्षम (जैसे जीसीसी के "-ओ" झंडे के साथ) के साथ संकलित किया जाता है और इस उद्देश्य के लिए विशेष रूप से लिखे गए सी पुस्तकालय के एक न्यूनतम संस्करण, के. एल. आई. बी. सी. के खिलाफ जोड़ा जाता है। लिनक्स वितरण के लिए अन्य उपयोग इंस्टॉलर आमतौर पर पूरी तरह से एक initramfs से चलते हैं, क्योंकि उन्हें किसी भी स्थायी भंडारण को स्थापित करने से पहले इंस्टॉलर इंटरफेस और सहायक उपकरणों को होस्ट करने में सक्षम होना चाहिए। टिनी कोर लिनक्स और पप्पी लिनक्स पूरी तरह से initrd से चल सकते हैं। विंडोज विस्टा के बाद से, विंडोज एक डब्ल्यूआईएम डिस्क छवि फ़ाइल से बूट कर सकता है, जिसके लिए फ़ाइल प्रारूप प्रकाशित किया जाता है; यह ज़िप प्रारूप के समान है सिवाय इसके कि यह हार्ड लिंक, डिडुप्लिकेटेड हिस्सों का समर्थन करता है, और चंक-बाय-चंक संपीड़न का उपयोग करता है। इस मामले में, पूरे WIM को शुरू में RAM में लोड किया जाता है, जिसके बाद कर्नेल आरंभ किया जाता है। इसके बाद, लोड किया गया डब्ल्यू. आई. एम. एक निर्दिष्ट ड्राइव पत्र के साथ सिस्टमरूट के रूप में उपलब्ध है। विंडोज इंस्टॉलर इसका उपयोग करता है ताकि यह BOOT.WIM से बूट हो जाए, और फिर स्थापित की जाने वाली विंडोज फ़ाइलों के संग्रह के रूप में INSTALL.WIM का उपयोग करता है। इसके अलावा, विंडोज प्रीइंस्टॉलेशन एनवायरनमेंट (विंडोज पी. ई.) कुछ एंटीवायरस और बैकअप/आपदा पुनर्प्राप्ति सॉफ़्टवेयर के अलग-अलग बूट संस्करणों के लिए एक आधार होने के नाते इसका उपयोग करता है। विंडोज को स्थापित करना भी संभव है ताकि यह हमेशा भौतिक ड्राइव पर रखी गई डब्ल्यूआईएम या वीएचडी फ़ाइल से बूट हो। हालाँकि, इसका उपयोग शायद ही कभी किया जाता है क्योंकि विंडोज बूट लोडर बूट-टाइम कर्नेल मॉड्यूल के लिए. sys फ़ाइलों को लोड करने में सक्षम है, जो वह कार्य है जिसके लिए लिनक्स में initrd की आवश्यकता होती है। ई. एफ. आई. एस. टी. यू. बी. बूटिंग ई. एफ. आई. फर्मवेयर को लिनक्स कर्नेल (आर्क लिनक्स विकी) लोड करने की अनुमति देता है संदर्भ बाहरी लिंक डेबियन इनट्रैम्फ्स-टूल्स प्रारंभिक उपयोगकर्ता स्थान समर्थन ऑल्ट यू. आर. एल. लिनक्स कर्नेल पर इनट्र्ड-जनरेटिंग टूलकिट कर्नेल प्रलेखन की विस्तृत तुलना