O Linux (o kernel) não se importa com quantas partições de inicialização você possui. Carregar o kernel do disco é o trabalho do bootloader (por exemplo grub
, grub2
, lilo
) e essas ferramentas também não se preocupam com o número de locais um kernel pode ser localizado. Eles se preocupam apenas com o local específico.
Como exemplo, minha partição de inicialização é /dev/md1
, que é um espelho RAID mdadm suportado pelas partições físicas /dev/sde1
e /dev/sdf1
. Eu posso montá-los individualmente, se quiser, e, como tal, tecnicamente conta como tendo duas partições de inicialização, embora elas devam conter os mesmos dados.
Ter duas partições para / boot para mim é um problema de disponibilidade, mas elas podem ser igualmente diferentes / partições de inicialização. O próximo passo é como o gerenciador de inicialização sabe? Aqui está como:
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
}
Este é um trecho de uma grub2
configuração e você notará que as únicas diferenças são root=hd0,1
e root=hd1,1
que estabelecem qual partição de inicialização que a entrada faz referência.
Agora, você será guiado por uma bota para que você possa entender o que está acontecendo aqui.
- O BIOS lê o MBR do volume de inicialização e salta para o carregador de inicialização
- O gerenciador de inicialização (por exemplo
grub2
) está configurado para saber qual dispositivo e partição contém seu kernel. O Grub2 acessa essa partição diretamente e carrega seu kernel na memória.
- Seu carregador de inicialização então salta para o kernel e o kernel inicializa sua máquina.
O carregador de inicialização não se importa com quantas partições de inicialização você possui, apenas se importa onde elas estão e você deve informar essas informações.
O kernel não se importa com quantas partições de inicialização você possui, porque nunca precisa vê-las (você só precisa tê-lo disponível para adicionar novos kernels, por exemplo).
/boot
não está se referindo a um diretório montado na partição raiz?