O GRUB é um gerenciador de inicialização e boot loader para Linux - ele apresenta um menu de opções de boot (a parte do gerenciador de inicialização) e, quando você seleciona uma opção Linux, carrega o kernel Linux na memória e o executa. parte do carregador de inicialização). Essas funções dependem de um arquivo de configuração do GRUB, armazenado no Ubuntu em /boot/grub/grub.cfg
; o menu é gerado com base nesse arquivo de configuração. Se o arquivo estiver ausente, o GRUB apresentará uma solicitação que lê grub>
, o que não é muito útil, exceto para especialistas. Se o arquivo de configuração contiver informações incorretas, você poderá ou não obter um menu, e pelo menos alguns itens de menu provavelmente não funcionarão.
O que o update-grub
faz é varrer o computador quanto a sistemas operacionais e kernels do Linux e criar um novo arquivo grub.cfg
. Normalmente, esse script é executado automaticamente quando você instala um novo kernel (o que pode acontecer de maneira automática ou semi-automática, dependendo das configurações de atualização do sistema operacional). Você também pode executar update-grub
manualmente - digamos, se você fez alterações em outro sistema operacional que está sendo dual-boot e deseja que o GRUB reconheça essas mudanças. No seu caso, não tenho certeza se foi necessário. Em teoria, deveria ter sido configurado quando você instalou o Ubuntu. OTOH, claramente que a instalação não foi totalmente bem-sucedida, então talvez grub.cfg
esteja faltando ou esteja mal configurado.
O comando modprobe efivars
carrega o módulo do kernel efivars
, que dá ao kernel acesso às variáveis EFI armazenadas na NVRAM. Essas variáveis registram coisas como ponteiros para arquivos específicos do carregador de inicialização usados pelo firmware e a ordem em que esses carregadores de inicialização são usados. Observe que a ordem de controle durante a inicialização é EFI para o GRUB (ou outro gerenciador de inicialização / carregador) para o kernel do SO (Linux). O processo de instalação do sistema operacional, portanto, requer alguma maneira de dizer ao EFI para iniciar o GRUB, em vez de algum outro carregador de inicialização, e as variáveis EFI são parte de como isso é feito.
A ferramenta efibootmgr
é outra parte desse processo; ele usa opções para permitir que você visualize ou modifique variáveis EFI. Ou seja, efibootmgr
fala com o kernel, que usa seu módulo efivars
para acessar as variáveis NVRAM da EFI. O comando efibootmgr
específico que você mencionou, efibootmgr --verbose
, simplesmente exibe as variáveis de inicialização atuais. Assim, não é importante no procedimento delineado e pode ser omitido. OTOH, o comando grub-install
, em um sistema EFI, atualizará ordinariamente as variáveis de inicialização EFI; mas o fato de você ter passado a opção --no-nvram
disse não para fazer isso. Isso poderia criar problemas, exceto ....
Além disso, você copiou e renomeou o GRUB para dois outros nomes. Um deles é o nome de arquivo de fallback do EFI , EFI/BOOT/bootx64.efi
. Este é o arquivo que uma EFI tenta executar como um carregador de boot se ele não tiver as variáveis EFI que apontam para outro nome, ou se essas outras entradas forem inválidas ou seus binários retornarem à EFI sem iniciar um SO. Ordinariamente, modificar as variáveis EFI via efibootmgr
(que é uma coisa que grub-install
fará, se chamado de sem --no-nvram
) tornará o sistema inicializável. Alguns computadores, no entanto, têm EFIs bugs que esquecem ou ignoram suas variáveis EFI. Em tais sistemas, copiar / renomear o carregador de boot, como você fez, é necessário para que o sistema seja inicializado. O fato de que sua instalação de "estoque" não funcionou e você teve que passar por esses bastidores sugere que você pode ter um computador desse tipo.
Para mais informações sobre esses assuntos, recomendo:
- entrada do blog de Adam Williamson sobre como a EFI funciona - Esta página descreve a teoria por trás do modo de inicialização EFI.
- Uma pergunta e respostas sobre as diferenças entre BIOS e inicialização EFI no Superuser.com - Isso fornece os fundamentos do precedente, mas é mais conciso.
- Minha página sobre a instalação do Linux em sistemas EFI - Esta página é uma introdução mais prática para Inicialização no modo EFI do blog de Adam Williamson.
- A entrada do wiki da comunidade Ubuntu no UEFI - Esta página é um pouco desconexa, mas é a introdução mais específica do Ubuntu para EFI e seus problemas.