Carregador de inicialização e configuração do Linux Ubuntu GRUB

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

Mergulhe para saber mais.

Pré-requisitos

Se você deseja acompanhar este tutorial, certifique-se de ter um dispositivo Linux que tenha GRUB como bootloader. Este tutorial será baseado no Ubuntu 18.04.5 LTS, rodando em uma máquina virtual no Oracle VirtualBox.

Compreendendo o Processo de Inicialização do Ubuntu GRUB

GRUB é um acrônimo para Grand Unified Boot Loader e é o componente primário e mais crucial para a inicialização do seu dispositivo. GRUB também é o bootloader mais prevalente para o Linux. Sua jornada começará com você sabendo 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 bootloader no Master Boot Record (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 abrange apenas o lado do MBR. No entanto, 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. É possível observar que o Ubuntu GRUB carrega o kernel escolhido na memória principal: a Random Access Memory (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 Carregadores de Inicialização Ubuntu GRUB e LILO

O mundo Linux possui três principais carregadores de inicialização: LILO, GRUB e GRUB2. O GRUB2 é o carregador de inicialização mais recente e principal nas distribuições Linux. O GRUB2 é o mais utilizado e demonstrado neste tutorial, pois é o carregador de inicialização padrão do Ubuntu, mas o LILO ainda tem presença 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 Windows, Linux, Unix, macOS, BSD, Solaris, enquanto o LILO suporta principalmente sistemas operacionais Linux.

Se você atualizar o arquivo de configuração no LILO, será necessário reinstalar o LILO no MBR. Se você alterar as configurações do GRUB, não será necessário reinstalá-lo.

Selecionando 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 Ubuntu GRUB, e você verá o menu de inicialização do carregador GRUB. Se você não selecionar nada, o GRUB inicializará o sistema com o kernel padrão e prosseguirá com o processo de inicialização.

Você deve selecionar Opções avançadas para o Ubuntu sempre que precisar inicializar com um kernel diferente do kernel padrão. Ou se enfrentar problemas no sistema, como corrupção de arquivos ou falha no carregamento do kernel.

GRUB loading process

4. Depois de selecionar as Opções avançadas para o Ubuntu, um menu do Ubuntu GRUB 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, há 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, interrompendo-os durante o desligamento 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 entrar 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 conforme mostrado abaixo. O comando awk exibirá todas as entradas armazenadas em /boot/grub/grub.cfg. O conteúdo do arquivo será exibido no terminal. Preste atenção às 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 seu editor preferido 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á inicializada; se você definir como 1, o dispositivo inicializará 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 inicializar 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 limite alterando o valor para GRUB_TIMEOUT. O valor significará o número de segundos que o menu é visível antes de iniciar a inicialização. Se o valor for 5, o menu de inicialização será exibido por 5 segundos para que você possa selecionar qual SO deseja carregar quando o sistema é inicializado.

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 o aplica 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 sem graça. Você pode adicionar um pouco de sabor 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 conforme 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. Depois de 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 do Grub como fundo está funcionando como pretendido. 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 Ubuntu GRUB é permitir que você escolha entre Windows e Linux quando seu dispositivo é inicializado: também conhecido como inicialização dupla. A inicialização dupla permite que você use Linux e Windows juntos em um dispositivo e facilita a vida dos engenheiros de TI que trabalham com vários sistemas operacionais.

A partir do início de 2021, o script padrão os_prober, que adiciona automaticamente entradas de menu de sistema operacional adicionais, foi desativado, devido a preocupações de segurança com a detecção automática de SO. Você pode reabilitar essa funcionalidade através do 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 em seu dispositivo, você deverá ver uma tela semelhante ao menu GRUB quando sua máquina é inicializada.

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 introduziu você ao processo de inicialização do GRUB.

Você também aprendeu a ajustar algumas configurações do GRUB do Ubuntu, carregar diferentes kernels 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ê mudará?

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