Initial ramdisk
લિનક્સ સિસ્ટમોમાં, initrd (પ્રારંભિક રેમડિસ્ક) એ કામચલાઉ રુટ ફાઇલ સિસ્ટમને મેમરીમાં લોડ કરવાની યોજના છે, જેનો ઉપયોગ લિનક્સ સ્ટાર્ટઅપ પ્રક્રિયાના ભાગ રૂપે થાય છે. initrd અને initramfs (INITial RAM ફાઇલ સિસ્ટમમાંથી) આ હાંસલ કરવાની બે અલગ અલગ પદ્ધતિઓનો સંદર્ભ આપે છે. બંનેનો ઉપયોગ સામાન્ય રીતે વાસ્તવિક રુટ ફાઇલ સિસ્ટમને માઉન્ટ કરી શકાય તે પહેલાં તૈયારીઓ કરવા માટે થાય છે. ઘણા લિનક્સ વિતરણો એક જ, સામાન્ય લિનક્સ કર્નલ છબી મોકલે છે જે વિતરણના વિકાસકર્તાઓ ખાસ કરીને વિવિધ પ્રકારના હાર્ડવેર પર બુટ કરવા માટે બનાવે છે. આ સામાન્ય કર્નલ છબી માટેના ઉપકરણ ડ્રાઇવરોને લોડ કરી શકાય તેવા કર્નલ મોડ્યુલો તરીકે સમાવવામાં આવ્યા છે કારણ કે એક કર્નલમાં ઘણા ડ્રાઇવરોને સ્થિર રીતે સંકલિત કરવાથી કર્નલ છબી ઘણી મોટી બને છે, કદાચ મર્યાદિત મેમરીવાળા કમ્પ્યુટર્સ પર બુટ કરવા માટે ખૂબ મોટી હોય છે, અથવા કેટલાક કિસ્સાઓમાં અસ્તિત્વમાં ન હોય તેવા અથવા વિરોધાભાસી હાર્ડવેરની તપાસને કારણે બુટ-ટાઇમ ક્રેશ અથવા અન્ય સમસ્યાઓનું કારણ બને છે. આ સ્થિર-સંકલિત કર્નલ અભિગમ કર્નલ મેમરીમાં મોડ્યુલો પણ છોડે છે જેનો હવે ઉપયોગ થતો નથી અથવા જરૂર નથી, અને બૂટ સમયે રુટ ફાઇલ સિસ્ટમને માઉન્ટ કરવા માટે જરૂરી મોડ્યુલો શોધવા અને લોડ કરવાની સમસ્યા ઉભી કરે છે, અથવા તે બાબત માટે, રુટ ફાઇલ સિસ્ટમ ક્યાં અથવા શું છે તે અનુમાન કરે છે. બાબતોને વધુ જટિલ બનાવવા માટે, રુટ ફાઇલ સિસ્ટમ સોફ્ટવેર રેઇડ વોલ્યુમ, એલવીએમ, એનએફએસ (ડિસ્કલેસ વર્કસ્ટેશન પર) અથવા એન્ક્રિપ્ટેડ પાર્ટીશન પર હોઈ શકે છે. આ બધાને માઉન્ટ કરવા માટે વિશેષ તૈયારીની જરૂર છે. અન્ય ગૂંચવણ એ નિષ્ક્રિયતા માટે કર્નલ સપોર્ટ છે, જે મેમરીની સમગ્ર સામગ્રીની છબીને સ્વેપ પાર્ટીશન અથવા નિયમિત ફાઇલમાં ડમ્પ કરીને કમ્પ્યુટરને ડિસ્ક પર સસ્પેન્ડ કરે છે, પછી પાવર બંધ કરે છે. આગલા બૂટ પર, આ છબીને મેમરીમાં પાછા લોડ કરી શકાય તે પહેલાં તેને સુલભ બનાવવી પડશે. કર્નલમાં ઘણા ખાસ કિસ્સાઓ માટે હાર્ડકોડ હેન્ડલિંગ ટાળવા માટે, કામચલાઉ રુટ ફાઇલ-સિસ્ટમ સાથે પ્રારંભિક બૂટ તબક્કો-જેને હવે પ્રારંભિક વપરાશકર્તા જગ્યા તરીકે ઓળખવામાં આવે છે-નો ઉપયોગ થાય છે. આ રુટ ફાઇલ-સિસ્ટમમાં વપરાશકર્તા-જગ્યા સહાયકો હોઈ શકે છે જે વાસ્તવિક રુટ ફાઇલ-સિસ્ટમને માઉન્ટ કરવા માટે જરૂરી હાર્ડવેર શોધ, મોડ્યુલ લોડિંગ અને ઉપકરણ શોધ કરે છે. અમલીકરણ આ પ્રારંભિક રુટ ફાઇલ સિસ્ટમની છબી (કર્નલની છબી સાથે) લિનક્સ બૂટલોડર અથવા કમ્પ્યુટરના બૂટ ફર્મવેર દ્વારા સુલભ જગ્યાએ સંગ્રહિત હોવી આવશ્યક છે. આ રુટ ફાઇલ સિસ્ટમ પોતે હોઈ શકે છે, ઓપ્ટિકલ ડિસ્ક પર બુટ ઇમેજ, સ્થાનિક ડિસ્ક પરનું નાનું પાર્ટીશન (બૂટ પાર્ટીશન, સામાન્ય રીતે ext2 અથવા FAT ફાઇલ સિસ્ટમનો ઉપયોગ કરીને), અથવા TFTP સર્વર (ઇથરનેટથી બુટ કરી શકાય તેવી સિસ્ટમો પર) હોઈ શકે છે. બૂટલોડર કર્નલ અને પ્રારંભિક રુટ ફાઇલ સિસ્ટમની છબીને મેમરીમાં લોડ કરશે અને પછી છબીના મેમરી સરનામામાં પસાર કરીને કર્નલ શરૂ કરશે. તેના બુટ ક્રમના અંતે, કર્નલ તેના ડેટાના પ્રથમ થોડા બ્લોકમાંથી છબીનું બંધારણ નક્કી કરવાનો પ્રયાસ કરે છે, જે ક્યાં તો initrd અથવા initramfs યોજના તરફ દોરી શકે છે. initrd યોજનામાં, છબી ફાઇલ સિસ્ટમ છબી (વૈકલ્પિક રીતે સંકુચિત) હોઈ શકે છે, જે વિશેષ બ્લોક ઉપકરણ () માં ઉપલબ્ધ કરાવવામાં આવે છે જે પછી પ્રારંભિક રુટ ફાઇલ સિસ્ટમ તરીકે માઉન્ટ થાય છે. તે ફાઇલ સિસ્ટમ માટેના ડ્રાઇવરને કર્નલમાં સ્થિર રીતે સંકલિત કરવો આવશ્યક છે. ઘણા વિતરણો મૂળરૂપે કોમ્પ્રેસ્ડ ext2 ફાઇલ સિસ્ટમ છબીઓનો ઉપયોગ કરતા હતા, જ્યારે અન્ય (ડેબિયન 3.1 સહિત) મેમરી-મર્યાદિત સિસ્ટમો પર બુટ કરવા માટે cramfs નો ઉપયોગ કરતા હતા, કારણ કે cramfs છબીને ડીકમ્પ્રેશન માટે વધારાની જગ્યાની જરૂર વગર જગ્યાએ માઉન્ટ કરી શકાય છે. એકવાર પ્રારંભિક રુટ ફાઇલ સિસ્ટમ શરૂ થઈ જાય પછી, કર્નલ તેની પ્રથમ પ્રક્રિયા તરીકે અમલમાં મૂકે છે; જ્યારે તે બહાર નીકળે છે, ત્યારે કર્નલ ધારે છે કે વાસ્તવિક રૂટ ફાઇલ સિસ્ટમ માઉન્ટ કરવામાં આવી છે અને સામાન્ય વપરાશકર્તા-જગ્યા બુટ પ્રક્રિયા શરૂ કરવા માટે અમલમાં મૂકે છે. initramfs યોજનામાં (લિનક્સ કર્નલ 2.6.13 થી ઉપલબ્ધ), છબી cpio આર્કાઇવ (વૈકલ્પિક રીતે સંકુચિત) હોઈ શકે છે. આર્કાઇવને કર્નલ દ્વારા ટી. એમ. પી. એફ. એસ. ના વિશેષ ઉદાહરણમાં ખોલવામાં આવે છે જે પ્રારંભિક રુટ ફાઇલ સિસ્ટમ બની જાય છે. આ યોજનામાં મધ્યવર્તી ફાઇલ સિસ્ટમ અથવા બ્લોક ડ્રાઇવરોને કર્નલમાં સંકલિત કરવાની જરૂર નથી તેનો ફાયદો છે. કેટલીક સિસ્ટમો initramfs ઈમેજ બનાવવા માટે ડ્રાક્ટ પેકેજનો ઉપયોગ કરે છે. initramfs યોજનામાં, કર્નલ તેની પ્રથમ પ્રક્રિયા તરીકે અમલમાં મૂકે છે જે બહાર નીકળવાની અપેક્ષા નથી. કેટલીક એપ્લિકેશનો માટે, initramfs કેસ્પર ઉપયોગિતાનો ઉપયોગ યુનિયનએફએસનો ઉપયોગ કરીને ફક્ત-વાંચી શકાય તેવી મૂળ ફાઇલસિસ્ટમની છબી પર દ્રઢતા સ્તરને ઓવરલે કરવા માટે લખી શકાય તેવું વાતાવરણ બનાવવા માટે કરી શકે છે. ઉદાહરણ તરીકે, ઓવરલે ડેટાને યુએસબી ફ્લેશ ડ્રાઇવ પર સંગ્રહિત કરી શકાય છે, જ્યારે જીવંત સીડી પર સંગ્રહિત કોમ્પ્રેસ્ડ સ્ક્વોશએફએસ રીડ-ઓનલી ઈમેજ રૂટ ફાઇલસિસ્ટમ તરીકે કાર્ય કરે છે. કયા અલ્ગોરિધમ્સને તેમાં સ્થિર રીતે સંકલિત કરવામાં આવ્યા હતા તેના આધારે, કર્નલ gzip, bzip2, LZMA, XZ, LZO, LZ4 અને zstd સાથે સંકુચિત initrd/initramfs છબીઓને ખોલી શકે છે. તૈયારીઓને માઉન્ટ કરો ડેબિયન જેવા કેટલાક લિનક્સ વિતરણો કસ્ટમાઇઝ્ડ initrd ઈમેજ જનરેટ કરશે જેમાં ATA, SCSI અને ફાઇલસિસ્ટમ કર્નલ મોડ્યુલો જેવા અમુક ચોક્કસ કમ્પ્યુટરને બુટ કરવા માટે જે જરૂરી હોય તે જ હોય છે. આ સામાન્ય રીતે રુટ ફાઇલ સિસ્ટમના સ્થાન અને પ્રકારને એમ્બેડ કરે છે. અન્ય લિનક્સ વિતરણો (જેમ કે ફેડોરા અને ઉબુન્ટુ) વધુ સામાન્ય initrd છબી બનાવે છે. આ માત્ર રુટ ફાઇલ સિસ્ટમ (અથવા તેના યુયુઆઇડી) ના ઉપકરણના નામથી શરૂ થાય છે અને બૂટ સમયે બાકીનું બધું શોધવું આવશ્યક છે. આ કિસ્સામાં, સોફ્ટવેરને રુટ ફાઇલ સિસ્ટમ માઉન્ટ કરવા માટે કાર્યોનું એક જટિલ કાસ્કેડ કરવું આવશ્યક છેઃ કોઈપણ હાર્ડવેર ડ્રાઇવરો કે જેના પર બુટ પ્રક્રિયા આધાર રાખે છે તે લોડ થવો આવશ્યક છે. એક સામાન્ય વ્યવસ્થા એ છે કે સામાન્ય સંગ્રહ ઉપકરણો માટે કર્નલ મોડ્યુલોને initrd પર પેક કરવા અને પછી કમ્પ્યુટરના શોધાયેલ હાર્ડવેર સાથે મેળ ખાતા મોડ્યુલોને ખેંચવા માટે હોટપ્લગ એજન્ટનો ઉપયોગ કરવો. બુટ સ્પ્લેશ સ્ક્રીન પ્રદર્શિત કરતી સિસ્ટમો પર, વિડિયો હાર્ડવેરને શરૂ કરવું આવશ્યક છે અને વપરાશકર્તા-જગ્યા સહાયકએ બૂટ પ્રક્રિયા સાથે લોકસ્ટેપમાં ડિસ્પ્લે પર એનિમેશન રંગવાનું શરૂ કર્યું છે. જો રુટ ફાઇલ સિસ્ટમ એન. એફ. એસ. પર હોય, તો તેણે પછી પ્રાથમિક નેટવર્ક ઇન્ટરફેસને લાવવું પડશે, ડી. એચ. સી. પી. ક્લાયન્ટને બોલાવવું પડશે, જેની સાથે તે ડી. એચ. સી. પી. લીઝ મેળવી શકે છે, એન. એફ. એસ. શેરનું નામ અને લીઝમાંથી એન. એફ. એસ. સર્વરનું સરનામું કાઢી શકે છે અને એન. એફ. એસ. શેરને માઉન્ટ કરી શકે છે. જો રુટ ફાઇલ સિસ્ટમ સોફ્ટવેર રેઇડ ઉપકરણ પર હોય તેવું લાગે છે, તો રેઇડ વોલ્યુમ કયા ઉપકરણોમાં ફેલાયેલું છે તે જાણવાની કોઈ રીત નથી; તમામ ઉપલબ્ધ બ્લોક ઉપકરણોને સ્કેન કરવા અને જરૂરી ઉપકરણોને ઓનલાઇન લાવવા માટે પ્રમાણભૂત એમ. ડી. ઉપયોગિતાઓનો ઉપયોગ કરવો આવશ્યક છે. જો રુટ ફાઇલ સિસ્ટમ લોજિકલ વોલ્યુમ પર હોય તેવું લાગે છે, તો LVM ઉપયોગિતાઓને તે ધરાવતા વોલ્યુમ જૂથને સ્કેન કરવા અને સક્રિય કરવા માટે બોલાવવા આવશ્યક છે. જો રુટ ફાઇલ સિસ્ટમ એનક્રિપ્ટેડ બ્લોક ઉપકરણ પર હોય, તો સોફ્ટવેરને વપરાશકર્તાને પાસફ્રેઝ લખવા અને/અથવા હાર્ડવેર ટોકન (જેમ કે સ્માર્ટ કાર્ડ અથવા યુએસબી સુરક્ષા ડોંગલ) દાખલ કરવા માટે સંકેત આપવા માટે સહાયક સ્ક્રિપ્ટને બોલાવવાની જરૂર છે, અને પછી ઉપકરણ મેપર સાથે ડિક્રિપ્શન લક્ષ્ય બનાવો. કેટલાક વિતરણો ઇવેન્ટ-સંચાલિત હોટપ્લગ એજન્ટનો ઉપયોગ કરે છે જેમ કે યુડેવ, જે હાર્ડવેર ઉપકરણો, ડિસ્ક પાર્ટીશનો અને ચોક્કસ નિયમો સાથે મેળ ખાતા સંગ્રહ વોલ્યુમો ઓનલાઇન આવે છે. આ શોધને સમાંતર રીતે ચલાવવાની મંજૂરી આપે છે, અને રુટ ફાઇલ સિસ્ટમ પર પહોંચવા માટે એલવીએમ, રેડ અથવા એન્ક્રિપ્શનના મનસ્વી માળામાં ક્રમશઃ કાસ્કેડ કરવાની મંજૂરી આપે છે. જ્યારે રુટ ફાઇલ સિસ્ટમ આખરે દૃશ્યમાન થાય છે, ત્યારે કોઈપણ જાળવણી કાર્યો કે જે માઉન્ટ થયેલ રુટ ફાઇલ સિસ્ટમ પર ચલાવી શકાતા નથી, રુટ ફાઇલ સિસ્ટમ ફક્ત વાંચવા માટે માઉન્ટ થયેલ છે, અને કોઈપણ પ્રક્રિયાઓ કે જે ચાલુ રહેવી જોઈએ (જેમ કે સ્પ્લેશ સ્ક્રીન હેલ્પર અને તેનો આદેશ એફઆઇએફઓ) નવી માઉન્ટ થયેલ રૂટ ફાઇલ સિસ્ટમમાં લહેરાવવામાં આવે છે. અંતિમ રુટ ફાઇલ સિસ્ટમને સરળતાથી માઉન્ટ કરી શકાતી નથી, કારણ કે તે પ્રારંભિક રુટ ફાઇલ સિસ્ટમ પરની સ્ક્રિપ્ટ્સ અને ટૂલ્સને કોઈપણ અંતિમ સફાઇ કાર્યો માટે અપ્રાપ્ય બનાવશેઃ initrd પર, નવું રુટ કામચલાઉ માઉન્ટ પોઇન્ટ પર માઉન્ટ કરવામાં આવે છે અને pivot _ root (8) (જે ખાસ કરીને આ હેતુ માટે રજૂ કરવામાં આવ્યું હતું) સાથે ફેરવવામાં આવે છે. આ પ્રારંભિક રુટ ફાઇલ સિસ્ટમને માઉન્ટ બિંદુ (જેમ કે) પર છોડી દે છે જ્યાં સામાન્ય બૂટ સ્ક્રિપ્ટ્સ પછીથી initrd દ્વારા રાખવામાં આવેલી મેમરીને મુક્ત કરવા માટે તેને અનમાઉન્ટ કરી શકે છે. initramfs પર, પ્રારંભિક રુટ ફાઇલ સિસ્ટમને ફેરવી શકાતી નથી. તેના બદલે, તેને ખાલી કરવામાં આવે છે અને અંતિમ રુટ ફાઇલ સિસ્ટમ ટોચ પર માઉન્ટ થાય છે. મોટાભાગની પ્રારંભિક રુટ ફાઇલ સિસ્ટમો અમલમાં મૂકે છે અથવા શેલ સ્ક્રિપ્ટ તરીકે અને આમ કેટલીક આવશ્યક વપરાશકર્તા-જગ્યા ઉપયોગિતાઓ (સામાન્ય રીતે બિઝીબોક્સ ટૂલકિટ) સાથે ન્યૂનતમ શેલ (સામાન્ય રીતે/બિન/એશ) નો સમાવેશ કરે છે. વધુ જગ્યા બચાવવા માટે, શેલ, ઉપયોગિતાઓ અને તેમની સહાયક લાઈબ્રેરીઓ સામાન્ય રીતે જગ્યા ઓપ્ટિમાઇઝેશન સક્ષમ (જેમ કે જીસીસીના "-ઓ" ફ્લેગ સાથે) સાથે સંકલિત કરવામાં આવે છે અને આ હેતુ માટે ખાસ લખાયેલ સી લાઈબ્રેરીનું ન્યૂનતમ સંસ્કરણ, કે. એલ. બી. સી. સાથે જોડવામાં આવે છે. લિનક્સ વિતરણ માટે અન્ય ઉપયોગો ઇન્સ્ટોલર્સ સામાન્ય રીતે સંપૂર્ણપણે initramfs થી ચાલે છે, કારણ કે તેઓ કોઈપણ સતત સંગ્રહ સ્થાપિત કરવામાં આવે તે પહેલાં ઇન્સ્ટોલર ઇન્ટરફેસ અને સહાયક સાધનોને હોસ્ટ કરવામાં સક્ષમ હોવા જોઈએ. ટિની કોર લિનક્સ અને પપ્પી લિનક્સ સંપૂર્ણપણે initrd થી ચલાવી શકે છે. વિન્ડોઝ વિસ્ટાથી, વિન્ડોઝ ડબલ્યુઆઇએમ ડિસ્ક ઇમેજ ફાઇલમાંથી બુટ કરી શકે છે, જેના માટે ફાઇલ ફોર્મેટ પ્રકાશિત થાય છે; તે ઝીપ ફોર્મેટ જેવું જ છે સિવાય કે તે હાર્ડ લિંક્સ, ડિડુપ્લિકેટેડ હિસ્સાને સપોર્ટ કરે છે અને ચંક-બાય-ચંક કમ્પ્રેશનનો ઉપયોગ કરે છે. આ કિસ્સામાં, સમગ્ર WIM શરૂઆતમાં RAM માં લોડ થાય છે, ત્યારબાદ કર્નલ ઇનિશિયલાઈઝેશન થાય છે. આગળ, લોડ થયેલ WIM નિયુક્ત ડ્રાઇવ અક્ષર સાથે સિસ્ટમરૂટ તરીકે ઉપલબ્ધ છે. વિન્ડોઝ ઇન્સ્ટોલર આનો ઉપયોગ કરે છે જેથી તે BOOT.WIM માંથી બુટ થાય, અને પછી સ્થાપિત કરવા માટેની વિન્ડોઝ ફાઇલોના સંગ્રહ તરીકે INSTALL.WIM નો ઉપયોગ કરે છે. ઉપરાંત, વિન્ડોઝ પ્રીઇન્સ્ટલેશન એન્વાયર્નમેન્ટ (વિન્ડોઝ પીઇ) એ જ ઉપયોગ કરે છે, જે કેટલાક એન્ટીવાયરસ અને બેકઅપ/ડિઝાસ્ટર રિકવરી સોફ્ટવેરના અલગ-બૂટ વર્ઝન માટે આધાર છે. વિન્ડોઝ સ્થાપિત કરવું પણ શક્ય છે જેથી તે હંમેશા ભૌતિક ડ્રાઇવ પર મૂકવામાં આવેલી WIM અથવા VHD ફાઇલમાંથી બુટ થાય. જો કે, આનો ભાગ્યે જ ઉપયોગ થાય છે કારણ કે વિન્ડોઝ બૂટ લોડર બુટ-ટાઇમ કર્નલ મોડ્યુલો માટે જ. sys ફાઇલોને લોડ કરવામાં સક્ષમ છે, જે કાર્યને લિનક્સમાં initrd ની જરૂર છે. આ પણ જુઓ ડ્રેકટ બૂસ્ટર initramfs જનરેટર લિનક્સ સ્ટાર્ટઅપ પ્રક્રિયા લિનક્સ વિતરણોની સૂચિ કે જે રેમમાંથી ચાલે છે EFISTUB બૂટિંગ ઇએફઆઈ ફર્મવેરને લિનક્સ કર્નલ (આર્ક લિનક્સ વિકી) લોડ કરવાની મંજૂરી આપે છે સંદર્ભો બાહ્ય લિંક્સ ડેબિયન initramfs-ટૂલ્સ પ્રારંભિક યુઝરસ્પેસ સપોર્ટ Alt URL Linux કર્નલ પર initrd-જનરેટિંગ ટૂલકીટ્સ કર્નલ દસ્તાવેજીકરણની વિગતવાર સરખામણી