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