Como o GRUB encontra a partição / boot em um disco MBR?

2

Coisas que descobri até agora (possivelmente imprecisas):

  • O GRUB instala boot.img no primeiro setor (MBR) de um disco.

  • O GRUB instala core.img no intervalo pós-MBR.

  • boot.img é carregado pelo BIOS e, em seguida, carrega core.img e transfere o controle para ele.

Mas na próxima etapa, como core.img encontra a partição /boot ? Pode haver várias partições em um disco, então como a imagem principal identifica corretamente qual é /boot ? Isso é codificado na imagem principal ou faz uma pesquisa toda vez?

Pesquisas adicionais revelam que há uma opção --boot-directory em grub-install , que permite escolher onde instalar o GRUB. Mas a imagem principal ainda precisa encontrar essa partição no momento da inicialização. Mais uma vez, precisa de alguma forma de identificador. Isso é um rótulo, um UUID ou qualquer outra coisa?

    
por Cyker 26.12.2016 / 21:25

1 resposta

5

O endereço é codificado em core.img . core.img tem todos os módulos kernel e Grub necessários para chamar os módulos do Estágio 2 pelo caminho do arquivo. Você especifica isso como (hd0,msdos1)/boot/grub . Por padrão, ele tentará carregar o módulo normal em (hd0,msdos1)/boot/grub/i386-pc/normal.mod (assumindo o i386-pc arch).

Mais detalhes aqui

    
por 26.12.2016 / 21:46

Tags