Ubuntu GRUB Linux Bootloader e Configuração

O Carregador de inicialização GRUB Linux é o carregador de inicialização mais amplamente utilizado para o Linux. Todo aspirante a usuário de Linux se beneficiaria ao aprender sobre o GRUB do Ubuntu. Neste tutorial, você aprenderá o que é o GRUB, como funciona o processo de inicialização e mergulhará em várias configurações úteis do GRUB do Ubuntu.

Mergulhe para saber mais.

Pré-requisitos

Se você gostaria de acompanhar este tutorial, certifique-se de ter um dispositivo Linux que tenha o GRUB como carregador de inicialização. Este tutorial será baseado no Ubuntu 18.04.5 LTS, sendo executado em uma máquina virtual no Oracle VirtualBox.

Compreensão do Processo de Inicialização do GRUB do Ubuntu

GRUB é um acrônimo para Grand Unified Boot Loader e é o componente principal e mais crucial para inicializar seu dispositivo. O GRUB também é o carregador de inicialização mais prevalente para o Linux. Sua jornada começará com você conhecendo um pouco mais sobre o processo de inicialização do GRUB.

No processo geral de inicialização, o BIOS começa invocando a etapa POST e depois procura o carregador de inicialização no Registro Mestre de Boot (MBR).

O MBR é a informação no primeiro setor de qualquer disco rígido. O MBR identifica onde está um Sistema Operacional. As informações armazenadas no MBR carregam (inicializam) o SO na RAM do dispositivo.

Este artigo aborda apenas o lado do MBR. Mas você também pode encontrar discos que usam GPT, que significa Tabelas de Partição GUID. O GPT é melhor se você planeja criar mais de quatro partições, pois um disco MBR pode conter no máximo 4 partições primárias.

Na captura de tela abaixo, você pode ver um diagrama do processo de inicialização. Você pode observar que o Ubuntu GRUB carrega o kernel escolhido na memória principal: a Memória de Acesso Aleatório (RAM). Após o carregamento do kernel, os usuários podem fazer login no dispositivo.

The role of GRUB during the complete boot process in Linux

Comparando os Bootloaders Ubuntu GRUB e LILO

O Mundo Linux possui três principais boot loaders: LILO, GRUB e GRUB2. O GRUB2 é o bootloader mais recente e principal nas distribuições Linux. O GRUB2 é o mais utilizado e demonstrado neste tutorial, pois é o bootloader padrão do Ubuntu, mas o LILO ainda está presente no Linux. Nesta seção, você aprenderá como eles se comparam entre si.

Outros carregadores de inicialização Linux estão disponíveis no mercado, como o GNU GRUB, que possui excelente suporte para gerenciamento de memória e uma estrutura orientada a objetos. O outro é SYSLINUX, que é um carregador de inicialização leve.

O GRUB suporta a inicialização de vários sistemas operacionais. O LILO, por outro lado, só pode inicializar um sistema operacional.

GRUB allows opting among multiple OS

O Ubuntu GRUB funciona com o Windows, Linux, Unix, macOS, BSD, Solaris, enquanto o LILO oferece suporte principalmente a sistemas operacionais Linux.

Se você atualizar o arquivo de configuração no LILO, então o LILO precisa ser reinstalado no MBR. Se você alterar as configurações do GRUB, não é necessário reinstalar.

Seleção de Diferentes Kernels ou Modos de Recuperação

Esta seção mostrará como selecionar um kernel ao inicializar o dispositivo e se recuperar de um kernel corrompido.

A kernel works as an interface between hardware and software. It controls all the processes that users run on the device.

Aqui estão os passos para selecionar um kernel usando uma VM no Oracle VirtualBox.

1. Faça login diretamente no console do dispositivo Ubuntu usando o Oracle VirtualBox.

2. Reinicie sua máquina Ubuntu usando o comando de desligamento conforme mostrado abaixo.

shutdown -r now

Assim que o dispositivo reiniciar, pressione e segure a tecla Shift enquanto carrega o GRUB do Ubuntu, e você verá o menu do carregador de inicialização GRUB. Se você não selecionar nada, o GRUB inicializará o sistema com o kernel padrão e seguirá com o processo de inicialização.

Você deve selecionar Opções avançadas para Ubuntu quando precisar inicializar com um kernel diferente do kernel padrão. Ou se você enfrentar problemas no sistema, como corrupção de arquivos ou o kernel não carregar corretamente.

GRUB loading process

4. Depois de selecionar as Opções avançadas para Ubuntu, um menu GRUB do Ubuntu será exibido. No menu, você deve ver várias opções de kernels para escolher. Se você não selecionar uma opção, o primeiro kernel exibido será carregado por padrão.

Como você pode ver na imagem abaixo, existem duas opções adicionais para cada kernel: upstart e recovery.

  • (upstart): uma substituição baseada em eventos para o daemon /sbin/init, que lida com a inicialização de tarefas e serviços durante a inicialização, parando-os durante a desativação e supervisionando-os enquanto o sistema está em execução.
  • (modo de recuperação): para recuperar o kernel de quaisquer falhas no sistema.
Selecting a kernel from the GRUB menu

5. Depois de fazer login no dispositivo, o comando uname verifica se o kernel especificado está carregado. A opção -r imprime o nome do kernel.

uname -r 
Verifying the kernel from the console

Configurando o Sistema Operacional Padrão

Agora que você está mais familiarizado com o GRUB, você ajustará algumas opções de configuração do GRUB. Você começará configurando qual sistema operacional será carregado por padrão.

1. Faça login no seu dispositivo Ubuntu usando seu cliente SSH favorito.

2. Agora, liste as entradas do menu de inicialização do GRUB executando o comando awk como mostrado abaixo. O comando awk irá exibir todas as entradas armazenadas em /boot/grub/grub.cfg. O conteúdo do arquivo aparecerá no terminal. Preste atenção nas linhas. Você precisará do número associado à linha à frente, que começa com zero, ou seja, a linha Ubuntu é 0 e Ubuntu, com Linux 4.4.0-210-generic é 1.

awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
awk command filtering all the entries stored in /boot/grub/grub.cfg

3. Em seguida, edite o arquivo de configuração do GRUB. Você pode contar com o vi para editar o arquivo e alterar o valor de GRUB_DEFAULT, mas use o editor de sua preferência conforme desejado.

vi /etc/default/grub

Agora, defina o valor de GRUB_DEFAULT para o número da linha da entrada do SO desejada. Lembre-se do comando awk que você executou? Essas eram as entradas do SO. Se você definir GRUB_DEFAULT como 0, a primeira entrada do SO no menu de inicialização do GRUB será iniciada; se você definir como 1, o dispositivo iniciará a segunda entrada do SO por padrão, e assim por diante. Na captura de tela abaixo, a primeira entrada do SO Ubuntu está configurada para iniciar por padrão.

Por padrão, o GRUB não espera no menu de inicialização e inicia a inicialização imediatamente, em 0 segundos. Você pode alterar essa configuração de tempo de espera alterando o valor de GRUB_TIMEOUT. O valor significará o número de segundos em que o menu estará visível antes que a inicialização comece. Se o valor for 5, o menu de inicialização aparecerá por 5 segundos para que você possa selecionar qual SO deseja carregar quando o sistema iniciar.

Editing the GRUB configuration file

4. Uma vez que você salvar as alterações no arquivo de configuração do GRUB, certifique-se de executar o comando update-grub. O comando update-grub leva o arquivo de configuração alterado e aplica-o ao sistema.

update-grub
Updating the GRUB configuration

Configurando a Imagem de Fundo no GRUB do Ubuntu

Sua configuração do GRUB não precisa ser monótona. Você pode adicionar um pouco de estilo ao GRUB adicionando uma imagem de fundo ao menu do GRUB. Você pode definir imagens como fundo no GRUB com a opção GRUB_BACKGROUND. Siga as etapas abaixo para personalizar o GRUB.

1. Edite o arquivo de configuração do GRUB com o vi, ou seu editor de texto preferido, e adicione a linha GRUB_BACKGROUND como mostrado abaixo. Neste tutorial, a imagem é armazenada em uma pasta home do usuário chamada UBUNTU, como o GRUB é executado como root, ele pode acessar imagens em todo o sistema de arquivos. Uma vez modificado, salve o arquivo de configuração.

# Sintaxe: GRUB_BACKGROUND=/caminho-para-imagem
GRUB_BACKGROUND=/home/ubuntu/shanky.jpeg

A imagem do arquivo shanky.jpeg já estava no sistema. Substitua esse nome pelo nome do arquivo que você deseja como imagem de fundo.

2. Em seguida, após fazer as alterações no arquivo de configuração do GRUB, execute o comando update-grub.

Updating the grub configuration file

3. Além disso, verifique se a imagem que você adicionou no arquivo Grub como fundo está funcionando conforme o esperado. Para verificar, reinicie sua máquina e pressione a tecla Shift enquanto o GRUB está carregando. Como você pode ver abaixo, o GRUB agora tem uma imagem de fundo.

GRUB menu displaying the background image as specified in the grub configuration file.

Inicialização dupla com GRUB

Uma das maiores características do GRUB no Ubuntu é que ele permite que você escolha entre o Windows e o Linux quando o seu dispositivo é inicializado, também conhecido como inicialização dupla. A inicialização dupla permite que você use o Linux e o Windows juntos em um único dispositivo, facilitando a vida dos engenheiros de TI que trabalham com vários sistemas operacionais.

Até o início de 2021, o script padrão os_prober, que adiciona automaticamente entradas de menu para sistemas operacionais adicionais, estava desativado devido a preocupações de segurança com a detecção automática de SO. Você pode reativar essa funcionalidade com o seguinte comando, desde que esteja ciente dos sistemas operacionais instalados.

echo GRUB_DISABLE_OS_PROBER=false|sudo tee -a /etc/default/grub && sudo update-grub

Depois de configurar a inicialização dupla no seu dispositivo, você deve ver uma tela semelhante ao menu do GRUB quando sua máquina é iniciada.

GRUB menu allows you to either login to Windows or Linux Instance

Conclusão

Neste tutorial, você aprendeu o que é o GRUB, e o artigo apresentou o processo de inicialização do GRUB.

Você também aprendeu a ajustar algumas configurações do GRUB no Ubuntu, carregar kernels diferentes e até mesmo aprendeu sobre a inicialização dupla.

Agora que você tem um conhecimento sólido do GRUB, quais são algumas das opções de configuração que você irá alterar?

Source:
https://adamtheautomator.com/ubuntu-grub/