E.2. GRUB
O GNU GRand Unified Boot loader (GRUB) possibilita que o sistema operacional ou kernel selecionado seja carregado durante a inicialização do sistema. Também permite que o usuário passe argumentos para o kernel.
E.2.1. O GRUB e o processo de inicialização nos sitemas BIOS-based x86
Esta seção discute o papel do GRUB durante a inicialização de um sistema x86. Para ter uma idéia geral do processo de inicialização, consulte a Seção F.2, “Uma Investigação Detalhada do Processo de Inicialização”.
O GRUB é carregado na memória nos seguintes estágios:
- O Estágio 1 ou carregador de inicialização primária é lido na memória pelo BIOS a partir do MBR[14].. O carregador de inicialização primário existe em menos de 512 bytes de espaço de disco dentro do MBR e é capaz de carregar tanto o carregador de inicialização Estágio 1.5 quanto Estágio 2.O BIOS não pode ler as tabelas de partição ou sistemas de arquivo. Ele inicializa o hardware, lê o MBR e depois depende inteiramente no estágio 1 de carregador de inicialização para continuar o processo de inicialização.
- O carregador de inicialização Estágio 1.5 é carregado na memória pelo carregador de inicialização Estágio 1, se necessário. Alguns dispositivos de hardware necessitam um passo intermediário antes de chegar ao carregador de inicialização Estágio 2. Este é o caso, às vezes, quando a partição
/boot/
encontra-se acima da cabeça do cilindro 1024 do disco rígido ou quando o modo LBA for usado. O carregador de inicialização Estágio 1.5 encontra-se na partição/boot/
ou em uma parte do MBR e da partição/boot/
. - O carregador de inicialização Estágio 2 ou secundário é carregado na memória. O carregador de inicialização secundário exibe o menu do GRUB e o ambiente de comandos. Esta interface permite que o usuário selecione qual kernel ou sistema operacional deve ser inicializado, passe argumentos para o kernel, ou visualize parâmetros do sistema.
- O carregador de inicialização secundário carrega o sistema operacional ou o kernel, bem como o conteúdo de
/boot/sysroot/
para a memória. Uma vez que o GRUB determinar qual sistema operacional ou kernel deve ser inicializado, ele carrega o mesmo na memória e transfere-o o controle da máquina.
O método usado para inicializar o Red Hat Enterprise Linux é chamado de carregamento direto porque o carregador de inicialização carrega o sistema operacional diretamente. Não há nenhum intermediário entre o carregador de inicialização e o kernel.
O processo de inicialização usado por outros sistemas operacionais pode variar. Por exemplo, o sistema operacional Microsoft® Windows®, bem como outros sistemas operacionais, são carregados usando o carregamento em cadeia. Sob este método, o MBR aponta para o primeiro setor da partição contendo o sistema operacional, onde encontram-se os arquivos necessários para a inicialização do sistema operacional.
O GRUB suporta tanto o método de carregamento direto quanto o em cadeia, permitindo assim a inicialização de praticamente qualquer sistema operacional.
Atenção
Durante a instalação, os programas de instalação da Microsoft para o DOS e para o Windows sobrescrevem completamente o MBR, destruindo quaisquer carregadores de inicialização existentes. Se você estiver criando um sistema de inicialização dupla, é melhor instalar o sistema operacional da Microsoft primeiro.