Linux (เคอร์เนล) ไม่สนใจว่าคุณมีพาร์ติชั่นการบูตกี่ตัว โหลดเคอร์เนลจากดิสก์เป็นงานของ bootloader (เช่นgrub
, grub2
, lilo
) และเครื่องมือเหล่านี้ยังไม่สนใจเกี่ยวกับจำนวนของสถานที่ตั้งที่เคอร์เนลอาจอยู่ พวกเขาสนใจเฉพาะตำแหน่งเท่านั้น
ตัวอย่างเช่นพาร์ทิชันบูตของฉันคือ/dev/md1
ซึ่งเป็นกระจก mdadm RAID รับการสนับสนุนจากพาร์ทิชันทางกายภาพและ/dev/sde1
/dev/sdf1
ฉันสามารถเมานต์เหล่านี้ได้หากต้องการและนับเป็นเทคนิคที่มีพาร์ติชั่นสำหรับบู๊ตสองตัวแม้ว่าพวกเขาควรมีข้อมูลเดียวกัน
การมีสองพาร์ติชั่นสำหรับ / boot สำหรับฉันเป็นปัญหาความพร้อมใช้งาน แต่พวกเขาอาจแตกต่างกัน / พาร์ติชันสำหรับบูตอย่างเท่าเทียมกัน ขั้นตอนต่อไปคือ bootloader รู้ได้อย่างไร? นี่คือวิธี:
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 จากปริมาณการบูตและข้ามไปยัง bootloader
- bootloader (เช่น
grub2
) มีการกำหนดค่าให้ทราบว่าอุปกรณ์และพาร์ทิชันใดมีเคอร์เนลของคุณ Grub2 เข้าถึงพาร์ติชันนี้โดยตรงและโหลดเคอร์เนลของคุณลงในหน่วยความจำ
- bootloader ของคุณจะกระโดดเข้าสู่เคอร์เนลและเคอร์เนลบูทเครื่องของคุณ
bootloader ไม่สนใจว่าคุณมีพาร์ติชั่นการบู๊ตกี่ตัว, มันจะสนใจว่ามันอยู่ที่ไหนและคุณต้องบอกข้อมูลนั้น.
เคอร์เนลไม่สนใจจำนวนพาร์ติชันสำหรับบูตที่คุณมีเนื่องจากไม่จำเป็นต้องเห็นพาร์ติชัน (คุณเพียง แต่ต้องให้มันพร้อมใช้งานเพื่อเพิ่มเมล็ดใหม่)
/boot
ไม่ได้อ้างถึงไดเรกทอรีที่ติดตั้งบนพาร์ติชันรูท?