लिनक्स (कर्नेल) को इस बात की परवाह नहीं है कि आपके पास कितने बूट विभाजन हैं। डिस्क से कर्नेल लोड बूटलोडर (जैसे का काम है grub
, grub2
, lilo
) और इन उपकरणों स्थानों के लिए भी एक कर्नेल स्थित हो सकती की संख्या के बारे में परवाह नहीं है। वे केवल विशिष्ट स्थान की परवाह करते हैं।
एक उदाहरण के रूप में, मेरा बूट विभाजन है /dev/md1
, जो एक mdadm RAID दर्पण है जो भौतिक विभाजन द्वारा समर्थित है /dev/sde1
और /dev/sdf1
। मैं इन्हें व्यक्तिगत रूप से माउंट कर सकता हूं अगर मैं चाहता था और इस तरह तकनीकी रूप से दो बूट विभाजन के रूप में गिना जाता है, हालांकि उन्हें समान डेटा होना चाहिए।
मेरे लिए / बूट के लिए दो विभाजन होना एक उपलब्धता समस्या है, लेकिन वे समान रूप से भिन्न / बूट विभाजन हो सकते हैं। अगला कदम बूटलोडर को कैसे पता चलता है? यहां कैसे:
menuentry 'Linux 3.10.17 (sde) kernel-3.10.17-g' {
root=hd0,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
menuentry 'Linux 3.10.17 (sdf) kernel-3.10.17-g' {
root=hd1,1
linux /boot/kernel-3.10.17-g domdadm dolvm root=/dev/md3
initrd /boot/initrd-3.10.17-g
}
यह एक grub2
कॉन्फ़िगरेशन का एक अंश है और आप ध्यान देंगे कि केवल अंतर हैं root=hd0,1
और root=hd1,1
जो कि एंट्री रेफ़रेंस को बूट पार्टिशन को स्थापित करते हैं।
अब आपको चलने के लिए हालांकि एक बूट ताकि आप समझ सकें कि यहां क्या चल रहा है।
- BIOS बूट वॉल्यूम से MBR को पढ़ता है और बूट लोडर को जम्प करता है
- बूटलोडर (जैसे
grub2
) यह जानने के लिए कॉन्फ़िगर किया गया है कि किस डिवाइस और विभाजन में आपका कर्नेल है। Grub2 इस विभाजन को सीधे एक्सेस करता है और आपकी कर्नेल को मेमोरी में लोड करता है।
- आपका बूटलोडर तब कर्नेल में कूदता है और कर्नेल आपकी मशीन को बूट करता है।
बूटलोडर को परवाह नहीं है कि आपके पास कितने बूट विभाजन हैं, यह केवल परवाह करता है कि वे कहां हैं और आपको यह जानकारी बतानी होगी।
कर्नेल को इस बात की परवाह नहीं है कि आपके पास कितने बूट विभाजन हैं, क्योंकि इसे कभी भी उन्हें देखने की आवश्यकता नहीं है (उदाहरण के लिए नए कर्नेल को जोड़ने के लिए आपको केवल इसे उपलब्ध करने की आवश्यकता है)।
/boot
में रूट विभाजन पर मुहिम शुरू की गई निर्देशिका का जिक्र नहीं है?