Linux (ядро) байдуже, скільки у вас завантажувальних розділів. Завантаження ядра з диска є роботою завантажувача (наприклад grub
, grub2
, lilo
) і ці кошти також не дбають про кількість місць ядро може бути розташовані. Вони дбають лише про конкретне місце розташування.
Наприклад, мій завантажувальний розділ - /dev/md1
це дзеркало mdadm RAID, підкріплене фізичними розділами /dev/sde1
та /dev/sdf1
. Я можу їх монтувати окремо, якщо хотів, і як такий технічно вважається, що має два завантажувальні розділи, хоча вони повинні містити однакові дані.
Наявність двох розділів для / boot для мене - це питання доступності, але вони однаково можуть бути різними / завантажувальними розділами. Наступний крок - як дізнається завантажувач? Ось як:
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
не йдеться про каталог, встановлений на кореневому розділі?